Skip to content
msBundles
Комплекты товаров miniShop3 с общей ценой, скидкой и синхронизацией в корзине
  1. Компоненты
  2. msBundles

msBundles

С msBundles вы собираете наборы товаров в miniShop3 и продаёте их как одно предложение. Покупатель жмёт одну кнопку. В корзину попадают все позиции комплекта. Цена и скидка считаются по правилам, которые вы задали в менеджере. Если покупатель меняет количество или удаляет комплект, позиции набора меняются вместе.

С чего начать: Быстрый старт.

Список комплектов в менеджере

Возможности

Менеджер

Раздел Компоненты → msBundles работает на Vue 3 и PrimeVue через VueTools. Вы ищете комплекты по названию, фильтруете активные и неактивные, меняете порядок перетаскиванием.

В редакторе задаёте название, описание, картинку и состав. Копируете готовый комплект в один клик, смотрите превью «Как на витрине» и сохраняете с проверкой остатков. Для доступа нужны права msbundles_view и msbundles_save.

По экранам и сценариям: Интерфейс, Сценарии.

Цены и состав

На каждой строке состава свой режим цены:

РежимЧто происходит
ОригиналБерётся цена товара из miniShop3
ФиксВы задаёте цену за единицу
Скидка %Процент от цены товара
Скидка суммойСумма вычитается из цены товара
БесплатноПозиция идёт за 0

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

Остатки

Как витрина реагирует на нехватку обязательных позиций, задаёт msbundles_stock_behavior:

ЗначениеЧто видит покупатель
blockКарточка есть, кнопка «Добавить» неактивна
messageКарточка есть, под ней текст из stock_message
hideКарточки нет

Необязательную позицию при нулевом остатке комплект просто пропускает при добавлении. Сколько комплектов можно взять за раз, ограничивает msbundles_max_bundle_quantity. Ключи и права: Системные настройки.

Витрина

На карточке товара вызываете сниппет msBundles. В <head> ставите msBundles.initialize. Покупатель меняет число комплектов кнопками «−» / «+» или полем количества. Цена пересчитывается без перезагрузки страницы.

Штатные чанки Fenom можно заменить своими. Для своих шаблонов важны data-атрибуты (data-msbundles, data-ms-bundle, data-msbundles-action), а не имена CSS-классов. Цвета и скругления подгоняете переменными --msbundles-*.

Код и плейсхолдеры: Вывод на сайте, Сниппеты.

Карточка на витрине

Корзина

Комплект лежит в корзине несколькими строками miniShop3. Их связывает общий bundle_hash.

У главной строки бейдж «Комплект», поле количества и кнопка «Удалить комплект». У остальных строк подпись «Входит в комплект…», количество заблокировано, крестик поштучного удаления скрыт. Меняете количество у главной строки. Остальные подстраиваются сами. Удаляете любую строку комплекта. Уходит весь набор.

Чтобы блок корзины на странице обновлялся после добавления, у сниппета msCart нужен selector. В чанке корзины вызовите tplMsBundlesCartInfo.

Для разработчика

С витрины доступны REST-маршруты calculate, add, remove, get через роутер miniShop3. Для своих правил цены, остатков и CRUD есть события msOnBundle*. Примеры плагинов: События.

Требования

КомпонентЗачем
MODX Revolution 3Ядро
miniShop3Корзина и API
VueTools ≥ 1.1.2-plИнтерфейс менеджера
pdoToolsFenom-чанки на витрине
PHP 8.2+Сервер

После установки назначьте роли права msbundles_view (раздел и список) и msbundles_save (создание, правка, удаление).

Куда идти дальше

ЗадачаСтраница
Поставить пакет и собрать первый комплектБыстрый старт
Настроить остатки и лимит количестваСистемные настройки
Встроить карточку и корзину в шаблонВывод на сайте
Параметры msBundlesmsBundles
Подключение CSS/JSmsBundles.initialize
Разобрать экраны менеджераИнтерфейс
Пройти сценарии A–EСценарии
Написать плагин на событияСобытия
Найти типовую ошибкуFAQ