How To: Кнопка очистки корзины

В XSL-шаблон добавляете кнопку очистки корзины с передачей GET-параметра deleteAll, например:

<input name="deleteAll" value="Очистить" type="submit" class="button" />

или

<a href="?deleteAll" class="button">Очистить</a>

Работа с корзиной осуществляется с использованием контроллера Shop_Cart_Controller, получение товаров, добавленных в корзину, осуществляется методом getAll($oShop), аргументом передается объект магазина.

При поступлении запроса на очистику выбираем все элементы и удаляем их из корзины пользователя, код размещаем в конец кода настроек типовой динамической страницы корзины перед $Shop_Cart_Controller_Show = new Shop_Cart_Controller_Show($oShop);.

// Очистка корзины
if (!is_null(Core_Array::getRequest('deleteAll')))
{
    $oShop_Cart_Controller = Shop_Cart_Controller::instance();
    $aCart = $oShop_Cart_Controller->getAll($oShop);
    
    foreach ($aCart as $oShop_Cart)
    {
        $oShop_Cart_Controller
            ->clear()
            ->shop_item_id($oShop_Cart->shop_item_id)
            ->delete();
    }
}

Не нашли ответ на свой вопрос в документации? Направьте обращение в службу поддержки или онлайн чат.

Комментарии

  • Очистка корзины

    Приведенный код работает исключительно с кнопкой на базе тэга input , только после удаления товаров из корзины выкидывает на следующую страницу "Адрес доставки", а хотелось бы, чтобы страница не менялась.
    Кнопка в виде ссылки не работает вообще.

    03.06.2018 02:32:01
    a271507