我想要自动创建由TEXTFILES从什么地方来给出数据基于Magento中的新订单。 这是基本的代码我使用:
$product = Mage::getModel('catalog/product')->load($productId);
$request = new Varien_Object();
$request->setData(array(
'product' => $product->getId(),
'qty' => 1,
'options' => array(
30 => 'some text...',
8 => 'some other text...',
7 => date('Y-m-d H:i:s')
)
));
$quote = Mage::getModel('sales/quote')
->setStoreId($storeId)
->setIsMultiShipping(false)
->setCheckoutMethod('guest')
->setCustomerId(null)
->setCustomerEmail($customerEmail)
->setCustomerIsGuest(true)
->setCustomerGroupId(Mage_Customer_Model_Group::NOT_LOGGED_IN_ID);
$quote->addProduct($product, $request);
// ...the interesting part ends here
ID为自定义选项“7”的类型是“日期”(从Magento的Web后端配置),而这肯定是什么原因导致的问题:这个片段效果很好,当自定义选项7改为键入“文本框”。
如果我检查的内容$quote
调用后对象addProduct()
我看到的自定义选项7的值不是一个日期字符串,如预期,但单个数字(这似乎是准确的日期的第一个数字格式为Ymd H:i:s
,因此今年的第一位,我试图用不同年份)。
如果我更改选项7的类型为文本,整个日期字符串正确保存里面$quote
的对象。
至于更多的信息,如果我让脚本通过所有的秩序创造过程继续下去,我得到的是说,一个例外:
Unsupported ISO8601 format (2)
其中数字2
是我正在通话之前的日期的第一个数字。 所以我试图用iso8601
格式:
7 => date('c')
与所有没有影响。
该异常的堆栈跟踪为:
#0 app/code/core/Zend/Date.php(1091): Zend_Date->_calculate('set', '2', 'c', 'it_IT')
#1 app/code/core/Zend/Date.php(210): Zend_Date->set('2', 'c', 'it_IT')
#2 app/code/core/Mage/Core/Model/Locale.php(494): Zend_Date->__construct('2', 'c', Object(Zend_Locale))
#3 app/code/core/Mage/Catalog/Model/Product/Option/Type/Date.php(167): Mage_Core_Model_Locale->date('2', 'c', NULL, false)
#4 app/code/core/Mage/Catalog/Model/Product/Type/Abstract.php(620): Mage_Catalog_Model_Product_Option_Type_Date->getFormattedOptionValue('2')
#5 app/code/core/Mage/Sales/Model/Convert/Quote.php(141): Mage_Catalog_Model_Product_Type_Abstract->getOrderOptions(Object(Mage_Catalog_Model_Product))
#6 app/code/core/Mage/Sales/Model/Service/Quote.php(170): Mage_Sales_Model_Convert_Quote->itemToOrderItem(Object(Mage_Sales_Model_Quote_Item))
#7 app/code/core/Mage/Sales/Model/Service/Quote.php(249): Mage_Sales_Model_Service_Quote->submitOrder()
#8 wbs-import-orders.php(309): Mage_Sales_Model_Service_Quote->submitAll()
#9 {main}
那么,如何使型“日期”这个定义选项接受日期字符串? 它甚至有正确的传递日期字符串呀?
谢谢你们!