【问题标题】:Magento 2 event/observer for create shipment用于创建货件的 Magento 2 事件/观察者
【发布时间】:2016-09-19 04:37:03
【问题描述】:

我正在尝试在创建货件后向客户发送 SMS 通知。

在 M1 中,我可以通过这个活动做到这一点:

<sales_order_shipment_save_after>

但在 Magento 2 中,创建货件后没有事件触发。

谁能给我建议?

【问题讨论】:

    标签: events shipping magento2 observers


    【解决方案1】:

    您可以使用sales_order_shipment_save_after事件

    为此,您需要创建 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\ProcessShipment.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,但它不起作用,我认为 sales_order_shipment_save_after 没有完全触发,我在两种情况下尝试过,1-etc/events.xml 2-etc/adminthtml/events.xml并且在他们两个中都没有触发。
    • @Emadjag 完美运行,如果您遇到任何问题,请告诉我确保从以下位置清除缓存:bin/magento cache:clean
    • 非常感谢 Emizen,它工作正常,在我尝试了太多之后,我从你那里得到了解决方案。再次感谢
    • @EmizenTech 我能够以编程方式生成发票,但在重定向到订单查看页面后我收到此错误----> adminhtml/session
    猜你喜欢
    • 2016-11-01
    • 1970-01-01
    • 2019-12-21
    • 1970-01-01
    • 1970-01-01
    • 2016-05-05
    • 2011-03-30
    • 2013-03-23
    • 1970-01-01
    相关资源
    最近更新 更多