我尝试在Magento CE 1.5上创建发票后由观察者更新订单状态。
我使用了活动sales_order_invoice_save_after
。我已经为州processed
创建了一些特定的状态。我的代码工作但是Magento总是在我的订单状态之后,所以它cancels
我的。我不知道哪个事件用来避免这个问题。
以下是我观察员的代码:
public function updateStatusFacture($observer)
{
$event = $observer->getEvent();
$invoice = $observer->getEvent()->getInvoice();
$order_update = Mage::getModel('sales/order')->load($orderid);
$order = Mage::getModel('sales/order')->loadByIncrementId($order_update->getIncrementId());
$state = 'processing';
$status = 'expedier';
$comment = 'Changing state to Processing and status to expedier Status';
$isCustomerNotified = false;
$order->setState($state, $status, $comment, $isCustomerNotified);
$order->save();
}
答案 0 :(得分:0)
好的,我发现我的代码出了什么问题。
为了避免Magento在我之后保存状态。我必须使用此活动:sales_order_invoice_save_commit_after
代替sales_order_invoice_save_after
希望这有帮助。