Magento 1.5如何在创建发票后更改自定义订单状态

问题描述:

I尝试在Magento CE 1.5上创建发票后由观察者更新订单状态。Magento 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(); 

    } 

好,我找到了什么事在我的代码。 避免Magento在我之后保存状态。我必须使用这个事件:sales_order_invoice_save_commit_after代替sales_order_invoice_save_after

希望这会有所帮助。