Чтобы узнать сколько товаров в корзине (и сколько позиций) создаем файл /personal/order/basket_rows.php:
<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
if( CModule::IncludeModule("sale") )
{
$dbBasketItems = CSaleBasket::GetList(
array(
"NAME" => "ASC",
"ID" => "ASC"
),
array(
"FUSER_ID" => CSaleBasket::GetBasketUserID(),
"LID" => SITE_ID,
"ORDER_ID" => "NULL"
),
false,
false,
array()
);
$kind = $dbBasketItems->SelectedRowsCount();
$quant = 0;
while($record = $dbBasketItems->Fetch()) {
$quant += $record['QUANTITY'];
}
//define("COUNT_BASKET", $quant);
echo json_encode(array('result'=>$quant, 'message'=>'ok', 'content'=>$kind));
die();
}
else
{
echo json_encode(array('result'=>0, 'message'=>'dont include module Sale'));
die();
}
?>
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/indlude/epilog_after.php");?> |
в шаблоне сайта:
<a href="/basket/"><div id="count_basket"></div></a>
<?
CJSCore::Init(array('ajax'));?>
<script type="text/javascript">
function RefreshCountBasket(){
var strBasket = '/personal/order/basket_rows.php';
BX.ajax.loadJSON(strBasket, function(data){
if(data.result )
{
var basket_content = BX('count_basket');
BX.adjust(basket_content, { text: data.result} );
}
});
}
BX.ready(function(){
RefreshCountBasket();
});
</script>
|
если после добавления товара в корзину надо обновить количество товаров в ней - вызываем функцию RefreshCountBasket();