Подтвердите, что вы не робот
Напишите нам
Напишите нам

Как удалить брошенные корзины в Битрикс

Автор:

Дата публикации:

Как удалить брошенные корзины в Битрикс

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

Скрипт удаления брошенных корзин можно реализовать через ajax либо создать какой-нибудь файл php и в него внести такой код:


use \Bitrix\Main\Loader;

Loader::includeModule('catalog');
Loader::includeModule('sale');

$basket = \Bitrix\Sale\Basket::getList(
    array(
        'select'  => array('FUSER_ID'),
        'filter' => array('ORDER_ID' => 'NULL',),
    )
);
while($Item = $basket->Fetch()){
    CSaleBasket::DeleteAll($Item['FUSER_ID'], false);
}

И конечно не забудьте в самом начале файла подключить пролог, иначе ничего не сработает. Далее, вводим адрес созданного файла в адресной строке и проверяем отсутствие брошенных корзин в админке по пути Админка - Магазин - Покупатели - Корзины.

А теперь все по порядку. Чтобы сделать выборку корзин, нужно обязательно подключить модуль торговый каталог (catalog) и модуль интернет-магазин (sale). Далее выбираем брошенные корзины - это корзины, которые не привязаны к заказу, т.е. в фильтре значение ORDER_ID устанавливаем в NULL. В выборке мы должны получить ID пользователей, которые создали брошенные корзины - это параметр FUSER_ID. Значение параметра FUSER_ID не всегда совпадает с ID пользователя на сайте. А именно, если в корзину товары добавлял авторизованный пользователь, то FUSER_ID = USER_ID (ID пользователя в системе). В противном случае в FUSER_ID попадает ID неавторизованного покупателя, который Битрикс генерирует автоматически.

И наконец в цикле while мы пробегаем по всем таким покупателям и удаляем корзины, которые к ним привязаны с помощью метода DeleteAll класса CSaleBasket модуля интернет-магазин.


241027, Россия, Брянская область, поселок Путевка, улица Рослальская, дом 8, кв.121
Телефон: +7 (950) 692-91-71

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

Скрипт удаления брошенных корзин можно реализовать через ajax либо создать какой-нибудь файл php и в него внести такой код:


use \Bitrix\Main\Loader;

Loader::includeModule('catalog');
Loader::includeModule('sale');

$basket = \Bitrix\Sale\Basket::getList(
    array(
        'select'  => array('FUSER_ID'),
        'filter' => array('ORDER_ID' => 'NULL',),
    )
);
while($Item = $basket->Fetch()){
    CSaleBasket::DeleteAll($Item['FUSER_ID'], false);
}

И конечно не забудьте в самом начале файла подключить пролог, иначе ничего не сработает. Далее, вводим адрес созданного файла в адресной строке и проверяем отсутствие брошенных корзин в админке по пути Админка - Магазин - Покупатели - Корзины.

А теперь все по порядку. Чтобы сделать выборку корзин, нужно обязательно подключить модуль торговый каталог (catalog) и модуль интернет-магазин (sale). Далее выбираем брошенные корзины - это корзины, которые не привязаны к заказу, т.е. в фильтре значение ORDER_ID устанавливаем в NULL. В выборке мы должны получить ID пользователей, которые создали брошенные корзины - это параметр FUSER_ID. Значение параметра FUSER_ID не всегда совпадает с ID пользователя на сайте. А именно, если в корзину товары добавлял авторизованный пользователь, то FUSER_ID = USER_ID (ID пользователя в системе). В противном случае в FUSER_ID попадает ID неавторизованного покупателя, который Битрикс генерирует автоматически.

И наконец в цикле while мы пробегаем по всем таким покупателям и удаляем корзины, которые к ним привязаны с помощью метода DeleteAll класса CSaleBasket модуля интернет-магазин.



Другие статьи:  Установка и настройка плагина Contacts Form 7 / Технология композитный сайт / Интеграция «1С-Битрикс: Управление сайтом» и «1С:Предприятие»

Похожие статьи

Адаптивное ютуб видео на сайте
В этом уроке я покажу вам один из способов адаптировать видео, размещенное на сайте с помощью тега iframe, например, видео с хостинга Ютуб.
Водяной знак на дополнительных фотографиях товара в 1С-Битрикс
Из коробки 1С-Битрикс идет функционал установки водяного знака на превью и детальное изображение товара. Но как быть, если водяной знак нужно установить на дополнительные фотографии, которые отображаются в слайдере товара, т.е. картинки из свойства типа ФАЙЛ?