food-market/src/food-market.pos.core
nns 5173eaa07c feat(catalog): штрихкоды товара — добавление + весовые этикетки
- POST /api/catalog/products/{id}/barcodes {code, kind}: добавить штрихкод к
  товару, уникальность в организации, 409 «штрихкод уже у товара X» (+название),
  идемпотентно при повторе тому же товару, автоопределение типа по длине.
- Весовые этикетки (внутримагазинные EAN-13, как в МойСкладе): общий парсер
  food-market.shared/Barcodes/WeightedBarcode (настраиваемые префиксы веса/цены,
  длина PLU); касса pos.core делегирует туда. Настройки организации
  (WeightBarcode*: enabled/префиксы/длина кода) + миграция Phase35.
- GET /api/catalog/products/by-barcode/{value} разбирает весовую этикетку →
  товар + количество (вес) / встроенная цена; обычный ШК — как прежде.
- GET/PUT /api/organization/settings отдаёт/принимает настройки (блок весовых
  применяется только если передан — round-trip-safe для текущей веб-формы).
- Офлайн-каталог ProductSyncDto: явный isWeighed (packaging==2) для мобильного/кассы.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 05:39:20 +05:00
..
Auth feat(pos-core): логика кассы без UI + 37 unit-тестов 2026-10-08 04:58:22 +05:00
Data feat(pos-core): логика кассы без UI + 37 unit-тестов 2026-10-08 04:58:22 +05:00
Logic feat(catalog): штрихкоды товара — добавление + весовые этикетки 2026-10-08 05:39:20 +05:00
Models feat(pos-core): логика кассы без UI + 37 unit-тестов 2026-10-08 04:58:22 +05:00
Sync feat(pos-core): логика кассы без UI + 37 unit-тестов 2026-10-08 04:58:22 +05:00
food-market.pos.core.csproj feat(pos-core): логика кассы без UI + 37 unit-тестов 2026-10-08 04:58:22 +05:00