BR 1.18 — Полная вкладка 1С + переработка UI structural-опций
Контекст
Доработка BR 1.17. Текущий UI (мини-секция «Связь с 1С» на карточке товара + inline-таблица опций) не подходит для полноценной работы с интеграцией 1С:
- Бухгалтеру нужно отдельное название для выгрузки в 1С — может отличаться от названия в каталоге (один товар в каталоге = одно название; в 1С — другое, под номенклатурой бухучёта).
- Опция structural-модификатора сейчас редактируется только в inline-строке (имя + код 1С + 5 числовых полей). Это «суб-товар» по смыслу, и UX должен быть похож на карточку обычного товара.
Изменения
1. БД (миграция 039)
Добавить поле name_1c VARCHAR(255) в две таблицы:
products— название товара при выгрузке в 1С (NULL → fallback наname)modifier_options— то же для опции structural
Поле опциональное, без индексов, без валидации.
2. Backend (catalog-service)
- Entity
Product,ModifierOption— полеname1c - DTO Request/Response (товары, модификаторы) —
name_1c(snake_case JSON) - Kafka
catalog.modifier_group.upserted+catalog.product.upserted—name_1cв payload (для будущей BR по выгрузке чеков)
3. Frontend (admin-web)
3a. Карточка товара — новая вкладка «1С»
Текущая мини-секция «Связь с 1С» (бейдж) удаляется. Вместо неё — отдельный таб «1С» в шапке (между «Информация» и «Техкарта»). На табе:
- Статус привязки (бейдж как раньше: Прямая / Виртуальный / Виртуальный неполный / Не привязан)
- Название для 1С (
name_1c) — input, placeholder = текущееname+ подсказка «Если не указано — берётся название из каталога» - Код 1С (
sku_1cтовара) — read-only показ префикса1c:изsku, если есть (полноценное отдельное полеproducts.sku_1c— будущая BR при необходимости) - Для виртуальных (есть structural-мод) — мини-таблица опций:
название / название 1С / код 1С(read-only, открыть детали можно через карточку модификатора).
3b. Опция structural-модификатора — drawer/модалка с полной карточкой
В ModifierViewPage (страница группы модификаторов): клик по строке опции открывает drawer справа с полной карточкой опции. Поля:
- Название (
name) - Название для 1С (
name_1c) — input с placeholder - Код 1С (
sku_1c) — input, обязателен если группа structural - min/max/default amount
- Free quantity
- is_active
- Кнопка «Сохранить»/«Отмена»
В CreateDependentModifierModal (модалка создания зависимого мода) — добавить поле «Название 1С» к каждой опции рядом с «Кодом 1С».
4. Не входит
- Полноценный
products.sku_1cотдельным полем (текущая логика через префикс1c:вskuостаётся) - Сама выгрузка чеков в 1С — отдельная будущая BR (приоритетный список бухгалтера Елены)
- Цена опции (
PriceListItem) в drawer — редактируется на отдельной странице - Drag-and-drop / сортировка опций в drawer
Сервисы
| Сервис | Что делается |
|---|---|
| Catalog Service | Миграция 039, поле name_1c в product + modifier_option |
| Admin BFF | Proxy (passthrough body) |
| Admin Web | Вкладка «1С» на товаре + drawer для опции |
Ссылки
- Родитель: BR 1.17
- Спека модификаторов: Модификаторы
- Интеграция: 1С Общепит