
msCategoryOptions 
Компонент реализует функционал дополнительных опций в зависимости от категории товара.
Попробовать пакет перед покупкой можно на modhost.pro.
Быстрый старт 
Для работы вам нужен MODX не ниже 2.3 и PHP не ниже 5.4.
Особенности 
- работа с miniShop2
 - готовый список категорий, опций и их значений
 
Установка 
- Подключите наш репозиторий
 - Установите pdoTools - это библиотека для быстрой работы с БД и оформлением, необходима для многих компонентов
 - Установите miniShop2 - это магазин на основе которого реализован функционал заказов и оплаты
 - Установите msCategoryOptions и активируйте функционал для нужных товаров - настройка 
working_templates 
Попробовать пакет перед покупкой можно на modhost.pro, на нём эти дополнения можно выбрать прямо при создании сайта.
Описание 
Компонент msCategoryOptions позволяет расширять опции товара в зависимости от категории.
Нужно указать категорию товара, опции соответствующие категории будут доступны на вкладке ресурса.
К примеру выбрали категорию товара Телевизор, на вкладке Опции категории будут подгружены опции данной категории с описанием и возможными значениями.

Все доступные категории и их опции можно посмотреть в репозитории. На текущий момент доступны следующие категории товаров:
- Автотовары
 - Антиквариат
 - Аптека
 - Бытовая техника
 - Галантерея и украшения
 - Дом
 - Детям и мамам
 - Канцелярия
 - Красота и здоровье
 - Обувь
 - Одежда
 - Продукты питания
 - Продукт медиа
 - Печатные книги
 - Ремонт и строительство
 - Спорт и отдых
 - Зоотовары
 - Хобби и творчество
 - Электроника
 - 18+
 
Структура опции 
caption- заголовокunit- единица измеренияdescription- краткое описаниеtype- типrequired- флаг указывающий что опция является обязательнойcollection- флаг указывающий что опция является набором значенийoption- массив предустановленных значений опции
Все файлы опций ведутся в формате YAML, имена допускают символы /[^a-zA-Z-а-яА-Я-0-9_,-~]/
Пример описания опции Сезон
caption: Сезон
unit: ''
description: 'Укажите сезонность товара'
key: season
type: option
required: false
collection: false
option:
  - Весна
  - Демисезон
  - Еврозима
  - Зима
  - Лето
  - 'На любой сезон'
  - ОсеньВиды опций 
text- текстоваяint- числовая целое значениеfloat- числовая дробное значениеbool- булеваяoption- опциональная
Сниппет для вывода опций msCategoryOptions 
Параметры 
| Параметр | По умолчанию | Описание | 
|---|---|---|
| tpl | tpl.msProductOptions | Чанк оформления | 
| product | Идентификатор товара. Если не указан, используется id текущего документа. | |
| onlyOptions | Выводить только этот список опций, указанный через запятую. | |
| ignoreOptions | Опции, которые не нужно выводить в списке, через запятую. | |
| sortOptions | Порядок опций для вывода, указанный через запятую. | |
| limit | Лимит опций. | 
Оформление 
Сниппет рассчитывает на работу с чанком Fenom и передаёт в него всего одну переменную options с массивом вариантов опций. Вы можете увидеть все доступные плейсхолдеры просто указав пустой чанк:
<pre>
  [[msCategoryOptions?
    &options=`type,features`
    &tpl=``
  ]]
</pre>Вывод
Array
(
  [options] => Array
    (
      [type] => Array
        (
          [path] => Электроника/ТВ/Телевизор/Тип.yml
          [depth] => 3
          [title] => Тип
          [import] => /Электроника/ТВ/Тип.yml
          [caption] => Тип
          [unit] =>
          [description] => Выберите из списка наиболее подходящий тип товара. Определить его можно по вопросу "Что это?".
          [key] => type
          [type] => option
          [required] => 1
          [collection] =>
          [option] => Array
            (
              [0] => Автомобильный телевизор
              [1] => Плазменная панель
              [2] => Портативный телевизор
              [3] => Телевизор
            )
          [value] => Array
            (
              [0] => Телевизор
            )
        )
      [features] => Array
        (
          [path] => Электроника/ТВ/Телевизор/Особенности.yml
          [depth] => 3
          [title] => Особенности
          [import] => /Электроника/ТВ/Особенности.yml
          [caption] => Особенности
          [unit] =>
          [description] => Выбираются особенности устройства
          [key] => features
          [type] => option
          [required] =>
          [collection] => 1
          [option] => Array
            (
              [0] => Android TV
              [1] => HDR
              [2] => Smart TV
              [3] => WiFi модуль
              [4] => Изогнутый экран
              [5] => Поддержка 3D
              [6] => Поддержка iTunes
              [7] => Управление жестами
            )
          [value] => Array
            (
              [0] => Android TV
              [1] => WiFi модуль
              [2] => Изогнутый экран
            )
        )
    )
)Совместимость 
Опции хранятся в родной таблице товаров msProductOption c префиксом co_ учитывайте это при работе с другими дополнениями.
Дерево категорий 
Дерево категорий представлено в виде архива каталога папок - категорий и файлов yml - опций категории.

Вы можете разархивировать его, внести нужные изменения и загрузить обратно.
