56 lines
2.2 KiB
Markdown
56 lines
2.2 KiB
Markdown
|
|
# 08. Каталогный домен
|
|||
|
|
|
|||
|
|
## Назначение
|
|||
|
|
Каталогный домен описывает правила формирования витрин, листингов и поисковых выборок для tenant-магазина.
|
|||
|
|
|
|||
|
|
## Поведение системы
|
|||
|
|
- Каталог строится из API-данных и bootstrap-конфигурации.
|
|||
|
|
- Bootstrap определяет структуру страниц каталога и виджеты.
|
|||
|
|
- API возвращает содержимое: товары, категории, метаданные фильтров.
|
|||
|
|
|
|||
|
|
## Обязательные JSON-свойства каталога
|
|||
|
|
- catalog.settings.defaultSort
|
|||
|
|
- catalog.settings.pageSize
|
|||
|
|
- catalog.routes.list
|
|||
|
|
- catalog.routes.details
|
|||
|
|
|
|||
|
|
## Опциональные свойства
|
|||
|
|
- catalog.filters.available
|
|||
|
|
- catalog.facets
|
|||
|
|
- catalog.badges
|
|||
|
|
- catalog.promotions
|
|||
|
|
|
|||
|
|
## Строгие правила
|
|||
|
|
- Каталог не содержит tenant-specific условий в frontend-коде.
|
|||
|
|
- Сортировка и фильтры должны быть согласованы между frontend и backend.
|
|||
|
|
- Видимость товаров контролируется данными backend, а не frontend-хардкодом.
|
|||
|
|
|
|||
|
|
## Пример catalog JSON (bootstrap fragment)
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"catalog": {
|
|||
|
|
"settings": {
|
|||
|
|
"defaultSort": "priority_desc",
|
|||
|
|
"pageSize": 20
|
|||
|
|
},
|
|||
|
|
"routes": {
|
|||
|
|
"list": "/catalog",
|
|||
|
|
"details": "/product/:id"
|
|||
|
|
},
|
|||
|
|
"filters": {
|
|||
|
|
"available": ["price", "brand", "availability"]
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Ответственность Frontend
|
|||
|
|
- Отобразить листинг, фильтры, сортировки и пагинацию.
|
|||
|
|
- Синхронизировать состояние каталога с URL.
|
|||
|
|
- Стабильно обрабатывать пустые и частично заполненные наборы данных.
|
|||
|
|
|
|||
|
|
## Ответственность Backend
|
|||
|
|
- Возвращать согласованные данные для листингов и фильтров.
|
|||
|
|
- Гарантировать корректные totals/pagination.
|
|||
|
|
- Поддерживать стабильные ключи сортировки и фильтрации.
|