• Модуль: 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();
}