我正在创建一个脚本以在 Magento 中以编程方式添加订单。我需要帮助来更改评论历史记录中条目的日期(报价、发票、运输等)。我可以操纵订单本身的日期 (setCreatedAt),并且与订单创建相关的一些注释是正确的(例如“2008 年 9 月 29 日上午 8:59:25|待处理的客户通知不适用”),但我当我使用 addStatusHistoryComment 时无法更改评论日期...
这是我的代码片段:
try {
if(!$order->canInvoice()) {
Mage::throwException(Mage::helper('core')->__('Cannot create an invoice.'));
}
$invoice = Mage::getModel('sales/service_order', $order)->prepareInvoice();
if (!$invoice->getTotalQty()) {
Mage::throwException(Mage::helper('core')->__('Cannot create an invoice without products.'));
}
$invoice->setRequestedCaptureCase(Mage_Sales_Model_Order_Invoice::CAPTURE_OFFLINE);
$invoice->setCreatedAt('2008-09-23 13:05:20');
$invoice->register();
$invoice->getOrder()->setCustomerNoteNotify(true);
$invoice->getOrder()->setIsInProcess(true);
$transactionSave = Mage::getModel('core/resource_transaction')
->addObject($invoice)
- >addObject($invoice->getOrder());
$transactionSave->save();
//END Handle Invoice
//START Handle Shipment
$shipment = $order->prepareShipment();
$shipment->setCreatedAt('2008-09-23 14:20:10');
$shipment->register();
$order->setIsInProcess(true);
$order->addStatusHistoryComment('Shipping message goes here...', true);
$shipment->setEmailSent(true);
$transactionSave = Mage::getModel('core/resource_transaction')
->addObject($shipment)
->addObject($shipment->getOrder())
->save();
$track = Mage::getModel('sales/order_shipment_track')
->setShipment($shipment)
->setData('title', 'Some tracking no.')
->setData('number', '111222333444')
->setData('carrier_code', 'fedex') //custom, fedex, ups, usps, dhl
->setData('order_id', $shipment->getData('order_id'))
->save();
//END Handle Shipment
}
catch (Mage_Core_Exception $ex) {
echo "Problem creating order invoice and/or shipment: ".$ex."\n";
}
提前致谢。
最佳答案
如果我正确理解你的问题,你只需要这样做:
$comments = $order->getStatusHistoryCollection(true);
$comments
现在包含所有状态历史评论的集合,您可以使用您喜欢的任何类型的条件循环它们。
foreach ($comments as $c) {
if ( /* some stuff */ ) {
$c->setData('created_at',$new_date)->save();
}
}
关于Magento 订单历史评论 : Modify Date,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19162120/