• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/internals/facebookconversion.php
  • Класс: BitrixSaleInternalsFacebookConversion
  • Вызов: FacebookConversion::onAddToCartHandler
static function onAddToCartHandler(int $id, array $productData): void
{
	if (!self::isAllowedRegion())
	{
		return;
	}

	$request = BitrixMainContext::getCurrent()->getRequest();
	$action = $request->get('action');
	if ($action !== 'ADD2BASKET' && $action !== 'BUY')
	{
		return;
	}

	if (!self::checkClass())
	{
		return;
	}

	$params = self::getFacebookConversionParams(FacebookEvent::EVENT_ADD_TO_CART);
	if (!$params)
	{
		return;
	}

	if ($params[self::ID] !== 'Y')
	{
		return;
	}

	$customDataParams = [
		'content_type' => 'product',
	];

	if ($params[self::NAME] === 'Y')
	{
		$customDataParams['content_name'] = $productData['NAME'];
	}
	if ($params[self::GROUP] === 'Y')
	{
		$customDataParams['content_category'] = self::getProductDeepestSection((int)$productData['PRODUCT_ID']);
	}
	if ($params[self::PRICE] === 'Y')
	{
		$customDataParams['value'] = $productData['PRICE'];
		$customDataParams['currency'] = $productData['CURRENCY'];
	}
	if ($params[self::QUANTITY] === 'Y')
	{
		$customDataParams['contents'] = [
			[
				'product_id' => $productData['PRODUCT_ID'],
				'quantity' => $productData['QUANTITY'],
			]
		];
	}
	else
	{
		$customDataParams['content_ids'] = [$productData['PRODUCT_ID']];
	}

	self::fireEvent(FacebookEvent::EVENT_ADD_TO_CART, $customDataParams);
}