Когда нужны варианты

  • Одежда с размерами S/M/L
  • Один товар в 5 цветах
  • Разная цена за 100г / 250г / 500г

Как работает

У товара есть базовые поля (название, описание, фото) и список вариантов. Каждый вариант:

  • sku — уникальный артикул (PLT-M-BLACK)
  • attributes — JSONB: {"Размер": "M", "Цвет": "чёрный"}
  • price — можно отличаться от базовой (или NULL = как у товара)
  • stock — остаток
  • reserved_stock — забронировано
  • barcode — опционально
  • is_active — активность

UI в редакторе

Секция «Варианты» — таблица, + добавляет, удаляет. Inline-редактирование цены и остатка. Атрибуты — свободные ключ-значения.

UI у покупателя

Кнопки выбора размера, квадраты выбора цвета. Недоступные варианты (stock=0) зачёркнуты. «Выберите размер» дизейблит кнопку «Купить» пока не выбрано.

МойСклад

  • Варианты синхронизируются по article (sku)
  • Остаток каждого варианта — отдельный в МС
  • Изменение остатка в МС → webhook → обновление в Витрине

Ограничения

  • Максимум ~50 вариантов на товар (технически)
  • Атрибуты — строковые; числовые (размер=38) хранятся как строки