是否有辦法從Magento2注冊類似web hook的功能,在magneto網站的一些操作中呼叫外部API(將產品添加到購物車,添加貨物...等)
。我需要從API做這件事,因為Magento網站是托管在不同的終端(客戶),我對它的控制力很弱。我只是想通過API呼叫Magento網站來完成這些作業。
我知道這在woocommerce是可行的,我們可以在woocommerce網站上注冊我的外部API,然后從那里我可以注冊我的應用程式作為回呼。這一切都可以通過呼叫API到Woocommerce網站來完成,不需要從Woocommerce網站修改任何源代碼。
誰有這方面的見解,請給我一個參考路徑。
uj5u.com熱心網友回復:
對于這些情況,Magento事件/觀察者設計模式將是合適的,也可以參考檔案。
因此,對于向購物車添加產品的webhook,您可以使用checkout_cart_product_add_after事件。
你的模塊應該看起來像這樣:
app/code/Company/Module/registration.php:<?php
declare(strict_types = 1)。
使用 MagentoFrameworkComponentComponentRegistrar;
組件注冊器::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"/span>
xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">/span>
<module name="Company_Module"/span>/>
</config>/span>
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="checkout_cart_product_add_after"/span>>/span>
< observer name="company_module_checkout_cart_product_add_after"instance="CompanyModuleObserverCheckoutCartProductAddAfter" />
</event>
</config>
app/code/Company/Module/Observer/CheckoutCartProductAddAfter.php:
<?php
declare(strict_types = 1)。
namespace CompanyModuleObserver;
使用 MagentoFrameworkEventObserver。
使用 MagentoFrameworkEventObserverInterface。
class CheckoutCartProductAddAfter implements ObserverInterface
{
/**。
*執行觀察者
*
* @param Observer $observer
* @return void
*/
public function execute()
觀察者$observer。
)。) void {
//你的代碼邏輯在這里,就像:。
$item = $observer->getEvent()->getQuoteItem()。
$product = $item->getProduct()。
$data = $this-> _request-> getParams();
}
添加這些檔案后,從命令列運行php bin/magento setup:upgrade來啟用該模塊。
如果你把它變成一個開源的 composer 包,那么他們只需要安裝這個包并做一些配置。這將是一個很好的方法。
這是不可能的。
然而,從Magento外部觀察這些事件是不可能的。因此,如果你真的無法在Magento中做出任何改變,你可以做的是輪詢Magento api以獲取新的報價/出貨量。
例如,通過Magento Rest API獲取出貨量串列(建議發送日期從/到過濾器)。https://magento.redoc.ly/2.4.3-admin/tag/shipments#operation/salesShipmentRepositoryV1GetListGet
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/320566.html
標籤:
