观察员取消订单Magento

时间:2014-02-17 06:41:24

标签: php magento events

您好,我正在尝试在Magento取消订单时添加功能。 我的配置正在工作,当我取消订单时,我的功能被触发,但我没有将订单分派给观察者。 这是我班级的初始代码。

class Imo_Model_Observer {

    static function exportOrder($observer)
    {
        $order= $observer->getData('entity_id');

        self::createFile($order, 'completed');
        //echo "export started";
    }   

在这种情况下,我试图从我取消的订单中获取entity_id,但没有运气。 我想得到整个订单。

3 个答案:

答案 0 :(得分:3)

取消订单实际上意味着订单状态设置为“已取消”,因此您需要观察事件sales_order_save_after并从事件中获取订单对象,检查哪个是先前的状态并设置您自己的状态

答案 1 :(得分:0)

这是我最终的结果

  public function exportOrder(Varien_Event_Observer $observer)
   {
        $track = $observer->getEvent()->getPayment();
        $increment_id = $track->getOrder();

答案 2 :(得分:0)

在Magento 2.3中,有一个事件order_cancel_after,该事件在取消发生后分派。

cancel中的Magento\Sales\Model\Order方法如下:

public function cancel()
{
    if ($this->canCancel()) {
        $this->getPayment()->cancel();
        $this->registerCancellation();

        $this->_eventManager->dispatch('order_cancel_after', ['order' => $this]);
    }

    return $this;
}