Как автоматически сгенерировать XML заказа - Magento 2 - PullRequest
0 голосов
/ 18 октября 2018

Каков наилучший способ автоматического создания XML-заказа при создании нового заказа в magento 2?Я собираюсь импортировать эти данные в ERP с помощью веб-сервиса, поэтому он должен быть в формате XML.

Что-то похожее на это, но с использованием magento 2: https://magento.stackexchange.com/questions/199581/generate-order-xml-for-erp-in-magento-1-9

1 Ответ

0 голосов
/ 19 октября 2018

Сначала вам нужно создать новый модуль 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 включает недавно сохраненный объект заказа.Вы можете использовать этот объект заказа для получения или установки необходимой информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...