Skip to content
ms3Variants
ms3Variants
Компонент вариантов товаров для MiniShop3
  • MODX 3
  • PHP 8.2
  • miniShop3
  • Vue 3
  1. Компоненты
  2. ms3Variants

ms3Variants ​

Варианты товаров для MiniShop3: у одного товара несколько вариантов с разными опциями (цвет, размер и др.), у каждого — своя цена и старая цена, остаток, артикул, вес и изображение из галереи товара.

Возможности ​

Варианты:

  • число вариантов не ограничено;
  • опции варианта — любые ключи стандартных опций MiniShop3.

Корзина и заказ:

  • в корзину попадает цена варианта;
  • при включённом контроле остатков нельзя добавить больше, чем есть, — настройки;
  • остатки списываются в заданном статусе заказа — настройки;
  • значения опций вариантов добавляются в стандартные опции MiniShop3 товара, а color, size, tags — ещё и в одноимённые поля товара. Это происходит при сохранении варианта; при изменении и удалении варианта старые значения из товара не убираются.

Фронтенд:

  • список вариантов на странице товара со сменой цены, артикула и изображения — Страница товара;
  • варианты в карточках каталога через msProducts — Каталог товаров;
  • события JavaScript для своих галерей и обработчиков, готовые адаптеры для Splide и GLightbox.

Админка:

Системные требования ​

ТребованиеВерсия
MODX Revolution3.0.3+
PHP8.2+
MiniShop31.4.0+
pdoTools3.0.0+ — без него сниппет msProductVariants не работает
VueToolsлюбая версия, нужен для вкладки «Варианты» в админке

PHP 8.2

Установщик пакета пропускает PHP 8.1, но библиотеки компонента требуют PHP 8.2. Не устанавливайте ms3Variants на PHP 8.1.

Установка ​

  1. Перейдите в Пакеты → Установщик.
  2. Найдите ms3Variants, загрузите и установите.

Пакет создаёт:

  • таблицы вариантов;
  • сниппет msProductVariants;
  • чанки ms3_variants, ms3_variants_row, ms3_products_row_variants;
  • плагин ms3Variants — включён сразу, работает с событиями корзины, заказа, каталога и админки MiniShop3;
  • системные настройки.

Пример шаблона страницы товара и чанк галереи на Splide при установке не создаются: они лежат файлами в core/components/ms3variants/elements/.

Быстрый старт ​

1. Создайте варианты ​

Откройте сохранённый товар, перейдите на вкладку Варианты, нажмите Создать вариант, добавьте опции, укажите цену и остаток, сохраните. Подробно — Вкладка вариантов в товаре.

2. Выведите варианты на странице товара ​

fenom
{'!msProductVariants' | snippet}

Вызов должен быть некэшируемым — почему, см. Сниппеты. Список вариантов показывает цену каждого варианта сам. Чтобы при выборе варианта менялись цена и артикул в шаблоне страницы, добавьте им атрибуты data-ms3v-* — Страница товара.

3. Выведите варианты в каталоге ​

fenom
{'msProducts' | snippet : [
    'parents' => 0,
    'usePackages' => 'ms3Variants',
    'tpl' => 'ms3_products_row_variants'
]}

Из каталога в корзину всегда попадает первый вариант, пока модуль MiniShop3 ProductCardUI.js не заменён модулем ms3Variants (замена видна в системной настройке ms3_frontend_assets). Как заменить и что сделать перед удалением пакета — Каталог товаров.

Структура данных ​

Таблица ms3_product_variants ​

ПолеТипОписание
idintID варианта
product_idintID товара
skuvarchar(100)Артикул варианта
pricedecimal(12,2)Цена
old_pricedecimal(12,2)Старая цена
countintОстаток
weightdecimal(10,3)Вес в единицах MiniShop3
file_idintID изображения из галереи товара
activetinyintАктивность: 1 — да, 0 — нет
positionintПозиция сортировки
created_at, updated_atdatetimeДаты создания и изменения

Таблица ms3_variant_options ​

ПолеТипОписание
idintID записи
variant_idintID варианта. Пара variant_id + option_key уникальна; опции удаляются вместе с вариантом
option_keyvarchar(100)Ключ опции (color, size…)
option_valuevarchar(255)Значение опции