捕获观察者在magento中的订单完成状态

时间:2012-11-26 07:22:38

标签: magento

您好我想在奥德完成或关闭时检测订单信息。我尝试不同的事件,如(sales_order_place_after),但没有完成我的要求。我正在完成订单管理方面,我创建观察员捕获信息喜欢 Xml:

<events>
        <sales_order_place_after>
        <observers>
            <extra_options>             
                <class>My_Module_Model_Observer</class>
                <method>salesConvertQuoteItemToOrderItem</method>
            </extra_options>
        </observers>
            </sales_order_place_after>
    </events>

观察员:

public function salesConvertQuoteItemToOrderItem($observer)
    {

        $order = $observer->getOrder();
        $orders = $observer->getEvent()->getOrder();

        if($order->getState() == Mage_Sales_Model_Order::STATE_COMPLETE){
         echo "<pre>";
        print_r($orders);exit;
        }
    }

有人可以帮忙吗?提前致谢

2 个答案:

答案 0 :(得分:2)

除非你正在听错事件,否则你正在做正确的事情。您必须改为使用sales_order_save_after

答案 1 :(得分:2)

使用sales_order_save_after仍然很好,但它只需要您检查状态(正如Mischa建议的那样):

public function salesOrderSaveAfter($observer)
{       
    $order = $observer->getEvent()->getOrder();
    if($order->getState() != Mage_Sales_Model_Order::STATE_COMPLETE) {
        return $this;
    }       

    if($order->getData('state') == $order->getOrigData('state')) {
        return $this;
    }

    // do your stuff

    return $this;
}

这对我来说很好。