Magento 1.5如何在创建发票后以编程方式更改自定义订单状态

时间:2012-04-01 15:01:50

标签: magento magento-1.5

我尝试在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(); 

   }   

1 个答案:

答案 0 :(得分:0)

好的,我发现我的代码出了什么问题。 为了避免Magento在我之后保存状态。我必须使用此活动:sales_order_invoice_save_commit_after代替sales_order_invoice_save_after

希望这有帮助。