2015-05-07 84 views
0

我正在使用Magento 1.9,並有一個外部應用程序負責運輸。產品發貨後,文件將發回給我爲Magento編寫的監聽器。我需要更新Magento的訂單狀態,完成和正在使用它是基於早期的帖子#2Magento 1.9更改訂單狀態未捕獲異常

$order_num = Mage::getModel('sales/order')->load($id); 

$order_num->setState(Mage_Sales_Model_Order::STATE_COMPLETE, true)->save(); 

下面的代碼,我有以下

Uncaught exception 'Mage_Core_Exception' with message 'The Order State "complete" must not be set manually. 

從什麼運行到一個問題就在這裏我可以發現這是因爲訂單狀態受到保護。

我花了大部分時間在尋找可能的解決方案,無法弄清楚如何改變訂單狀態來完成而不是拋出錯誤。

我將不勝感激,如果有人可以給我一個線索如何得到這個1.9

問候

理查德

回答

0

使用此代碼的工作。它是我的作品..

$order_num->setData('state', 'complete'); 
         $order_num->setStatus('complete'); 
         $history = $order_num->addStatusHistoryComment('', false); 


         $history->setIsCustomerNotified(false); 

         $order_num->save(); 
+0

小心,狀態是由Magento內部使用。 – Goose