Skip to content
  1. Компоненты
  2. msCategoryOptions

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_,-~]/

Пример описания опции Сезон

yaml
caption: Сезон
unit: ''
description: 'Укажите сезонность товара'
key: season
type: option
required: false
collection: false
option:
  - Весна
  - Демисезон
  - Еврозима
  - Зима
  - Лето
  - 'На любой сезон'
  - Осень

Виды опций

  • text - текстовая
  • int - числовая целое значение
  • float - числовая дробное значение
  • bool - булевая
  • option - опциональная

Сниппет для вывода опций msCategoryOptions

Параметры

ПараметрПо умолчаниюОписание
tpltpl.msProductOptionsЧанк оформления
productИдентификатор товара. Если не указан, используется id текущего документа.
onlyOptionsВыводить только этот список опций, указанный через запятую.
ignoreOptionsОпции, которые не нужно выводить в списке, через запятую.
sortOptionsПорядок опций для вывода, указанный через запятую.
limitЛимит опций.

Оформление

Сниппет рассчитывает на работу с чанком Fenom и передаёт в него всего одну переменную options с массивом вариантов опций. Вы можете увидеть все доступные плейсхолдеры просто указав пустой чанк:

modx
<pre>
  [[msCategoryOptions?
    &options=`type,features`
    &tpl=``
  ]]
</pre>
Вывод
php
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 - опций категории.

Дерево категорий

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