# 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. - Поддерживать стабильные ключи сортировки и фильтрации.