Управление товарами в корзине

Управление товарами в корзине

Easyweb Топ-разработчик #2 с 2014 года
5.0 (2 отзывов)20 установок

Управление товарами в корзине

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

Возможности

Чекбоксы у каждого товара в корзине + панель «Выбрать все / Снять все»

Невыбранные товары отображаются в списке с возможностью вернуть в заказ одним кликом

Недоступные к заказу товары автоматически выносятся из корзины и показываются отдельным блоком

Недоступные товары можно удалить из корзины: выбранные чекбоксами — кнопкой «Удалить выбранные», либо все сразу — кнопкой «Удалить все»

Отложенные товары («не пойдёт в заказ») тоже удаляются: по одному крестиком у строки или все сразу одной кнопкой

Удаление недоступных и отложенных включается и выключается отдельными настройками плагина

Если товар снова стал доступен — автоматически возвращается в корзину

После оформления заказа невыбранные товары возвращаются в корзину

Доставка, скидки и итоговая сумма пересчитываются по выбранным позициям

Преимущества

Работает из коробки — не требует интеграции с плагинами скидок, доставки или оплаты

Не пересчитывает суммы самостоятельно — всё считает сам Shop-Script, без задержек и конфликтов

Совместим с любыми плагинами скидок, купонов и бонусов без дополнительных настроек

Одностраничное оформление заказа работает из коробки. Пошаговое оформление поддерживается через хелпер для тем дизайна — потребуется адаптация шаблона корзины cart.html (см. ниже).

Подключение в пошаговой корзине с помощью хелпера

В одностраничном оформлении плагин подключается сам. Для пошаговой корзины вставьте код в шаблон корзины вашей темы — файл cart.html . Хелпер проверяет через version() , что плагин установлен и включён, — при удалении плагина тема не сломается:

{ if ! empty ( $wa -> shop -> ewshopmpcartPlugin -> version ())}

{ $wa -> shop -> ewshopmpcartPlugin -> cart ()}

Хелпер выводит стили, скрипт и инициализацию плагина. Если тема уже печатает результаты хука frontend_cart — плагин подключится через него, отдельный вызов хелпера не нужен:

{ foreach $frontend_cart as $_ }{ $_ }{/ foreach }

Свой дизайн в теме

Плагин рисует четыре части: чекбокс у товара в корзине, панель «Выбрано N из M», блок отложенных или недоступных товаров и строку внутри такого блока. Любую из них можно отрисовать в стиле своей темы — скопируйте нужный шаблон из каталога plugins/ewshopmpcart/templates/actions/frontend/ в корень активной темы дизайна:

Checkbox.html → ewshopmpcart_plugin.checkbox.html — чекбокс у товара в корзине

Panel.html → ewshopmpcart_plugin.panel.html — панель «Выбрано N из M»

Excluded.html → ewshopmpcart_plugin.excluded.html — блок отложенных и недоступных

Product.html → ewshopmpcart_plugin.product.html — строка товара внутри блока

Любому шаблону можно задать отдельный вид для режимов оформления — добавьте в имя .cart (пошаговая корзина) или .order (одностраничное оформление), например ewshopmpcart_plugin.product.order.html . Специфичный шаблон побеждает общий.

Что именно нужно сохранить, перечислено в комментарии в начале каждого шаблона: несколько классов с приставкой js-ewmpcart- и data-атрибуты товара — по ним плагин находит свои элементы. Оформления на этих классах нет, поэтому вёрстку и стили можно менять свободно, ничего не перебивая.

Если тема подменила все шаблоны и оформляет их сама, оформление плагина можно вовсе не подключать — выключите настройку «Подключать оформление плагина». Учтите, что вместе с ним уходит и раскладка: положение чекбокса в строке, отступ строки под него, всплывающая подсказка и затемнение корзины на время запроса — их придётся описать в теме.

Требования к разметке корзины

Плагин находит товары по разметке: контейнер списка — .wa-products , строка товара — .wa-product с data-атрибутами. Панель выбора вставляется перед списком, блоки «не пойдёт в заказ» и «недоступны к заказу» — после него.

< div class = "wa-products" >

< div class = "wa-product" data-id = "{$item.id}" data-product-id = "{$item.product_id}" data-sku-id = "{$item.sku_id}" >

< div class = "wa-product-body" >

Мы в социальных сетях

Узнавайте первыми о наших новых решениях и акциях.

Вконтакте - https://vk.com/easyweb_su

Телеграм - https://t.me/easyweb_su