
- MODX 3
- PHP 8.1
- miniShop3


Подключение блоков рекомендаций (подборок товаров) к сайту с MiniShop3.
Имена сниппетов: ms3ProductSets, mspsLexiconScript.
Примеры на Fenom требуют pdoTools 3.x.
| Требование | Версия |
|---|---|
| MODX Revolution | 3.0+ |
| PHP | 8.1+ |
| MiniShop3 | установлен |
| pdoTools | 3.0.0+ |
| VueTools | установлен (страница админки «Подборки товаров») |
Откройте Компоненты → Подборки товаров и создайте первый шаблон. Сценарии: interface/flows.

Пакет доступен в каталоге modstore.pro.
В шаблоне (или общем head/footer) подключите сначала лексикон, затем CSS и JS.
{'mspsLexiconScript' | snippet}
<link rel="stylesheet" href="{'assets_url' | option}components/ms3productsets/css/productsets.css">
<script src="{'assets_url' | option}components/ms3productsets/js/productsets.js" defer></script>[[!mspsLexiconScript]]
<link rel="stylesheet" href="[[++assets_url]]components/ms3productsets/css/productsets.css">
<script src="[[++assets_url]]components/ms3productsets/js/productsets.js" defer></script>В шаблоне страницы товара (или в чанке карточки в списке) вызовите сниппет ms3ProductSets.
type type задаёт сценарий подборки: какие ручные связи читаются из ms3_product_sets и какая авто-логика включается, если связей нет. Общая схема: Типы подборок, раздел «Общие правила (для всех типов)».
type | Назначение |
|---|---|
buy_together | Блок «с этим товаром покупают». Авто: co-purchase по заказам, иначе категория. |
similar | Похожие товары из той же категории. |
popcorn | Компактные импульсные допродажи. Свой запасной вариант, если по категории пусто. |
cart_suggestion | Рекомендации в корзине или перед оформлением. Удобно с category_id. |
auto_sales | Подборка по статистике заказов. При нехватке данных уходит в логику similar. |
vip | Фиксированные промо-наборы из vip_set_*. Без set_id берётся vip_set_1. |
auto | Универсальный блок (главная, лендинг). Часто category_id и/или resource_id. |
Ниже пример с buy_together.
Другие параметры вызова:
resource_id: ID товара, для которого строится подборка. На странице товара это текущий ресурс.max_items: максимум позиций в блоке (диапазон 1…100).tpl: чанк одной строки товара. В поставке по умолчанию подходит tplSetItem.Если подборка пустая, сниппет по умолчанию возвращает пустую строку (hideIfEmpty=true). Обёртку с заголовком вешайте через условный вывод или placeholder. Пример с секцией и лексиконом: Интеграция на сайт. Детали по каждому type: Типы подборок.
{'ms3ProductSets' | snippet : [
'type' => 'buy_together',
'resource_id' => $_modx->resource.id,
'max_items' => 6,
'tpl' => 'tplSetItem'
]}[[!ms3ProductSets?
&type=`buy_together`
&resource_id=`[[*id]]`
&max_items=`6`
&tpl=`tplSetItem`
]]hideIfEmpty=true).ms3productsets.vip_set_1 (пример: 12,34,56).{'ms3ProductSets' | snippet : [
'type' => 'vip',
'set_id' => 1,
'tpl' => 'tplSetVIP'
]}[[!ms3ProductSets?
&type=`vip`
&set_id=`1`
&tpl=`tplSetVIP`
]]