Телеграм: @camouf_ru Почта: mihail@bazarow.ru

Очистка корзины битрикс одним нажатием

Очистка корзины битрикс одним нажатием

В стандартной корзине Битрикс не хватает кнопки для полной очистки корзины одним нажатием. Требуется это довольно редко, однако изредка все же необходимо добавить этот функционал. Расскажу как

Удалить все в корзине Битрикс

На одном из созданных сайтов, по производству и оптовой поставке железобетонных изделий, была замечена тенденция: достаточно часто изделия добавляются в заказу для расчета общего веса набранных товаров. После чего пользователь начинает удалять позиции корзины по одной, а "накидать" в заказ может и 30-50 позиций. Для заботы о посетителях решил добавить кнопку очистки корзины одним нажатием.

В файл /php_intarface/init.php добавляем:


<?
if ($_POST["BasketDelete"] and CModule::IncludeModule("sale"))
{ CSaleBasket::DeleteAll(CSaleBasket::GetBasketUserID());
} ?>

В нужное место, там где хотите показать кнопку очистки корзины, в шаблоне корзины, добавляем:


<input type="submit" value="Очистить корзину" name="BasketDelete">

И оформляем, как того требует дизайн вашего сайта.

Виталий Кузьмин24.07.2017
Добрый день, Михаил.

Такой вопрос, связанный с удалением из корзины.

Имеется товар  с торговыми предложениями:
<?echo $arOffer["ID"]?> - Отвечает за добавление выбранного торг. предложения в корзину.
А иначе есть код, который отвечает за удаление торг. предложения из корзины?
tos99521.11.2017
можно узнать полный путь где лежит /php_intarface/init.php , а то я уже в шаблоне папку создал и поискал по всем папкам ( нашел - воткнул код) - не работает. =(
Михаил Базаров21.11.2017
Цитата
tos995 написал:
init.php
Вот так поразвернутее будет ответ)
https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=43&LESSON_ID=2916
Андрей Турланов10.10.2019
Михаил, добрый день.
Не подскажите, при использовании этого метода под авторизованным пользователем, вижу ошибку:

[Error] Call to a member function IsAuthorized() on string (0)
/xxxxxxxxxx/docs/bitrix/modules/sale/general/basket.php:3789
#0: CAllSaleUser::GetID(boolean)     xxxxxxxxxx/docs/bitrix/modules/sale/general/basket.php:1782
#1: CAllSaleBasket::Init(boolean, boolean)      xxxxxxxxxx/docs/bitrix/modules/sale/general/basket.php:1794
#2: CAllSaleBasket::GetBasketUserID()      xxxxxxxxxx/docs/bitrix/php_interface/init.php:100
#3: include_once(string)      xxxxxxxxxx/docs/bitrix/modules/main/include.php:236
и т.д.
Андрей Турланов10.10.2019
Нельзя такой код просто в init.php писать, нужно оборачивать в Handler!

Случайные заметки