- Модуль: catalog
- Путь к файлу: ~/bitrix/modules/catalog/lib/v2/Integration/Seo/Facebook/FacebookFacade.php
- Класс: BitrixCatalogv2IntegrationSeoFacebookFacebookFacade
- Вызов: FacebookFacade::processWebhook
private function processWebhook(int $queueId, array $errors): void
{
$queueData = ExportedProductQueueTable::getByPrimary($queueId)->fetch();
if (!$queueData)
{
return;
}
ExportedProductQueueTable::delete($queueId);
$preparedErrors = [];
foreach ($errors as $error)
{
$preparedErrors[$this->processor->getProductIdByRetailerId($error['id'])] = $error['message'];
}
$productIds = BitrixMainWebJson::decode($queueData['PRODUCT_IDS']);
$preparedProducts = [];
foreach ($productIds as $productId)
{
$preparedProducts[$productId] = [
'ID' => $productId,
'ERROR' => $preparedErrors[$productId],
];
}
$this->exportedProductRepository->save($preparedProducts);
$facebookProductIds = [];
if (empty($preparedErrors))
{
$facebookProductIds = $this->getFacebookProductIds($productIds);
}
$event = new BitrixMainEvent(
'catalog',
'onFacebookCompilationExportFinished',
[
'QUEUE_ID' => $queueId,
'ERROR_PRODUCTS' => $preparedErrors,
'FACEBOOK_PRODUCT_IDS' => $facebookProductIds,
]
);
$event->send();
}