ДокументацияРуководство РазработчикаПродвинутые Возможности Витрины

🚀 Расширенные возможности витрины Storefront (Next.js 16)

Фронтенд-проект витрины, помимо высокой скорости рендеринга, включает продвинутые функции для мобильной установки, профессионального SEO и информационной безопасности корпоративного уровня.


📱 Поддержка PWA и автономный режим

Магазин настроен как прогрессивное веб-приложение (Progressive Web App — PWA). Это позволяет пользователям Android и iOS устанавливать сайт прямо на домашний экран как нативное приложение.

  • Конфигурация: Управляется плагином @ducanh2912/next-pwa в файле store/next.config.js.
  • Динамический манифест: Файл store/src/app/manifest.ts генерирует данные об иконках, цветах темы и названии приложения.
  • Автономный режим (Fallback): При потере интернет-соединения Service Worker автоматически перенаправляет на кастомную страницу ~offline/page.tsx.
Примечание для разработчиков
Регистрация Service Worker отключена в режиме разработки (Development), чтобы кэширование файлов не мешало разработке.

🔒 Строгие заголовки безопасности (Security Headers)

Для защиты от распространенных атак, таких как внедрение кода (XSS) и кликджекинг, заголовки безопасности инжектируются глобально через Next.js:

store/next.config.js (раздел headers)
javascript
async headers() {
return [
{
source: '/(.*)',
headers: [
{ key: 'Strict-Transport-Security', value: 'max-age=63072000; includeSubDomains; preload' },
{ key: 'X-XSS-Protection', value: '1; mode=block' },
{ key: 'X-Frame-Options', value: 'SAMEORIGIN' },
{ key: 'X-Content-Type-Options', value: 'nosniff' },
{ key: 'Content-Security-Policy', value: "default-src 'self'; ..." }
],
},
];
}

🕷️ Динамическое SEO и мультинациональный Sitemap

Вместо ручного обновления карты сайта файл sitemap.ts параллельно опрашивает бэкенд-микросервисы для формирования максимально полного sitemap для поисковых систем.

Этапы генерации карты сайта:

  1. Статические страницы: Обход маршрутов «О нас», контактов для всех активных стран и регионов (Regions).
  2. Получение товаров (Medusa): Подключение к базе данных Medusa для извлечения полного списка товаров с датами последнего обновления.
  3. Получение статей (Strapi): Запрос к CMS и включение ссылок на все опубликованные статьи блога.
Значение для поисковых систем
Благодаря этому механизму, как только редактор публикует статью в Strapi или администратор создает товар в Medusa, ссылка мгновенно появляется в /sitemap.xml.