По умолчанию в маленькой корзине на сайте выводится только количество товаров. Сегодня бороздя единственный внятный для меня форум нашёл решение для вывода суммы заказа.
Как всегда всё достигается доработкой шаблона и использованием функции CSaleBasket::GetList API Битрикс.
[code lang=»php»]
if (IntVal($arResult["NUM_PRODUCTS"])>0)
{
if (CModule::IncludeModule(«sale»))
{
$arBasketItems = array();
$dbBasketItems = CSaleBasket::GetList(
array(
«NAME» => «ASC»,
«ID» => «ASC»
),
array(
«FUSER_ID» => CSaleBasket::GetBasketUserID(),
«LID» => SITE_ID,
«ORDER_ID» => «NULL»
),
false,
false,
array(«ID», «QUANTITY», «PRICE»)
);
while ($arItems = $dbBasketItems->Fetch())
{
if (strlen($arItems[«CALLBACK_FUNC»]) > 0)
{
CSaleBasket::UpdatePrice($arItems[«ID»],
$arItems[«QUANTITY»]);
$arItems = CSaleBasket::GetByID($arItems[«ID»]);
}
$arBasketItems[] = $arItems;
}
$summ = 0;
for ($i=0;$i<=$arResult["NUM_PRODUCTS"];$i++){
$summ = $summ + $arBasketItems[$i]["PRICE"]*$arBasketItems[$i]["QUANTITY"];
}
}
?>
» class=»basket-line-basket»> |
«>=$arResult["PRODUCTS"];?> на сумму =$summ?> руб. |
}
else
{
?>
|
=$arResult["ERROR_MESSAGE"]?> |
}
if($arParams["SHOW_PERSONAL_LINK"] == "Y")
{
?>
» class=»basket-line-personal»> |
«>= GetMessage("TSB1_PERSONAL") ?> |
}
?>
[/code]
вы встречались с тем, что если пользователь заходил на битрикс сайт с разных компов и клал в корзину товары, то потом она отображает неверную сумму? Как это можно вылечить?
Не встречался.
Но, как минимум, я бы сократил время сессии.
Та же проблема