new

ms3ProductSets

Динамические подборки товаров для MiniShop3
Автор дополнения
Ivan Bochkarev
Пакетов
9
Закачек
63
Обычно отвечает в течение 2 часов
Автор дополнения
Пакетов
9
Закачек
63
Обычно отвечает в течение 2 часов
Версия 1.0.0-pl
Дата выпуска 03.04.2026
Загрузки 0
Просмотры 150
Внимание, этот компонент требует PHP 8.1 или выше!
Внимание, этот компонент требует MODX 3 или выше.
📦 ms3ProductSets — динамические подборки товаров для MODX Revolution 3 и MiniShop3

На карточке товара, в корзине и на главной выводятся блоки вроде «С этим покупают», «Похожие», дополнение к корзине, VIP-наборы и др. Сначала используются ручные связи и шаблоны, при их отсутствии — авто-рекомендации по категории и статистике заказов. Рост среднего чека и кросс-продаж без ручной привязки каждого SKU.

Это дополнение для тех, кому нужно:
  • единый сниппет ms3ProductSets с типами: buy_together, similar, cart_suggestion, auto_sales, popcorn, vip и др.
  • хранение связей в БД (ms3_product_sets) и именованных шаблонов (ms3_product_set_templates) без ручного SQL
  • массовое применение шаблона к категории и отвязка шаблона от категории из менеджера MODX
  • точечная настройка через TV на карточке товара (VIP, акции) с синхронизацией в таблицу
  • скрытие пустого блока (hideIfEmpty), кеширование по настройке, Fenom-чанки и BEM-префикс msps





✨ Ключевые возможности
  • Вывод через MiniShop3 (msProducts) и pdoTools; лексикон mspsLexiconScript, стили productsets.css, скрипт productsets.js
  • Коннектор: get_set (HTML блока), add_to_cart; для админки — шаблоны, дерево ресурсов, сохранение и применение к категории
  • Кнопка «Добавить весь набор» в обёртке tplSetWrapper, уведомления на фронте через iziToast (пути настраиваются, по умолчанию — из поставки MiniShop3)
  • Страница «Компоненты → Подборки товаров»: Vue 3 + PrimeVue 4
  • Плагины: ms3ProductSets SyncTV (OnDocFormSave), ms3ProductSets Cleanup (OnResourceDelete)
  • Lexicon RU / EN / UK, CSS-переменные для оформления блока, mobile-first вёрстка

🛒 MiniShop3
  • Интеграция с типичной витриной: свои чанки товара, без навязывания разметки магазина
  • Системные настройки: лимит позиций, TTL кеша, авто-рекомендации, VIP-набор, пути к iziToast

🚀 Быстрый старт
  1. Установите пакет через Управление → Установщик (или загрузку транспортного пакета).
  2. Убедитесь, что установлены MiniShop3, pdoTools 3.x и для админки подборок — VueTools.
  3. На сайте подключите [[!mspsLexiconScript]], CSS и JS из assets/components/ms3productsets/ (см. документацию по интеграции).
  4. Вызовите [[!ms3ProductSets? &type=`buy_together` &tpl=`tplSetItem`]] (или другой тип) на шаблоне товара / корзины.
  5. Шаблоны подборок и применение к категории настройте в менеджере: Компоненты → Подборки товаров.

📋 Требования
  • MODX Revolution 3.0+
  • PHP 8.1+
  • MiniShop3
  • pdoTools 3.x (рекомендуется для вывода и Fenom)
  • VueTools — для страницы админки «Подборки товаров»
  • iziToast — для тостов на фронте при добавлении в корзину

Changelog - ms3ProductSets

Format: Keep a Changelog Versioning: Semantic Versioning

[1.0.0] - 2026-03-04

Added

  • addAllToCart: полноценная реализация — добавление всего набора в корзину. Ищет [data-product-id] и [data-add-to-cart] в контейнере, последовательно вызывает addToCart, toast и событие msps:cart:update с product_ids.
  • tplSetWrapper: кнопка «Добавить весь набор» при count > 0.
  • Таблицы и логика: ms3_product_sets, ms3_product_set_templates. Сниппет ms3ProductSets: типы buy_together, similar, popcorn, cart_suggestion, auto_sales, vip, auto. Сначала ручные данные из таблицы, при отсутствии — авто-рекомендации по категории и заказам.
  • Коннектор: get_set (HTML подборки), add_to_cart; для админки — get_templates, save_template, delete_template, apply_template, unbind_template, get_resource_tree, get_resources.
  • Страница админки «Подборки товаров»: список шаблонов (DataTable с сортировкой и пагинацией 10/25/50/100), создание/редактирование в модальном окне (Dialog), удаление с подтверждением. Блок «Применить подборку к категории»: выбор шаблона и категории (TreeSelect), чекбокс «Заменить существующие», кнопки «Применить» и «Отвязать от категории». В форме шаблона — MultiSelect для выбора товаров из списка (без ручного ввода ID).
  • Цветные бейджи типов в таблице подборок и в блоке «Типы подборок». В селекте «Подборка» — отображается название типа из лексикона вместо кода.
  • TV-поля на карточке товара (подборки по типам). Плагин ms3ProductSets SyncTV (OnDocFormSave) — синхронизация TV в ms3_product_sets при сохранении товара.
  • Плагин ms3ProductSets Cleanup (OnResourceDelete) — при удалении ресурса очистка связей в ms3_product_sets (product_id / related_product_id).
  • Фронт: сниппет mspsLexiconScript, чанки tplSetItem, tplSetEmpty, tplSetWrapper, tplSetVIP, tplPopcorn. CSS (BEM, переменные), JS (render, toast, addToCart). Системные настройки: max_items, cache_lifetime, auto_recommendation, vip_set_1.
  • Лексиконы ru, en, uk (namespace ms3productsets).
  • Системные настройки ms3productsets.izitoast_include, ms3productsets.izitoast_css, ms3productsets.izitoast_js — локальные пути к iziToast (по умолчанию файлы MiniShop3). Копия библиотеки в assets/components/ms3productsets/vendor/izitoast/.
  • Хелпер msps_resolve_public_asset_url() для разрешения URL относительно assets_url.

Changed

  • cache_lifetime: при значении > 0 результат msps_get_products_by_type кешируется (ключ по type + params).
  • auto_recommendation: при 0 при пустой ручной подборке возвращается [], авто-логика не вызывается.
  • Админка: Vue 3 + PrimeVue 4 (VueTools), сборка Vite из корня (npm run build:mgr). Стили кнопок — из коробки PrimeVue. Форма «Новая подборка» — в модальном окне (Dialog), закрытие по клику вне окна (dismissableMask). В диалоге заданы CSS-переменные для отступов и колоночной раскладки (диалог рендерится в body).

Requirements

  • MODX Revolution 3.0+
  • PHP 8.1+
  • MiniShop3, pdoTools 3.x, VueTools (для страницы админки)

Последние обсуждения в сообществе MODX.pro