Events 创建装运的Magento 2事件/观察员

Events 创建装运的Magento 2事件/观察员,events,shipping,magento2,observers,Events,Shipping,Magento2,Observers,我正在尝试在创建装运后向客户端发送SMS通知 在M1中,我可以通过此事件来实现: <sales_order_shipment_save_after> 但在Magento 2中,创建装运后没有事件触发 有人能告诉我吗?您可以使用销售、订单、发货、事后保存 为此,需要创建etc/events.xml文件来定义事件 <?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-inst

我正在尝试在创建装运后向客户端发送SMS通知

在M1中,我可以通过此事件来实现:

<sales_order_shipment_save_after>
但在Magento 2中,创建装运后没有事件触发

有人能告诉我吗?

您可以使用销售、订单、发货、事后保存

为此,需要创建etc/events.xml文件来定义事件

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
    <event name="sales_order_shipment_save_after">
        <observer name="emizentechshipment" instance="Emizentech\MyModule\Observer\ProcessShipment" />
    </event>
</config>
然后您需要创建Observer\processshipping.php文件

<?php
namespace Emizentech\MyModule\Observer;

use Magento\Framework\Event\ObserverInterface;

class ProcessShipment implements ObserverInterface
{
    /**
     *
     * @param \Magento\Framework\Event\Observer $observer
     * @return $this
     */
    public function execute(\Magento\Framework\Event\Observer $observer)
    {
        $shipment = $observer->getEvent()->getShipment();
        $order = $shipment->getOrder();
        // your code for sms here
    }
}

非常感谢Emizen,但它不起作用,我认为销售\订单\发货\保存\在没有完全触发后,我在两种情况下尝试过,1-etc/events.xml 2-etc/adminthtml/events.xml,但在这两种情况下都没有触发。@Emadjag它工作得很好,如果您遇到任何问题,请告诉我确保从以下位置清除缓存:bin/magento cache:clean非常感谢Emizen,它工作正常,在我自己尝试了太多之后,我从你那里得到了解决办法。谢谢again@EmizenTech我能够以编程方式生成发票,但在重定向到订单视图页面后,我收到以下错误-->adminhtml/session@EmizenTech