एक उत्पाद बचाओ घटना के बाद मैं 2 Magento के भीतर उत्पाद का उपयोग करने की कोशिश कर रहा हूँ।
मैंने श्रोता को कॉन्फ़िगर किया है:
controller_action_catalog_product_save_entity_after
xml इस प्रकार दिखता है:
<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>
पर्यवेक्षकों के वर्ग को तब बुलाया जाता है जब कोई उत्पाद सहेजा जाता है, लेकिन मुझे उस उत्पाद का उपयोग करने के तरीके के बारे में कोई जानकारी नहीं मिल रही है जिसे सहेजा गया था। प्रेक्षक वर्ग इस प्रकार है:
<?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()));
}
}
भीतर /module-catalog/Controller/Adminhtml/Product/Save.php घटना लाइन 114 पर निकाल दिया जाता है:
$this->_eventManager->dispatch(
'controller_action_catalog_product_save_entity_after',
['controller' => $this]
);
यह नियंत्रक को एक तर्क के रूप में देता है। हालांकि मैं अनिश्चित हूं कि उत्पाद का उपयोग करने के लिए इसका उपयोग कैसे किया जाए।
मैं उत्पादों sku प्राप्त करना चाहते हैं