## CMS Navigation Integration - Static pages with `showInHeader: true` may appear in header navigation automatically. - Static pages with `showInFooter: true` may be grouped into footer sections using `footerGroup`. - Social links remain footer-config driven and can coexist with CMS page groups. - Navigation stays configuration-driven; no marketplace-specific page names are hardcoded in frontend. ## Catalog Routing Preparation - Catalog root `/catalog` renders category browser. - Category detail keeps current ID routes while resolving future slug tokens in routing layer. - Breadcrumb root action must always navigate to `/catalog`, not all-products grid. # 11. Система навигации ## Назначение Навигационная система управляет маршрутами витрины, меню и ссылками на основе bootstrap-конфигурации. ## Поведение системы - Frontend строит маршруты из конфигурации pages и navigation. - Языковой префикс маршрута задается локализационной конфигурацией. - Для категорий/товаров используются конфигурируемые route templates. ## Обязательные JSON-свойства - pages[].route.path - pages[].id - navigation.header или navigation.footer (минимум один набор) ## Опциональные свойства - route.exact - route.redirectTo - navigation.icon - navigation.order - navigation.visible ## Строгие правила - Маршруты страниц должны быть уникальны в рамках tenant. - Ссылка меню должна ссылаться на существующий маршрут или валидный внешний URL. - Нельзя хардкодить статические tenant-пути в компонентах. ## Пример navigation JSON ```json { "navigation": { "header": [ { "id": "nav-home", "label": "Главная", "route": "/", "order": 1 }, { "id": "nav-catalog", "label": "Каталог", "route": "/catalog", "order": 2 } ], "footer": [ { "id": "nav-privacy", "label": "Политика", "route": "/privacy-policy", "order": 1 } ] } } ``` ## Ответственность Frontend - Строить меню и роутинг из конфигурации. - Соблюдать локализацию маршрутов. - Обрабатывать недоступные маршруты через fallback-страницу. ## Ответственность Backend - Возвращать валидную карту маршрутов/навигации в bootstrap. - Поддерживать актуальность ссылок на статические страницы. - Контролировать tenant-специфичность навигации.