Magento 2 - 如何在通过管理面板添加或更新产品时调用一些 api
Magento 2 - How to call some api when adding or updating a product via admin panel
每当我向目录添加新产品或更新任何产品时,我都想调用 api,请参阅 screenshot。
有什么解决办法吗?
为此,您可以在事件 catalog_product_save_after
上使用观察者。
您的项目需要这些文件:
app/code/Company/Module/registration.php:
<?php
declare(strict_types = 1);
use Magento\Framework\Component\ComponentRegistrar;
ComponentRegistrar::register(
ComponentRegistrar::MODULE,
'Company_Module',
__DIR__
);
app/code/Company/Module/etc/module.xml:
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="Company_Module"/>
</config>
app/code/Company/Module/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="catalog_product_save_after">
<observer name="company_module_product_save_after" instance="Company\Module\Observer\Catalog\ProductSaveAfter" />
</event>
</config>
app/code/Company/Module/Observer/Catalog/ProductSaveAfter.php:
<?php
declare(strict_types = 1);
namespace Company\Module\Observer\Catalog;
use Magento\Framework\Event\Observer;
use Magento\Framework\Event\ObserverInterface;
class ProductSaveAfter implements ObserverInterface
{
/**
* Execute observer
*
* @param Observer $observer
* @return void
*/
public function execute(
Observer $observer
): void {
// Your code logic here, like:
$product = $observer->getProduct();
$productData = $product->getData();
}
}
在此之后 运行 bin/magento setup:upgrade
从命令行启用模块。
每当我向目录添加新产品或更新任何产品时,我都想调用 api,请参阅 screenshot。
有什么解决办法吗?
为此,您可以在事件 catalog_product_save_after
上使用观察者。
您的项目需要这些文件:
app/code/Company/Module/registration.php:
<?php
declare(strict_types = 1);
use Magento\Framework\Component\ComponentRegistrar;
ComponentRegistrar::register(
ComponentRegistrar::MODULE,
'Company_Module',
__DIR__
);
app/code/Company/Module/etc/module.xml:
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="Company_Module"/>
</config>
app/code/Company/Module/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="catalog_product_save_after">
<observer name="company_module_product_save_after" instance="Company\Module\Observer\Catalog\ProductSaveAfter" />
</event>
</config>
app/code/Company/Module/Observer/Catalog/ProductSaveAfter.php:
<?php
declare(strict_types = 1);
namespace Company\Module\Observer\Catalog;
use Magento\Framework\Event\Observer;
use Magento\Framework\Event\ObserverInterface;
class ProductSaveAfter implements ObserverInterface
{
/**
* Execute observer
*
* @param Observer $observer
* @return void
*/
public function execute(
Observer $observer
): void {
// Your code logic here, like:
$product = $observer->getProduct();
$productData = $product->getData();
}
}
在此之后 运行 bin/magento setup:upgrade
从命令行启用模块。