BR 1.17 — Admin Web
Статус: not_started
Задачи
1. Типы
-
shared/types/catalog.ts— добавитьsku_1c?: stringвModifierOption/ModifierOptionRequest
2. Каталог — Модификаторы (страница группы)
-
ModifierViewPage.tsx— колонка «Код 1С» в таблице опций, показывать только если у группы есть structural-привязка хотя бы к одному товару -
ModifierEditPage.tsx— поле «Код 1С» в inline-таблице опций + tooltip-подсказка -
ModifierCreatePage.tsx— то же что edit - Клиентская валидация дублей
sku_1cв группе — подсветка обеих дублирующихся строк
3. Конструктор товара — Зависимый модификатор
-
CreateDependentModifierModal.tsx— поле «Код 1С» обязательное для каждой опции - Frontend-валидация: пустое поле → красная обводка ячейки + текст «Заполните Код 1С»
- Кнопка «Сохранить» дизейблится пока есть невалидные поля
4. Каталог — Товар (карточка)
-
ProductViewPage.tsx— новая секция «Связь с 1С» (между «Фискальные атрибуты» и «Доступность по точкам») - Бейдж со статусом:
skuначинается с1c:→ зелёный «1С: {КОД}»skuпуст + structural-мод + все опции с sku_1c → зелёный «Виртуальный — {N} опций»skuпуст + structural-мод + часть опций без sku_1c → жёлтый «{X} из {N} без 1С-кода»- Иначе → серый «Не привязан к 1С»
- Логика расчёта статуса на клиенте (только UI, без нового API-поля)
5. Обработка ошибок
-
STRUCTURAL_OPTION_MISSING_SKU_1C→ toast «Не все опции имеют Код 1С — заполните перед привязкой как structural» + красные обводки пустых полей в таблице опций -
DUPLICATE_SKU_1C_IN_GROUP→ toast «Код 1С должен быть уникальным в рамках группы» + подсветка дубликатов
6. Тесты
- Smoke: создать structural-мод с заполненными sku_1c → успех, в карточке товара бейдж «Виртуальный — 3 опции»
- Smoke: попытка PATCH опции с пустым sku_1c в structural-группе → toast STRUCTURAL_OPTION_MISSING_SKU_1C
- Smoke: ввод одинаковых sku_1c у двух опций → frontend подсветка + при сохранении 422 DUPLICATE_SKU_1C_IN_GROUP
Зависимости
- Catalog Service (миграция + новое поле) — должен быть готов
- Admin BFF — должен пропускать поле