
Руководство по админке
Страница Подборки товаров хранит шаблоны (тип + набор ID) и позволяет массово скопировать их в связи ms3_product_sets для всех товаров категории. Точечные правки — через TV на карточке товара.
Экран и поля API: Подборки товаров (интерфейс). Пошаговые сценарии: Сценарии (flows).
Как открыть
- Компоненты → Подборки товаров
- URL:
?a=index&namespace=ms3productsets - Нужны VueTools и право MODX
view

Две вкладки
Страница разделена на вкладки Список подборок и Применение. Справочник типов — на первой вкладке, в боковой колонке.
Вкладка «Список подборок»
- Toolbar — описание, счётчик шаблонов, кнопка Новая подборка.
- Таблица — ID, название, тип (цветной tag), ID товаров, Изменить / Удалить. Пустой список — EmptyState с CTA.
- Типы подборок — свёрнутая панель справа. Tag типа и описание из лексикона.


Вкладка «Применение»
Выбор шаблона (Select), категории (TreeSelect, дерево без товаров), чекбокс Заменить существующие подборки этого типа, кнопки Применить и Отвязать.

При replace=true удаляются только связи с тем же template_name и type, что у выбранного шаблона. TV-связи и записи других шаблонов не затрагиваются.
Категория разворачивается рекурсивно до товаров (msProduct, глубина до 10). Ответ applied — число реально вставленных строк (INSERT IGNORE, без дублей).
Создание шаблона
- Новая подборка.
- Заполните поля:
| Поле | Назначение |
|---|---|
| Название | Имя для менеджеров. Попадает в template_name связей. |
| Тип подборки | Один из пяти типов шаблонов. |
| ID товаров | MultiSelect или строка через запятую. Минимум один ID. |
| Описание | Внутренний комментарий. |
| Порядок | Сортировка в списке админки. |
- Сохранить → connector
save_template.


Редактирование и удаление
- Изменить — те же поля, connector
save_templateсid. При переименовании шаблона обновляетсяtemplate_nameв уже применённых связях. - Удалить — ConfirmDialog, connector
delete_template. Удаляются шаблон и все связи с егоtemplate_nameиtype.


Применение и отвязка
Применить (apply_template):
- Собирает все
msProductв выбранной категории и подкатегориях. - Для каждого товара создаёт строки в
ms3_product_setsсtemplate_name= имя шаблона. - С
replace=trueсначала удаляет связи с тем жеtemplate_nameи type у товаров категории.
Отвязать (unbind_template):
- Удаляет связи с совпадающими type + template_name в выбранной ветке.
- TV и другие шаблоны не трогает.
TV на карточке товара
| TV | Тип |
|---|---|
ms3productsets_buy_together | buy_together |
ms3productsets_similar | similar |
ms3productsets_popcorn | popcorn |
ms3productsets_cart_suggestion | cart_suggestion |
ms3productsets_vip | vip |
При сохранении товара плагин ms3ProductSets SyncTV (OnDocFormSave):
- срабатывает только для ресурсов класса
msProduct; - при пустом TV удаляет записи с пустым
template_name(созданные из TV); - при заполненном TV перезаписывает связи типа без
template_name; - связи из шаблонов (
template_nameзадан) не трогает.
Типовый процесс
- Массово: шаблон → Применить к категории.
- Точечно: TV на одном товаре.
- Проверка:
ms3ProductSetsс тем жеtypeна витрине.
