2014-09-26 5 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; 
    } 
} 
관련 문제