Новый сайт ZETA построен на headless-архитектуре. Фронтенд на Next.js с серверным рендерингом, бэкенд на NestJS — модульный, с чёткими границами между бизнес-логикой, интеграциями и данными. MongoDB в качестве базы. Такой стек даёт скорость на любом объёме каталога и возможность развивать части системы независимо друг от друга — без риска сломать всё разом.
Для поиска выбрали Elasticsearch. При каталоге в десятки тысяч позиций обычный поиск по базе не справляется: пользователь не должен знать точное название товара, чтобы его найти. Elasticsearch обрабатывает неточные запросы, понимает опечатки, ранжирует результаты по релевантности и отдельно усиливает точное совпадение по артикулу. Поиск работает так, как пользователь этого ожидает.
Синхронизация с 1С идёт через XML-обмен в формате CommerceML. Остатки и цены по всем магазинам сети обновляются каждые 15 минут — фоновым воркером, без остановки сайта. Пользователь видит актуальное наличие в конкретной точке продаж, что напрямую закрывает один из ключевых выводов исследования.
Отдельная история — интеграция с Битрикс24. Сайт стал сквозным слоем между 1С и CRM: заказы, клиенты, номенклатура и статусы сделок синхронизируются в обе стороны. Раньше этот обмен был ручным или частичным — теперь данные идут автоматически, и менеджеры работают в Битриксе с актуальной картиной.
Товарный каталог подтягивается из отдельного источника — отдельная таблица на каждый раздел. Контент-менеджеры работают в привычной среде, не касаясь CMS. Для управления баннерами, акциями, отзывами и медиаконтентом сделали AdminJS с кастомными workflow-хуками под процессы клиента.
Кеширование реализовано на фронте: краткоживущий in-memory cache GET-запросов с дедупликацией одновременных обращений. Это снижает нагрузку на API и держит время отклика стабильным даже в пиковые часы.
Сайт работает на трёх языках — русском, казахском и английском.
Оформление заказа устроено так, чтобы покупатель тратил минимум усилий. Адрес вводится одной строкой с автоподсказками — для Алматы стоимость доставки рассчитывается автоматически через интеграцию с сервисом доставки, все способы оплаты доступны сразу. Для других городов расчёт передаётся менеджеру. Сборка выбирается отдельно: покупатель сам указывает, какие именно товары из заказа нужно собрать, и сразу видит итоговую стоимость услуги.
Платёжный модуль поддерживает банковские карты, Halyk ePay, Google Pay, Apple Pay и рассрочки. Для юридических лиц — выставление счёта с отправкой в личный кабинет и на почту.