- Модуль: seo
- Путь к файлу: ~/bitrix/modules/seo/lib/advsession.php
- Класс: BitrixSeoAdvSession
- Вызов: AdvSession::checkSessionOrder
static function checkSessionOrder($orderId)
{
if(
isset($_SESSION['SEO_ADV'])
&& is_array($_SESSION['SEO_ADV'])
&& $_SESSION['SEO_ADV']['BANNER_ID'] > 0
&& !in_array($orderId, static::$orderHandlerCalled)
&& MainLoader::includeModule('sale')
&& MainLoader::includeModule('catalog')
)
{
static::$orderHandlerCalled[] = $orderId;
$banner = null;
switch($_SESSION['SEO_ADV']['ENGINE'])
{
case YandexDirect::ENGINE_ID:
$dbRes = YandexBannerTable::getList(array(
'filter' => array(
'=XML_ID' => $_SESSION['SEO_ADV']['BANNER_ID'],
'=ENGINE.CODE' => YandexDirect::ENGINE_ID,
),
'select' => array(
'ID', 'CAMPAIGN_ID', 'ENGINE_ID',
)
));
$banner = $dbRes->fetch();
break;
}
if($banner)
{
$linkedProductsList = static::getBannerLinkedProducts($banner['ID']);
if(count($linkedProductsList) > 0)
{
$basket = BasketTable::getList(array(
'filter' => array(
'=ORDER_ID' => $orderId,
),
'select' => array('PRODUCT_ID'),
));
$addEntry = false;
while($item = $basket->fetch())
{
if(in_array($item['PRODUCT_ID'], $linkedProductsList))
{
$addEntry = true;
break;
}
else
{
$productInfo = CCatalogSKU::GetProductInfo($item['PRODUCT_ID']);
if(is_array($productInfo) && in_array($productInfo['ID'], $linkedProductsList))
{
$addEntry = true;
break;
}
}
}
if($addEntry)
{
$entryData = array(
'ENGINE_ID' => $banner['ENGINE_ID'],
'CAMPAIGN_ID' => $banner['CAMPAIGN_ID'],
'BANNER_ID' => $banner['ID'],
'ORDER_ID' => $orderId,
'SUM' => 0,
'PROCESSED' => OrderTable::NOT_PROCESSED,
);
OrderTable::add($entryData);
}
}
}
}
}