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 从命令行启用模块。