Sau một sự kiện lưu sản phẩm, tôi đang cố gắng truy cập sản phẩm trong magento 2.
Tôi đã cấu hình trình nghe trên:
controller_action_catalog_product_save_entity_after
xml trông như sau:
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
<event name="controller_action_catalog_product_save_entity_after">
<observer name="wire_products_update" instance="TBS\WireProductsHook\Observer\WireProductsUpdate" />
</event>
</config>
Sau đó, lớp quan sát viên được gọi khi sản phẩm được lưu nhưng tôi không thể tìm thấy bất kỳ thông tin nào về cách truy cập sản phẩm đã được lưu. Lớp người quan sát như sau:
<?php
/**
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
namespace TBS\WireProductsHook\Observer;
use Magento\Framework\Event\ObserverInterface;
class WireProductsUpdate implements ObserverInterface {
public function execute( \Magento\Framework\Event\Observer $observer ) {
// echos name of event: controller_action_catalog_product_save_entity_after
echo 'name of event: ' . $observer->getEvent()->getName();
// tried using the same method as the save class: <magento>/module-catalog/Controller/Adminhtml/Product/Save.php on line 76
$controller = $observer->getData('controller');
// Fails: Fatal error: Cannot access protected property ...
$product = $controller->initializationHelper->initialize($controller->productBuilder->build($controller->getRequest()));
}
}
Trong / module-catalog/Controll/Adminhtml/ Productt / Norman.php , sự kiện được kích hoạt trên dòng 114:
$this->_eventManager->dispatch(
'controller_action_catalog_product_save_entity_after',
['controller' => $this]
);
Điều này Vượt qua bộ điều khiển như là một đối số. Tuy nhiên tôi không chắc làm thế nào để sử dụng điều này để truy cập sản phẩm.
Tôi muốn có được sản phẩm sku