Все материалы

Headless Битрикс: как Nuxt + API ускоряют e-commerce

Разбираем, как разделить backend и frontend в интернет-магазине на Битриксе, ускорить фильтры и сохранить сильные стороны CMS.

Headless Битрикс: как Nuxt + API ускоряют e-commerce

Долгое время «1С-Битрикс» был стандартом для e-commerce. Он надёжен в работе с товарами, интеграцией с 1С, корзиной и заказами. В 2020-х требования к UX/UI заметно выросли: пользователи ждут от сайтов скорости нативных мобильных приложений.

В такой ситуации классическая монолитная архитектура начинает ограничивать проект. Разберём на практике, что даёт разделение backend и frontend.

Боль классической архитектуры компонентов

Главная проблема стандартных компонентов Битрикса в том, что логика и представление смешаны.

  • «Спагетти-код». result_modifier.php, component_epilog.php и template.php тесно переплетают PHP и HTML, из-за чего поддержку становится сложнее.
  • Ограничения реактивности. Чтобы обновить часть страницы, часто нужна полная перезагрузка или тяжёлая AJAX-обёртка на устаревшем jQuery.
  • Кадровый голод. Всё сложнее найти сильного frontend-разработчика, готового долго работать с legacy-шаблонами Битрикса: рынок ориентирован на Vue, React и Svelte.

Новая парадигма: Headless CMS

Разделение архитектуры оставляет Битриксу задачи, с которыми он хорошо справляется: базу данных, интеграцию с 1С, корзину, заказы и администрирование. При этом backend больше не отвечает за генерацию HTML.

Схема headless-архитектуры: 1С-Битрикс, REST API и Nuxt 3
Headless-подход: сильные стороны Битрикса остаются на backend, а интерфейс развивается независимо.

На frontend работает связка Nuxt.js + Vue.js. Backend отдаёт через лёгкий REST API JSON вместо готового HTML. Frontend-разработчики могут быстро прототипировать интерфейс в современных инструментах вроде bolt.new, а команда сосредотачивается на каталоге, листинге и корзине.

На старте проекта не стоит перегружать первый релиз тяжёлыми серверными скриптами. Сначала лучше отточить базовые пользовательские сценарии и скорость отклика.

Разбор на практике: фильтр товаров

Сердце любого интернет-магазина, фильтр каталога. Именно здесь разница между подходами заметнее всего.

В коробке: bitrix:catalog.smart.filter

После клика по чекбоксу браузер отправляет запрос. Битрикс запускает ядро, пересчитывает фасетные индексы, генерирует тяжёлый фрагмент HTML и возвращает его браузеру. В итоге интерфейс блокируется, контент скачет (CLS), а пользователю приходится ждать.

На Nuxt + API

Frontend запрашивает только JSON с цифрами и ID товаров. Состояние фильтра хранится локально в Pinia: URL обновляется сразу, товары подгружаются асинхронно. Интерфейс реагирует без полной перезагрузки страницы.

Оценка прироста производительности

Ниже приведена иллюстративная модель замеров блока .catalog-listing при сложном фильтре в каталоге на 50 000+ товаров. Для конкретного проекта эти цифры нужно подтвердить собственным профилированием.

Столбчатая диаграмма: 950 миллисекунд у Битрикса против 210 миллисекунд у Nuxt и API
Скорость ответа фильтра: 950 мс против 210 мс. Разница составляет 4,5 раза.
АрхитектураВремя ответаЧто происходит
Битрикс (коробка)950 мсПолная перезагрузка или тяжёлый AJAX
Nuxt.js + API210 мсАсинхронный JSON-запрос
Сгруппированная диаграмма Core Web Vitals: TTFB 600 и 120 миллисекунд, TTI 4,5 и 1,2 секунды
Сравнение TTFB и TTI: при меньшем времени ожидания пользователь быстрее видит содержимое и может с ним работать.
МетрикаБитрикс (коробка)Nuxt + APIЕдиницы
TTFB: ответ сервера600120мс
TTI: интерактивность4,51,2сек

В исходной модели ускорение фильтра с 950 до 210 мс экономит более 700 миллисекунд. Для бизнеса это может положительно повлиять на конверсию. Финансовый эффект зависит от источников трафика, ассортимента, UX и других факторов, поэтому такие оценки не гарантируют результат.

Линейный график: вероятность отказа растёт с 10 процентов за 1 секунду до 90 процентов после 5 секунд ожидания
Оценочный сценарий влияния ожидания на показатель отказов: после трёх секунд рост становится особенно заметным.

Демонстрация блока .catalog-listing

Запись работы фильтра в каталоге MacBook Air: выбор Apple M3 и применение параметра кнопкой «Показать».
  1. Обзорная сцена. Показать каталог и сетку товаров MacBook Air. Каталог техники часто относится к самым нагруженным частям e-commerce.
  2. Работа с фильтром. Выбрать, например, Apple M3 и показать изменение URL и обновление сетки без моргания страницы.
  3. Множественный выбор и сброс. Быстро выбрать несколько параметров и нажать «Сбросить фильтр», проверив отсутствие залипания интерфейса.
  4. Пагинация или ленивая загрузка. Нажать «Показать ещё» и показать, как новые карточки добавляются в конец сетки.
  5. Мобильный опыт. Открыть мобильную шторку фильтра, применить параметр и проверить плавное закрытие и обновлённый листинг.

Итог

Разделённая архитектура Nuxt + API подходит проектам с высоконагруженными каталогами, требовательным UX/UI и ограничениями стандартных шаблонов. Битрикс остаётся надёжным фундаментом для бизнеса, а современный frontend помогает строить поверх него быстрый и отзывчивый интерфейс.

Полезен материал?

Средняя оценка — 5 из 5

Обсуждение

Поделитесь мнением — первый комментарий задаст тон.

0

Оставить комментарий

Он появится после короткой проверки модератором.

* обязательные поля