オブザーバー "sales_order_save_commit_after"または "sales_order_invoice_pay"を使用すると、注文ステータスを取得したり、希望するステータスに応じてステータスを取得することができます。次に例を示します。
// fまたはevent sales_order_save_commit_after
public function commissionCalculationOnComplete($observer)
{
$order = $observer->getOrder();
if($order->getState() == Mage_Sales_Model_Order::STATE_COMPLETE){
//do your order complete stuff
}
}
または
// Event sales_order_invoice_pay
public function triggerProvisionCalculation ($observer)
{
$invoice = $observer->getEvent()->getInvoice();
switch ($invoice->getState()) {
case Mage_Sales_Model_Order_Invoice::STATE_PAID :
//do your stuff
break;
}
return $this;
}
この方法は、注文が保存されるたびにトリガーされるため、計算を2回行わないことを確認する必要があります。