
Управление товарами в корзине
Easyweb Топ-разработчик #2 с 2014 годаУправление товарами в корзине
Плагин добавляет чекбоксы к товарам в корзине. Клиент оформляет заказ только из выбранных позиций, а невыбранные остаются в корзине для следующего заказа. Недоступные товары автоматически исключаются и не блокируют оформление заказа.
Возможности
Чекбоксы у каждого товара в корзине + панель «Выбрать все / Снять все»
Невыбранные товары отображаются в списке с возможностью вернуть в заказ одним кликом
Недоступные к заказу товары автоматически выносятся из корзины и показываются отдельным блоком
Недоступные товары можно удалить из корзины: выбранные чекбоксами — кнопкой «Удалить выбранные», либо все сразу — кнопкой «Удалить все»
Отложенные товары («не пойдёт в заказ») тоже удаляются: по одному крестиком у строки или все сразу одной кнопкой
Удаление недоступных и отложенных включается и выключается отдельными настройками плагина
Если товар снова стал доступен — автоматически возвращается в корзину
После оформления заказа невыбранные товары возвращаются в корзину
Доставка, скидки и итоговая сумма пересчитываются по выбранным позициям
Преимущества
Работает из коробки — не требует интеграции с плагинами скидок, доставки или оплаты
Не пересчитывает суммы самостоятельно — всё считает сам 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" > div >
Мы в социальных сетях
Узнавайте первыми о наших новых решениях и акциях.





