Вывести общее количество товаров в корзине 1С-Битрикс

Просмотров: 155 | Комментариев: 0

Задача: вывести общее количество товаров в корзине (именно количество единиц товара, а не позиций). При этом данные должны обновляться на лету при увеличении или уменьшении количества конкретных позиций

Работать будет примерно так:

Корзина битрикс

Копируем шаблон компонента sale.basket.basket в шаблон своего сайта и открываем файл mutator.php именно из него считываются и обновляются данные корзины с использованием AJAX

В самый вверх это файла вставляем этот код:

 $dbBasketItems = CSaleBasket::GetList(
        false,
        array("FUSER_ID" => CSaleBasket::GetBasketUserID(), "LID" => SITE_ID, "ORDER_ID" => "NULL"),
        false,
        false,
        array("ID","PRODUCT_ID","QUANTITY"));
    while ($arItems=$dbBasketItems->Fetch())
    {
        $arItems=CSaleBasket::GetByID($arItems["ID"]);
        $countItemsInCart+=$arItems['QUANTITY'];
    }

Здесь, методом CSaleBasket::GetList мы получили количество товаров (повторяюсь, не позиций а именно общее число товаров) в корзине текущего пользователя и передали в переменную $countItemsInCart.

Далее, находим секцию которая формирует данные для вывода в шаблон (формирование массива $totalData) и добавляем в него новый элемент 'COUNT_ITEMS' => $countItemsInCart

количество товаров в корзине

Выводим результат пользователям

Теперь открываем файл js-templates/basket-total.php и в нужном месте выводим эту переменную в стиле mustash

{{{COUNT_ITEMS}}} шт.

Готово. Добавляя новые данные и расширяя mutator.php можно менять функционал корзины как угодно

Необходимо войти что бы оставить комментарий:

Авторизация

На сайте работает вход через социальные сети. Просто, выберите наиболее удобную сеть и авторизация произойдет автоматически: Проходя авторизацию, Вы безоговорочно принимаете условия политики конфеденциальности