Observer/ProcessProductAfterDeleteEventObserver.php (43 lines of code) (raw):

<?php /** * Copyright (c) Meta Platforms, Inc. and affiliates. All Rights Reserved */ namespace Facebook\BusinessExtension\Observer; use Facebook\BusinessExtension\Helper\FBEHelper; use Facebook\BusinessExtension\Model\Product\Feed\Method\BatchApi; use Facebook\BusinessExtension\Model\System\Config as SystemConfig; use Magento\Framework\Event\Observer; use Magento\Framework\Event\ObserverInterface; use Magento\Framework\App\Helper\Context; class ProcessProductAfterDeleteEventObserver 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 delete from facebook catalog * after delete product from Magento * * @param Observer $observer */ public function execute(Observer $observer) { if ($this->systemConfig->isActiveCatalogSync() == false) { return; } $product = $observer->getEvent()->getProduct(); if ($product->getId()) { try { $this->fbeHelper->log("deleting product: ". $product->getId()); $requestData = $this->batchApi->buildProductRequest($product, $method='DELETE'); $requestParams = []; $requestParams[0] = $requestData; $this->fbeHelper->log(json_encode($requestParams)); $response = $this->fbeHelper->makeHttpRequest($requestParams, null); $this->fbeHelper->log("deletion responses: ".json_encode($response)); } catch (\Exception $e) { $this->fbeHelper->logException($e); } } } }