
- MODX 3
- PHP 8.2
- miniShop3
- Vue 3


Короткие сценарии для менеджера и витрины. Если пакет ещё не ставили, начните с быстрого старта.
| Flow | Сценарий |
|---|---|
| A | Назначить HEX значению опции |
| B | Pattern вместо сплошного цвета |
| C | Найти unset в словаре и назначить |
| D | Добавить цвет в RAL |
| E | Select на карточке товара |
| F | Корзина через byOptions |
| G | Фильтр каталога mFilter |
| H | Сетка карточек каталога |
| I | Цвета вариантов в каталоге (ms3variants) |
color → сохраните.

В словаре появляется активная запись. Другие товары с тем же option_key + value показывают тот же свотч. На Свойства товара у назначенных значений в чипах появляется квадрат цвета:

При переходе в режим Паттерн форма удаляет прежний RAL из сохраняемой записи. На витрине чанк рисует background-image. Select использует data-pattern.



Поиск по значению:



ms3optionscolor_frontend_css включён (или подключите CSS вручную).js/web/select.js.tplMs3OptionsColorSelect.<script src="{'assets_url' | option}components/ms3optionscolor/js/web/select.js"></script>
{$_modx->getChunk('tplMs3OptionsColorSelect', [
'product' => $_modx->resource.id,
'option_key' => 'color',
'caption' => 'Цвет',
'native' => 1
])}<script src="[[++assets_url]]components/ms3optionscolor/js/web/select.js"></script>
[[$tplMs3OptionsColorSelect?
&product=`[[*id]]`
&option_key=`color`
&caption=`Цвет`
&native=`1`
]]

Значение уходит в options[color] вместе с формой miniShop3.
В чанке строки корзины значения уже есть в $product.options. Не читайте опции из БД повторно:
{set $colors = $_modx->runSnippet('!ms3OptionsColor', [
'product' => $product.id,
'byOptions' => json_encode($product.options),
'return' => 'data'
])}[[!ms3OptionsColor?
&product=`[[+id]]`
&byOptions=`{"color":["Синий","Чёрный"]}`
&return=`data`
]]Готовый пример-чанк: tplMs3OptionsColorCart. Подробности: Вывод на сайте.

В JSON набора фильтров:
{
"color": {
"type": "ms3oc",
"source": "option",
"field": "color",
"label": "Цвет",
"tpl": "tplMFilterMs3OptionsColor"
}
}Встроенный тип colors не меняется. Для свотчей из словаря используйте ms3oc. Подробнее: mFilter.

На листинге вызовите сниппет с product = ID товара строки:
{'!ms3OptionsColor' | snippet : [
'product' => $id,
'options' => 'color',
'tpl' => 'tplMs3OptionsColor',
'limit' => 6
]}[[!ms3OptionsColor?
&product=`[[+id]]`
&options=`color`
&tpl=`tplMs3OptionsColor`
&limit=`6`
]]

В msProducts задайте usePackages=ms3Variants. У вариантов в каталоге появятся цвета из словаря. Подробности: ms3variants.
