Observer/ProcessProductAfterSaveEventObserver.php (45 lines of code) (raw):

<?php /** * Copyright (c) Meta Platforms, Inc. and affiliates. All Rights Reserved */ namespace Facebook\BusinessExtension\Observer; use Exception; use Facebook\BusinessExtension\Helper\FBEHelper; use Facebook\BusinessExtension\Model\Product\Feed\Method\BatchApi; use Facebook\BusinessExtension\Model\System\Config as SystemConfig; use Magento\Catalog\Model\Product; use Magento\Framework\Event\Observer; use Magento\Framework\Event\ObserverInterface; class ProcessProductAfterSaveEventObserver implements ObserverInterface { /** * @var FBEHelper */ protected $fbeHelper; /** * @var BatchApi */ protected $batchApi; /** * @var SystemConfig */ protected $systemConfig; /** * Constructor * @param FBEHelper $helper * @param BatchApi $batchApi * @param SystemConfig $systemConfig */ public function __construct( FBEHelper $helper, BatchApi $batchApi, SystemConfig $systemConfig ) { $this->fbeHelper = $helper; $this->batchApi = $batchApi; $this->systemConfig = $systemConfig; } /** * Call an API to product save from facebook catalog * after save product from Magento * * @param Observer $observer */ public function execute(Observer $observer) { if ($this->systemConfig->isActiveCatalogSync() == false) { return; } /** @var Product $product */ $product = $observer->getEvent()->getProduct(); if (!$product->getId()) { return; } $storeId = $product->getStoreId(); $product->setStoreId($this->fbeHelper->getStore()->getId()); try { $requestData = $this->batchApi->buildProductRequest($product); $requestParams = []; $requestParams[0] = $requestData; $this->fbeHelper->makeHttpRequest($requestParams, null); } catch (Exception $e) { $this->fbeHelper->logException($e); } $product->setStoreId($storeId); } }