Files
marketplaces/docs/platform/11-navigation-system.md
sdarbinyan ee269a9e33
Some checks failed
Architecture Governance / architecture (push) Has been cancelled
fixes
2026-07-10 15:55:38 +04:00

2.9 KiB

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

{
  "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-специфичность навигации.