Меню

Удаление недоступных для заказа товаров из корзины

Просмотров: 1383

Задача: пользователи магазина могу наполнять корзины, но не доходить до оформления заказа. Такие корзины считаются брошенными. Но, пользователь может вернуться к оформлению через несколько дней и некоторые товары (ранее добавленные в корзину) могут быть сняты с продажи. Однако, такую корзину все равно можно оформить. Нужно автоматически удалить не доступные товары из корзины.

Удаление из корзины товаров, недоступных для заказа

Очистка корзины с помощью API 1С-Битрикс

Все просто: когда пользователь заходит в корзину, нужно запустить скрипт, который пройдется по всем товарам в корзине и удалит недоступные (снятые с продажи, отсутствующие и.т.д.).

В шаблоне корзины находим файл mutator.php и где-нибудь сверху добавляем код:

foreach ($arResult['BASKET_ITEM_RENDER_DATA'] as $basketItem) {
    if ($basketItem['NOT_AVAILABLE'] == 1) {
        CSaleBasket::Delete($basketItem['ID']);
    }
}

Проходимся по всем товарам добавленным в корзину. И если у товара присутсвует ключ ['NOT_AVAILABLE'] (будет равен единице), значит этот товар не доступен и удаляем его методом CSaleBasket::Delete

Недоступные товары будут автоматически удалены при открытии пользователем страницы корзины. Это произойдет незаметно, и пользователь даже не обратит внимания на их исчезновение.

Михаил Базаров 04.06.2024
Тоже самое на D7
Код
$fUserId = \Bitrix\Sale\Fuser::getId();
$basket = Basket::loadItemsForFUser($fUserId, \Bitrix\Main\Context::getCurrent()->getSite());

foreach ($arResult['BASKET_ITEM_RENDER_DATA'] as $basketItem) {
    if ($basketItem['NOT_AVAILABLE'] == 1) {
        $item = $basket->getItemById($basketItem['ID']);
        if ($item) {
            $item->delete();
        }
    }
}
$basket->save();
Гruslan 06.02.2025
По хорошему товар надо оставить, но пометить, что сейчас нет в наличии. Чтобы покупатель видел всю картину целиком, и мог сам удалить товар при необходимости. Ведь позже товар может поступить к продаже.
Михаил Базаров 06.02.2025
По хорошему да. Но заметка в качестве отправной точки, можно не удалять а переложить в отложенные или сделать отдельной надстройкой в "сейчас нет в наличии"

Стоимость и сроки разработки сайтов и приложений

Окончательная стоимость и сроки разработки сайта формируются после обсуждения деталей на этапе заказа. Как правило, они редко выходят за обозначенные ниже рамки.

Разработка интернет-магазина с максимальной оптимизацией от 350 000 руб.
от 4-х недель

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

Запуск интернет-магазина на готовом решении от 60 000 руб.
от 7-ми дней

Готовое решение — вариант для тех, кто не хочет тратить много средств на индивидуальный проект, и не имеет серьезных требований к сайту.

Мобильное приложение от 400 000 руб.
от 1-го месяца

Разработка кроссплатформенного мобильного приложения, которое не уступает нативным решениям как в производительности, так и пользовательском опыте. Публикуется в AppStore, GooglePlay и RuStore

Опросник на разработку. После ознакомления, задам уточняющие вопросы и оценю проект по стоимости и срокам разработки.