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

Просмотров: 8516 | Комментариев: 5

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

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

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

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

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

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

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

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


Добрый день, Михаил.

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

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

[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
и т.д.
Андрей
Нельзя такой код просто в init.php писать, нужно оборачивать в Handler!

Кроме создания сайтов, я так же веду блог с заметками о вебразработке, записываю бесплатные видеоуроки и содержу форум, на котором можно задавать вопросы и просто общаться. Заметки, преимущественно - это короткие или подробные рецепты, по реализации часто требуемого функционала- в рамках разработки сайтов на 1С-Битрикс

Показать еще