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