BR 1.7.1: Пересмотр UX каталога
Корректировка к BR 1.7
Не меняет модель данных. Пересматривает как пользователь работает с каталогом на фронте — разделение ответственности между разделами “Товары”, “Категории” и “Версии”.
Контекст
BR 1.7 описывает двухуровневое версионирование (товары + каталог), но не разделяет чётко: где пользователь редактирует товары, где управляет составом каталога, и как эти действия связаны. Эта BR уточняет UX.
Ключевое разделение
Товар и Каталог — версионируются независимо.
- Товар — свои версии (v1, v2, v3). Редактирование товара создаёт новую версию товара. Делается в разделе “Товары” в любой момент.
- Каталог — набор ссылок на конкретные версии товаров + дерево категорий. Черновик каталога нужен только для изменения состава (добавить/убрать товар, переключить на другую версию товара, изменить категории).
Товар "Маргарита":
v1 (цена 500₽)
v2 (цена 550₽, описание обновлено) ← создано в разделе "Товары"
Каталог v2 (published): [Маргарита@v1, Капучино@v1] ← клиент видит v1 (500₽)
Каталог v3 (draft): [Маргарита@v2, Капучино@v1] ← после публикации клиент увидит v2 (550₽)
Клиент видит товар по версии из опубликованного каталога, не по последней версии товара.
Раздел “Товары” (/catalog/products)
Что видит пользователь
Список всех товаров (последняя версия каждого). Не привязан к конкретной версии каталога — это справочник всех товаров франшизы.
Карточка товара (/catalog/products/:id)
- Все поля товара (актуальная версия)
- Таб “Версии” — таблица всех версий этого товара:
| Версия | Дата | Что изменилось | Используется в |
|---|---|---|---|
| v2 | 03.04.2026 | Цена: 500₽ → 550₽ | Каталог v3 (draft) |
| v1 | 01.04.2026 | Создан | Каталог v2 (published) |
- Каждая версия показывает в каких каталогах используется
Создание и редактирование товара
- Создание (
/catalog/products/new) — создаёт товар v1. Товар не попадает автоматически ни в какой каталог. Чтобы добавить в каталог — нужно создать/открыть черновик каталога в разделе “Версии”. - Редактирование (
/catalog/products/:id/edit) — создаёт новую версию товара (v2, v3…). Старые каталоги продолжают ссылаться на старую версию. Чтобы обновить каталог — нужно в черновике переключить ссылку на новую версию.
Таб “Удалённые”
Без изменений — soft delete + восстановление.
Раздел “Категории” (/catalog/categories)
Категории per-version
Категории входят в снапшот каталога. Дерево категорий может отличаться между версиями каталога.
Что видит пользователь
- Если есть черновик каталога — дерево из черновика, editable. Баннер: “Черновик каталога v3. Изменения будут опубликованы вместе с каталогом.”
- Если нет черновика — дерево из published каталога, readonly. Баннер: “Опубликованный каталог v2. Для редактирования создайте черновик в разделе Версии.”
Inline CRUD
Только при наличии черновика:
- Добавить корневую / дочернюю категорию
- Переименовать
- Удалить (с проверками HAS_CHILDREN, HAS_PRODUCTS)
- Деактивировать / активировать (каскадная деактивация)
Раздел “Версии” (/catalog/versions)
Список версий
Таблица всех версий каталога:
| Версия | Статус | Дата публикации | Товаров | Категорий | Действия |
|---|---|---|---|---|---|
| v3 | Черновик | — | 52 | 12 | Опубликовать / Удалить |
| v2 | Опубликован | 01.04.2026 | 50 | 12 | — |
| v1 | Архив | 15.03.2026 | 45 | 10 | — |
Кнопки
- “Создать черновик” — видна только если нет draft. Создаёт черновик = копия текущего published (все ссылки на товары + дерево категорий копируются).
- “Удалить черновик” — видна только если есть draft. Модалка: “Удалить черновик v3? Все незопубликованные изменения будут потеряны.” Published не затрагивается.
- “Опубликовать” — у draft строки. Модалка: “Опубликовать каталог v3? Текущая опубликованная версия уйдёт в архив.”
Просмотр версии (/catalog/versions/:id)
Полное содержимое конкретной версии каталога (readonly):
- Дерево категорий этой версии
- Таблица товаров с их конкретными версиями внутри этого каталога
- Бейдж статуса (draft / published / archived)
Редактирование черновика (/catalog/versions/:id при draft)
При открытии draft-версии — не readonly, а editable:
- Управление составом: добавить товар (выбрать из справочника + выбрать версию товара)
- Убрать товар из каталога
- Переключить версию товара (Маргарита: v1 → v2)
- Дерево категорий — editable (или ссылка “Редактировать категории” → раздел Категории)
Формула: что видит клиент
Без изменений от BR 1.7:
Каталог (published версия, конкретные версии товаров + категории)
+ Прейскурант (дефолтный или per-ТТ)
− Стоп-листы (per-ТТ)
− Проверка складских остатков (per-ТТ)
= Финальное меню для клиента
Примеры сценариев
Сценарий: Франшиза изменила цену Маргариты
- Раздел “Товары” → открыл Маргариту → “Редактировать” → цена 500₽ → 550₽ → Сохранить
- Создалась Маргарита v2. Каталог v2 (published) по-прежнему ссылается на v1 (500₽).
- Клиент видит 500₽.
- Раздел “Версии” → “Создать черновик” → v3 (draft, копия v2)
- Внутри v3 → Маргарита → переключить v1 → v2
- “Опубликовать” → v3 published, v2 → archived
- Клиент видит 550₽.
Сценарий: Франшиза добавляет новый товар
- Раздел “Товары” → “Добавить товар” → “Латте” v1 (400₽)
- Товар создан в справочнике. В каталоге его нет.
- Раздел “Версии” → создать черновик (или открыть существующий)
- Внутри черновика → “Добавить товар” → выбрать “Латте” v1
- Опубликовать → клиент видит Латте.
Сценарий: Франшиза изменила структуру категорий
- Раздел “Категории” → баннер “Нет черновика. Для редактирования создайте в разделе Версии.”
- Раздел “Версии” → “Создать черновик” → v3 (draft)
- Раздел “Категории” → баннер “Черновик v3” → можно редактировать дерево
- Переименовал “Пицца” → “Итальянская кухня”, добавил подкатегорию
- Раздел “Версии” → “Опубликовать” v3
Ролевой доступ
Без изменений от BR 1.7:
| Роль | Товары | Категории | Версии |
|---|---|---|---|
| Франшиза | CRUD (создание версий товаров) | CRUD (в черновике) | Создать/удалить черновик, опубликовать |
| Франчайзи | Просмотр (published) | Просмотр (published) | Нет доступа |
| Менеджер | Просмотр (published) | Просмотр (published) | Нет доступа |
| Кассир | Нет доступа | Нет доступа | Нет доступа |
Что меняется относительно BR 1.7
| Аспект | BR 1.7 | BR 1.7.1 |
|---|---|---|
| Создание версии товара | Автоматически создаёт draft каталога | Не создаёт draft каталога. Товар версионируется независимо |
| Добавление товара в каталог | Не описано явно | Только внутри черновика каталога (раздел “Версии”) |
| Создание черновика каталога | Автоматически при изменении товара | Только вручную в разделе “Версии” |
| Категории при отсутствии черновика | Не описано | Readonly (published) |
| Карточка товара — версии | Не описано | Таб “Версии” с историей и привязкой к каталогам |