Управление товарами в корзине
Плагин добавляет чекбоксы к товарам в корзине. Клиент оформляет заказ только из выбранных позиций, а невыбранные остаются в корзине для следующего заказа. Недоступные товары автоматически исключаются и не блокируют оформление заказа.
Возможности
- Чекбоксы у каждого товара в корзине + панель «Выбрать все / Снять все»
- Невыбранные товары отображаются в списке с возможностью вернуть в заказ одним кликом
- Недоступные к заказу товары автоматически выносятся из корзины и показываются отдельным блоком
- Недоступные товары можно удалить из корзины: выбранные чекбоксами — кнопкой «Удалить выбранные», либо все сразу — кнопкой «Удалить все»
- Отложенные товары («не пойдёт в заказ») тоже удаляются: по одному крестиком у строки или все сразу одной кнопкой
- Удаление недоступных и отложенных включается и выключается отдельными настройками плагина
- Если товар снова стал доступен — автоматически возвращается в корзину
- После оформления заказа невыбранные товары возвращаются в корзину
- Доставка, скидки и итоговая сумма пересчитываются по выбранным позициям
Преимущества
- Работает из коробки — не требует интеграции с плагинами скидок, доставки или оплаты
- Не пересчитывает суммы самостоятельно — всё считает сам Shop-Script, без задержек и конфликтов
- Совместим с любыми плагинами скидок, купонов и бонусов без дополнительных настроек
Одностраничное оформление заказа работает из коробки. Пошаговое оформление поддерживается через хелпер для тем дизайна — потребуется адаптация шаблона корзины
cart.html(см. ниже).
Подключение в пошаговой корзине с помощью хелпера
В одностраничном оформлении плагин подключается сам. Для пошаговой корзины вставьте код в шаблон корзины вашей темы — файл cart.html. Хелпер проверяет через version(), что плагин установлен и включён, — при удалении плагина тема не сломается:
{if !empty($wa->shop->ewshopmpcartPlugin->version())}
{$wa->shop->ewshopmpcartPlugin->cart()}
{/if}
Хелпер выводит стили, скрипт и инициализацию плагина. Если тема уже печатает результаты хука 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"> <!-- изображение, название, цена --> </div>
</div>
</div>
Мы в социальных сетях
Узнавайте первыми о наших новых решениях и акциях.
- Вконтакте - https://vk.com/easyweb_su
- Телеграм - https://t.me/easyweb_su
