- Модуль: seo
- Путь к файлу: ~/bitrix/modules/seo/lib/advsession.php
- Класс: BitrixSeoAdvSession
- Вызов: AdvSession::countSessionOrder
static function countSessionOrder($orderId)
{
if(
MainLoader::includeModule('sale')
&& MainLoader::includeModule('catalog')
&& MainLoader::includeModule('currency')
)
{
$orderLinks = OrderTable::getList(array(
'filter' => array(
'=ORDER_ID' => $orderId,
'=PROCESSED' => OrderTable::NOT_PROCESSED,
),
'select' => array('ID', 'BANNER_ID')
));
$orderLink = $orderLinks->fetch();
if($orderLink)
{
$linkedProductsList = static::getBannerLinkedProducts($orderLink['BANNER_ID']);
if(count($linkedProductsList) > 0)
{
$basket = BasketTable::getList(array(
'filter' => array(
'=ORDER_ID' => $orderId,
),
'select' => array('PRODUCT_ID', 'GROSS_PROFIT', 'SUMMARY_PRICE', 'SUMMARY_PURCHASING_PRICE', 'QUANTITY'),
));
$sum = 0;
while($item = $basket->fetch())
{
if(in_array($item['PRODUCT_ID'], $linkedProductsList))
{
$sum += static::getProductProfit($item);
}
else
{
$productInfo = CCatalogSKU::GetProductInfo($item['PRODUCT_ID']);
if(is_array($productInfo) && in_array($productInfo['ID'], $linkedProductsList))
{
$sum += static::getProductProfit($item);
}
}
}
OrderTable::update($orderLink['ID'], array(
'SUM' => $sum,
'PROCESSED' => OrderTable::PROCESSED,
));
}
}
}
}