【问题标题】:How to auto-generate order XML - Magento 2如何自动生成订单 XML - Magento 2
【发布时间】:2018-10-18 19:04:52
【问题描述】:

每当在 magento 2 中创建新订单时,自动生成订单 XML 的最佳方式是什么?我将使用 Web 服务将这些数据导入 ERP,因此它需要采用 XML 格式。

与此类似,但使用 magento 2:https://magento.stackexchange.com/questions/199581/generate-order-xml-for-erp-in-magento-1-9

【问题讨论】:

    标签: xml magento2


    【解决方案1】:

    首先,您需要创建一个新的 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 类。在那里您需要实现 execute() 方法,该方法获取您可能从 Magento 1 中知道的观察者参数。此观察者模型包含不同的信息,基于使用的事件。 sales_order_save_after 包含最近保存的订单对象。您可以使用此订单对象来获取或设置您需要的信息。

    【讨论】:

      猜你喜欢
      • 2014-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-27
      • 1970-01-01
      • 1970-01-01
      • 2012-08-19
      • 1970-01-01
      相关资源
      最近更新 更多