如何自动生成订单 XML - Magento 2
How to auto-generate order XML - Magento 2
每当在 magento 2 中创建新订单时,自动生成订单 XML 的最佳方法是什么?我将使用网络服务将这些数据导入 ERP,因此它需要在 XML.
中
与此类似,但使用 magento 2:https://magento.stackexchange.com/questions/199581/generate-order-xml-for-erp-in-magento-1-9
首先,您需要创建一个新的 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_save_after">
<observer name="mymodule_sales_order_save_after" instance="MyCompany\MyModule\Observer\Observer" />
</event>
</config>
如果您想了解每个新订单,您需要使用 sales_order_save_after 事件,该事件在数据库中创建新订单后立即触发。这也是 Magento 2 结帐中将客户重定向到结帐成功页面之前的最后一步。
您只需要创建一个 execute() 方法。如果您需要工厂或存储库之类的东西,您可以像往常一样在 __construct() 方法中注入它们。
<?php namespace MyCompany\MyModule\Observer;
use Magento\Framework\Event\ObserverInterface;
class Observer implements ObserverInterface {
protected $connector; public function __construct() {
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
}
public function execute(\Magento\Framework\Event\Observer $observer) {
$order = $observer->getEvent()->getOrder();
$customerId = $order->getCustomerId();
if($customerId)
#do something with order an customer
}
}
我在名为 Observer/Observer.php 的模块根目录中创建了一个简单模型。您可以根据自己的喜好命名文件夹和模型文件。您只需要扩展 Magento 2 ObserverInterface class。在那里你需要实现 execute() 方法,它获取一个观察者参数,你可能从 Magento 1 中知道。这个观察者模型包含不同的信息,基于使用的事件。 sales_order_save_after 包含最近保存的订单对象。您可以使用此订单对象来获取或设置您需要的信息。
每当在 magento 2 中创建新订单时,自动生成订单 XML 的最佳方法是什么?我将使用网络服务将这些数据导入 ERP,因此它需要在 XML.
中与此类似,但使用 magento 2:https://magento.stackexchange.com/questions/199581/generate-order-xml-for-erp-in-magento-1-9
首先,您需要创建一个新的 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_save_after">
<observer name="mymodule_sales_order_save_after" instance="MyCompany\MyModule\Observer\Observer" />
</event>
</config>
如果您想了解每个新订单,您需要使用 sales_order_save_after 事件,该事件在数据库中创建新订单后立即触发。这也是 Magento 2 结帐中将客户重定向到结帐成功页面之前的最后一步。 您只需要创建一个 execute() 方法。如果您需要工厂或存储库之类的东西,您可以像往常一样在 __construct() 方法中注入它们。
<?php namespace MyCompany\MyModule\Observer;
use Magento\Framework\Event\ObserverInterface;
class Observer implements ObserverInterface {
protected $connector; public function __construct() {
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
}
public function execute(\Magento\Framework\Event\Observer $observer) {
$order = $observer->getEvent()->getOrder();
$customerId = $order->getCustomerId();
if($customerId)
#do something with order an customer
}
}
我在名为 Observer/Observer.php 的模块根目录中创建了一个简单模型。您可以根据自己的喜好命名文件夹和模型文件。您只需要扩展 Magento 2 ObserverInterface class。在那里你需要实现 execute() 方法,它获取一个观察者参数,你可能从 Magento 1 中知道。这个观察者模型包含不同的信息,基于使用的事件。 sales_order_save_after 包含最近保存的订单对象。您可以使用此订单对象来获取或设置您需要的信息。