
ms3Variants
Компонент для управления вариантами товаров в MiniShop3. Позволяет создавать товары с различными комбинациями опций (цвет, размер и др.), каждая из которых имеет собственную цену, остатки и изображение.
Возможности
Управление вариантами
- Неограниченное количество вариантов для каждого товара
- Любые комбинации опций — цвет + размер, объём + вес, материал + цвет и т.д.
- Индивидуальные характеристики каждого варианта:
- Цена и старая цена (для скидок)
- Остатки на складе
- Артикул (SKU)
- Вес
- Изображение из галереи товара
Интеграция с MiniShop3
- Подмена цены в корзине — при добавлении варианта используется его цена
- Контроль остатков — нельзя добавить больше, чем есть на складе
- Списание остатков — автоматическое уменьшение при достижении заданного статуса заказа
- Синхронизация опций — значения опций вариантов автоматически добавляются в msProductData для фильтрации
Фронтенд
- SSR-рендеринг вариантов в каталоге через msProducts
- Переключение изображений при выборе варианта (каталог и страница товара)
- Интеграция с галереями — события для Splide, GLightbox и других
- JavaScript API для кастомизации
Админка
- Vue-интерфейс на вкладке товара
- Выбор варианта при редактировании товаров в заказе
- Быстрое создание вариантов с автогенерацией SKU
Системные требования
| Требование | Версия |
|---|---|
| MODX Revolution | 3.0.0+ |
| PHP | 8.1+ |
| MiniShop3 | 1.0.0+ |
| VueTools | 1.0.0+ |
| pdoTools | 3.0.0+ |
Установка
- Перейдите в Extras → Installer
- Найдите ms3Variants в списке доступных пакетов
- Нажмите Download и затем Install
После установки:
- Откройте любой товар MiniShop3
- Перейдите на вкладку Варианты
- Создайте варианты с нужными опциями
Быстрый старт
1. Создание вариантов
- Откройте товар в админке MiniShop3
- Перейдите на вкладку Варианты
- Нажмите Создать вариант
- Заполните опции (цвет, размер и т.д.)
- Укажите цену и остатки
- Выберите изображение из галереи товара
- Сохраните
2. Вывод на странице товара
fenom
{'msProductVariants' | snippet}3. Вывод в каталоге
fenom
{'msProducts' | snippet : [
'parents' => 0,
'usePackages' => 'ms3Variants',
'includeThumbs' => 'small',
'tpl' => 'ms3_products_row_variants'
]}Структура данных
Таблица ms3_product_variants
| Поле | Тип | Описание |
|---|---|---|
| id | int | ID варианта |
| product_id | int | ID товара |
| sku | varchar(100) | Артикул варианта |
| price | decimal(12,2) | Цена |
| old_price | decimal(12,2) | Старая цена |
| count | int | Остатки |
| weight | decimal(10,3) | Вес |
| file_id | int | ID изображения |
| active | tinyint | Активность |
| position | int | Позиция сортировки |
Таблица ms3_variant_options
| Поле | Тип | Описание |
|---|---|---|
| id | int | ID записи |
| variant_id | int | ID варианта |
| key | varchar(50) | Ключ опции (color, size...) |
| value | varchar(255) | Значение опции |
