【发布时间】:2016-09-19 04:37:03
【问题描述】:
我正在尝试在创建货件后向客户发送 SMS 通知。
在 M1 中,我可以通过这个活动做到这一点:
<sales_order_shipment_save_after>
但在 Magento 2 中,创建货件后没有事件触发。
谁能给我建议?
【问题讨论】:
标签: events shipping magento2 observers
我正在尝试在创建货件后向客户发送 SMS 通知。
在 M1 中,我可以通过这个活动做到这一点:
<sales_order_shipment_save_after>
但在 Magento 2 中,创建货件后没有事件触发。
谁能给我建议?
【问题讨论】:
标签: events shipping magento2 observers
您可以使用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
}
}
【讨论】:
sales_order_shipment_save_after 没有完全触发,我在两种情况下尝试过,1-etc/events.xml 2-etc/adminthtml/events.xml并且在他们两个中都没有触发。