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

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

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

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

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

Возможности

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

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

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

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

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

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

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

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

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

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

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

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

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

Одностраничное оформление заказа работает из коробки. Пошаговая корзина подключается за два шага: вывести плагин в шаблоне cart.html и разметить в нём места для чекбоксов и блоков. Второй шаг обязателен: в стандартных темах такой разметки нет, и без неё плагин на странице ничего не покажет.

Пошаговая корзина, шаг 1: вывести плагин

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

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

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

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

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

Пошаговая корзина, шаг 2: разметить места в cart.html

Плагин не переверстывает корзину темы — он вставляет свои части туда, куда вы укажете. Места отмечаются классами-крючками, оформления на них нет:

js-ewmpcart-row — строка товара. На ней же нужны data-product-id и data-sku-id : по ним плагин понимает, какой товар в строке;

js-ewmpcart-cbslot — куда в строке встанет чекбокс. Необязательный: без него чекбокс встаёт первым элементом строки и позиционируется по её левому краю;

js-ewmpcart-panel-slot — панель «Выбрано N из M»;

js-ewmpcart-unchecked-slot — блок «Не пойдёт в заказ»;

js-ewmpcart-unavailable-slot — блок «Недоступны к заказу».

Слоты — пустые элементы, плагин наполняет их содержимым. Ставьте только те, что нужны: чего нет, то не показывается.

< div class = "js-ewmpcart-panel-slot" >

{ foreach $cart.items as $item }

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

< span class = "js-ewmpcart-cbslot" >

{/ foreach }

< div class = "js-ewmpcart-unchecked-slot" >

< div class = "js-ewmpcart-unavailable-slot" >

Оформление у блоков своё, вёрстку темы они не ломают: в слоте лежит обычный элемент, который можно красить и двигать средствами темы.

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

Плагин рисует четыре части: чекбокс у товара в корзине, панель «Выбрано 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-атрибуты товара — по ним плагин находит свои элементы. Оформления на этих классах нет, поэтому вёрстку и стили можно менять свободно, ничего не перебивая.

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

Если в теме уже есть разметка одностраничного оформления

Слоты можно не расставлять: плагин сам найдёт список товаров по разметке checkout2 — контейнер .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