Mengikuti acara penyimpanan produk, saya mencoba mengakses produk dalam magento 2.
Saya telah mengkonfigurasi pendengar pada:
controller_action_catalog_product_save_entity_after
xml terlihat sebagai berikut:
<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>
Kelas pengamat kemudian dipanggil ketika suatu produk disimpan tetapi saya tidak dapat menemukan info tentang cara mengakses produk yang disimpan. Kelas pengamat adalah sebagai berikut:
<?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()));
}
}
Di dalam /mule-catalog/Controller/Adminhtml/Product/Save.php acara ini diaktifkan pada baris 114:
$this->_eventManager->dispatch(
'controller_action_catalog_product_save_entity_after',
['controller' => $this]
);
Ini Melewati controller sebagai argumen. Namun saya tidak yakin bagaimana cara menggunakan ini untuk mengakses produk.
Saya ingin mendapatkan produk sku
Ini sudah cukup tua dan saya tidak yakin apakah ada yang peduli sekarang tapi saya mencari ini:
Saya tidak yakin sejak kapan tetapi pasti pada M2.2.x acara itu seperti ini sekarang:
yang berarti itu memberi Anda produk sekarang juga.
Untuk kasus Anda, Anda harus melakukan ini dan Anda bisa mendapatkan atribut produk sebagai array:
sumber