msBundles - комплекты товаров для MiniShop3

Вышло новое дополнение для MiniShop3 — msBundles.



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

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

Для чего нужен msBundles

Комплекты встречаются практически в любом интернет-магазине:

  • «Ноутбук + мышь + сумка»;
  • «Диван + кресло»;
  • «Камера + объектив + карта памяти»;
  • «Шампунь + кондиционер + маска»;
  • «Комплект для путешествий»;
  • готовые подарочные наборы;
  • оборудование и комплектующие;
  • B2B-комплектации.
Раньше для такой механики приходилось самостоятельно связывать товары, рассчитывать цену, контролировать остатки и отдельно дорабатывать корзину.

msBundles закрывает эту задачу целиком.

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

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

Можно искать комплекты, фильтровать их по активности, менять порядок перетаскиванием, копировать существующие наборы и быстро переходить к редактированию.



Для каждого комплекта задаются:

  • название;
  • описание;
  • изображение;
  • активность;
  • состав товаров;
  • количество каждой позиции;
  • порядок товаров;
  • режим расчёта цены.
Удобный редактор комплекта

Товары добавляются поиском по названию, артикулу или ID. В составе можно менять порядок позиций обычным drag & drop.

Для каждой позиции отдельно задаётся количество, режим цены и признак обязательности.



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

Несколько вариантов расчёта цены

Каждая позиция комплекта может использовать собственный режим цены:

  • Оригинал — обычная цена товара из MiniShop3;
  • Фикс — заданная цена за единицу;
  • Скидка % — процентная скидка;
  • Скидка суммой — фиксированная сумма скидки;
  • Бесплатно — товар входит в комплект за 0 ₽.
Режимы можно комбинировать внутри одного комплекта.



Например, основной товар можно продавать по обычной цене, дополнительный — со скидкой 20%, а небольшой аксессуар сделать бесплатным.

В редакторе сразу рассчитываются:

  • итоговая стоимость комплекта;
  • обычная стоимость товаров;
  • экономия покупателя.
Обязательные и необязательные товары

Каждая позиция может быть обязательной или необязательной.

Это позволяет создавать не только жёстко заданные наборы, но и гибкие предложения.

Например:

  • ноутбук — обязательно;
  • мышь — обязательно;
  • сумка — необязательно;
  • гарнитура — необязательно.
Если необязательного товара нет в наличии, комплект всё равно можно добавить в корзину без этой позиции.

Контроль остатков

msBundles учитывает остатки товаров, входящих в комплект.

Для обязательных позиций можно настроить поведение витрины:

  • block — комплект отображается, но добавить его нельзя;
  • message — комплект отображается с сообщением о наличии;
  • hide — комплект полностью скрывается.
Для необязательных товаров при отсутствии остатка позиция просто пропускается при добавлении комплекта.

Превью прямо в менеджере

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

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



Если обязательного товара недостаточно на складе, менеджер покажет предупреждение ещё до сохранения комплекта.

Вывод комплектов на сайте

Для вывода используется сниппет msBundles.

Например, на странице товара можно показать все комплекты, в которые входит текущий товар:

{'!msBundles' | snippet : [
    'product' => $_modx->resource.id
]}
Также можно вывести конкретный комплект по его ID.

Стандартные Fenom-чанки можно заменить собственными и полностью адаптировать карточку комплекта под дизайн конкретного магазина.

При изменении количества цена пересчитывается без перезагрузки страницы.

И главное — полноценная интеграция с корзиной

Это одна из ключевых особенностей msBundles.

Комплект добавляется в корзину одной кнопкой, но внутри остаются реальные товары MiniShop3.

Все позиции комплекта связываются общим bundle_hash.

В результате покупатель получает привычную корзину, а магазин — нормальные товары, остатки и количества.

  • изменили количество комплекта — изменилось количество всех его товаров;
  • удалили комплект — удалились все его позиции;
  • основная строка управляет количеством комплекта;
  • остальные товары отображаются как входящие в комплект;
  • после изменения корзина автоматически перерисовывается.
Не только готовый UI

msBundles рассчитан и на разработчиков.

Для интеграции доступны REST API и JavaScript API, а основные операции с комплектами можно расширять через события.

Доступны операции:

  • получение комплекта;
  • расчёт цены и доступности;
  • добавление комплекта;
  • удаление комплекта.
На фронтенде доступен объект window.MsBundles с методами для работы с комплектами и обновления корзины.

Что в итоге

msBundles — это не просто вывод нескольких товаров рядом.

Это полноценная механика комплектов поверх MiniShop3:

  • удобный менеджер;
  • гибкое ценообразование;
  • скидки;
  • обязательные и необязательные товары;
  • контроль остатков;
  • превью комплекта;
  • готовый вывод на витрине;
  • синхронизация количества;
  • единое удаление комплекта из корзины;
  • REST API и JavaScript API;
  • события для расширения логики.
Требования

  • MODX Revolution 3.x;
  • PHP 8.2+;
  • MiniShop3;
  • VueTools ≥ 1.1.2-pl;
  • pdoTools.
Ссылки

🛒 msBundles на ModStore
📚 Документация msBundles
🚀 Быстрый старт
🖥️ Интерфейс менеджера
🛍️ Вывод на сайте и работа с корзиной

Буду рад обратной связи, предложениям и примерам использования msBundles в реальных проектах.
Иван Бочкарев
Иван Бочкарев
24 августа 2026, 19:43
modx.pro
76

Комментарии: 1

Артур Шевченко
24 августа 2026, 20:01
Как работает с контекстами, в каждом надо вручную создавать? При разборе комплекта системные события корзины срабатывают?
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    1