2014-09-26 66 views
2

我需要從遷移狀態中取消分配狀態。從狀態取消分配訂單狀態

$status->setStatus('approved') 
     ->unassignState(Mage_Sales_Model_Order::STATE_NEW) 
     ->assignState(Mage_Sales_Model_Order::STATE_PROCESSING, false) 
     ->save(); 

如果將狀態分配給遷移,它將起作用。但是,如果狀態未分配,則存在異常,並且遷移失敗。 解決這個問題的最好方法是什麼?

回答

0

對我而言,唯一的解決方案是創建捕獲異常的函數捕獲器。我這種情況下 即使狀態未分配給狀態,似乎遷移工作。

function unAssignStatusFromState($status, $state) 
{ 
    try { 
     $status->unassignState($state); 
     return true; 
    } catch(Exception $e) { 
     return false; 
    } 
}