
- MODX 3
- PHP 8.1
- miniShop3


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

При установке и обновлении уходит POST JSON на https://metrics.modx.pro/ с таймаутом 2 с. В теле есть версии пакета, PHP, MODX, pdoTools и MiniShop3, тип базы, ОС, веб-сервер, число контекстов и locale. Домена в наборе нет. Ключа, который выключает отправку, нет.
В шаблоне (или общем 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. |
Другие параметры вызова:
resource_id: ID товара, для которого строится подборка. На странице товара это текущий ресурс.max_items: максимум позиций в блоке (диапазон 1…100).tpl: чанк одной строки товара. В поставке по умолчанию подходит tplSetItem.Если подборка пустая, сниппет по умолчанию возвращает пустую строку (hideIfEmpty=true). Обёртку с заголовком вешайте через условный вывод или placeholder. Пример с секцией и лексиконом: Интеграция на сайт.
{'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`
]]