Skip to content
ms3ProductSets
ms3ProductSets
Динамические подборки товаров для MiniShop3
  1. Компоненты
  2. ms3ProductSets
  3. Для разработчика

API и интерфейсы

Сниппет ms3ProductSets

Минимальный рабочий вызов

modx
[[!ms3ProductSets?
  &type=`buy_together`
  &resource_id=`[[*id]]`
]]
fenom
{'!ms3ProductSets' | snippet : [
  'type' => 'buy_together',
  'resource_id' => $_modx->resource.id
]}

Основные параметры

ПараметрПо умолчаниюОписание
typebuy_togetherТип подборки
resource_id / productIdтекущий ресурсБазовый товар
max_itemsms3productsets.max_itemsЛимит 1..100
category_id0Категория для авто-режима
set_id0Номер VIP-набора (для type=vip). При 0 или не заданном используется 1 — настройка ms3productsets.vip_set_1
tpltplSetItemЧанк карточки
emptyTpltplSetEmptyЧанк пустого результата
hideIfEmptytruetrue → пустая строка, false → вывод emptyTpl. Корректно обрабатываются строки "false", "0", "true", "1"
exclude_ids''Исключаемые ID (строка или массив)
tplWrapper''Обёртка (output, type, count)
sortby''Поле сортировки вывода (проброс в msProducts). Не задано — сохраняется порядок из подборки
sortdirASCНаправление сортировки (учитывается только при заданном sortby)
showUnpublishedfalseПроброс в msProducts
showHiddenfalseПроброс в msProducts
showLogfalseПроброс в msProducts (отладочный лог в контексте менеджера)
tvPrefix''Префикс для плейсхолдеров TV (проброс в msProducts)
includeTVs''Список TV через запятую (проброс в msProducts)
includeThumbs''Список размеров превью через запятую (проброс в msProducts)
returndatadata, ids, json
toPlaceholder''Запись в placeholder

На результат сниппета также влияют системные настройки ms3productsets.cache_lifetime (кеш подборок) и ms3productsets.auto_recommendation (включение авто при пустой ручной подборке). То же при AJAX action=get_set — коннектор вызывает сниппет. Подробнее: Системные настройки.

Все типы и их fallback-логика: Типы подборок.

Сниппет mspsLexiconScript

Экспортирует:

  • window.mspsLexicon
  • window.mspsConfig (maxItems, lang)

Подключать перед productsets.js.

Коннектор assets/components/ms3productsets/connector.php

Front (web)

actionМетодПараметрыОтвет
get_setPOSTtype, resource_id, category_id, set_id, max_items, tpl, emptyTpl, hideIfEmptyHTML
add_to_cartPOSTproduct_id, countJSON {success,message}

Manager (mgr, авторизация обязательна)

actionНазначениеОсновные параметры
get_templatesСписок шаблонов подборок
save_templateСоздать/обновить шаблонid, name, type, related_product_ids, description, sortorder
delete_templateУдалить шаблонid
apply_templateПрименить шаблон к категориям/товарамtemplate_id, parent_id или parent_ids[] (несколько категорий), product_ids (опционально — к конкретным товарам), replace
unbind_templateОтвязать шаблон от категорииtemplate_id, parent_id или parent_ids[]
get_resource_treeДерево категорий (без товаров)parent_id, context_key
get_resourcesСписок товаров для пикераparent_id, template_id, query, limit

JS API (window.ms3ProductSets)

МетодНазначение
render(selector, options)Рендер блока через action=get_set
addToCart(productId, count)Добавление товара в корзину через action=add_to_cart
addAllToCart(buttonOrContainer)Добавление всего набора в корзину. Принимает DOM-элемент (кнопку с data-add-set или контейнер) либо CSS-селектор. Ищет в контейнере [data-product-id] и [data-add-to-cart], последовательно вызывает addToCart для каждого ID, затем toast и событие msps:cart:update.
toast(message)Показ frontend-уведомления

События после успешного добавления:

  • addToCart: msps:cart:update с detail: { product_id, count }
  • addAllToCart: msps:cart:update с detail: { product_ids }