Evrotrans 2.0: от WordPress-магазина к платформе на Node.js с AI

EVROTRANS

Магазин автозапчастей начинается с простого вопроса: подойдёт ли эта деталь моему автомобилю? За ответом стоят названия на разных языках, OEM-номера, модели машин, автомобили-доноры, фотографии, остатки и условия доставки. Чтобы покупатель быстро нашёл нужное, эти данные должны работать вместе.

В проекте Evrotrans 2.0 мы заново разработали и публичный магазин, и инструменты, с которыми команда ведёт каталог и обрабатывает заказы. Получилась индивидуальная платформа на Node.js: магазин на Next.js, торговая система Vendure, Payload CMS, отдельный поисковый движок и AI-инструменты.

Краткое описание есть в портфолио Evrotrans 2.0. Здесь подробно рассказываем, почему выбрали такую архитектуру и как её части помогают в повседневной работе.

Скорость в цифрах

Проверили главную страницу новой версии в семи последовательных загрузках. Здесь видно, когда браузер начал показывать содержимое и получил первые данные страницы.

1,80 сДо первого видимого содержимого (FCP)
21 msДо первого байта данных (TTFB)
Появление первого содержимого в каждой из 7 загрузок, секунды
1,62

1

1,64

2

2,18

3

1,78

4

2,15

5

2,25

6

1,80

7

Диапазон FCP: 1,62–2,25 с. Выше показаны медианы, а не лучший результат.

Как измеряли

21.10.2026. Главная evrotrans.lv, Chromium 155 на компьютере, 1440 × 1000. Семь последовательных загрузок с отключённым HTTP-кешем браузера; кеш сервера и CDN сохранён. Без эмуляции скорости сети и процессора. Локальный лабораторный замер, а не статистика всех посетителей. FCP отмечает первый видимый текст или изображение, а не полную готовность страницы. Сопоставимых замеров версии 1.0 нет, поэтому процент ускорения не указываем.

Evrotrans 2.0 – макет сайта на компьютере и телефоне

От первой версии к новой платформе

Наше сотрудничество с Evrotrans началось с сайта на WordPress и WooCommerce. В проект первой версии входили интернет-магазин, внешняя синхронизация каталога, интеграция с eBay и четыре языковые версии. Это был первый этап, на основе которого мы развивали следующий.

Задача второй версии вышла далеко за рамки обновления дизайна. Требовалось связать поиск деталей, каталог для нескольких рынков, работу склада, платежи, отправления, возвраты и управление контентом. Отдельной частью стало применение AI в повторяющихся операциях сотрудников.

Архитектуру выбирали под эти процессы. WordPress и WooCommerce по-прежнему подходят многим магазинам. В этом проекте собственная платформа позволила чётче разделить ответственность между витриной, торговыми данными, контентом и поиском.

Из чего состоит Evrotrans 2.0

Публичный магазин мы разработали на Next.js и React с Node.js. Vendure управляет товарами, клиентами, корзинами, заказами и правилами торговли. Payload CMS отвечает за страницы, статьи, изображения и другой редакционный контент. Meilisearch хранит индекс каталога, подготовленный для поиска.

Данные находятся в PostgreSQL, а дополнительная инфраструктура обеспечивает кеширование и хранение файлов. Длительные операции выполняются в фоне. Покупателю не нужно ждать, пока на стороне админки обработается серия фотографий или обновится поисковый индекс.

Такое разделение помогает развивать каждую часть в своём темпе. Можно менять интерфейс магазина, добавлять инструменты для сотрудников или улучшать поиск, сохраняя понятный обмен данными между компонентами.

Что изменилось внутри

1.0WordPress + WooCommerce4 языковые версии
2.0Node.js + Next.js19 языковых и региональных версий
Магазин на Next.js
MeilisearchОтдельный индекс для поиска деталей.
VendureТовары, корзины, платежи и заказы.
Payload CMSСтраницы, статьи и редакционный контент.

Поиск, торговую систему и контент можно оптимизировать отдельно. Компоненты обмениваются данными; схема показывает распределение их задач.

Главная страница Evrotrans 2.0 на компьютере
Главная страница Evrotrans 2.0 на компьютере.

Поиск, который учитывает структуру каталога автозапчастей

Покупатели ищут детали по-разному. Один знает точный OEM-номер. Другой помнит марку и модель автомобиля. Третий начинает с названия детали. Поэтому одного сценария поиска для всего каталога было недостаточно.

Мы сделали поиск по названию и OEM-кодам, а также подбор по марке, модели и году машины. Дерево категорий позволяет перейти от системы автомобиля, например двигателя или тормозов, к конкретному типу детали. В результатах доступны фильтры и сортировка.

При поиске по OEM система обрабатывает разные варианты записи кода. Пробелы и разделители не должны становиться лишним препятствием. Точные и связанные совпадения обрабатываются отдельно. Это помогает упорядочить результаты, но совместимость всё равно проверяется по данным конкретной детали и автомобиля.

Поисковый индекс отделён от торговой базы данных и синхронизируется с каталогом. Благодаря этому поиск можно настраивать и оптимизировать независимо от обработки заказов.

Автомобиль-донор как часть каталога

Для подержанных запчастей важна связь с автомобилем, с которого снята деталь. Мы сделали учёт автомобилей-доноров и связи между ними и товарами. Команда может работать с конкретной машиной и её деталями в общей модели данных.

Эта связь используется и при обработке фотографий. Перед запуском серии сотрудник может выбрать автомобиль-донор. Созданные черновики сохраняют привязку к нему. Контекст появляется уже на этапе подготовки товара, а не добавляется отдельно в конце.

19 языковых и региональных версий в одной системе

Публичная платформа работает в 19 языковых и региональных версиях. Это Латвия, русскоязычный поддомен, Великобритания, Франция, Германия, Италия, Испания, Эстония, Финляндия, Чехия, Румыния, Швеция, Словакия, Болгария, Дания, Нидерланды, Португалия, Австрия и Бельгия.

Здесь важно различать языки и региональные версии. Для Австрии используется отдельная немецкая локализация, для Бельгии – французская. Поэтому речь идёт именно о 19 версиях, а не о 19 разных языках.

У каждого публичного домена закреплена своя локализация. Интерфейс, переводы товаров и категорий, тексты писем и SEO-данные должны работать согласованно. Язык домена не должен случайно меняться из-за старого выбора, сохранённого в браузере.

Мы настроили соответствие доменов и локалей, canonical-адреса и связи hreflang. Для региональных версий используются нужные обозначения, например de-AT и fr-BE. Общий каталог помогает обходиться без 19 отдельно поддерживаемых копий товарных данных.

Админка под работу команды

Публичная часть магазина – только часть проекта. Если ради каждого заказа сотруднику приходится открывать несколько систем и переносить одни и те же данные, новый дизайн сам по себе эту работу не упростит.

Мы расширили админку Vendure инструментами для процессов Evrotrans. В списках товаров доступны нужные данные каталога и склада. В заказах видны пункт доставки, информация об отслеживании и счёте. В карточке клиента находятся статистика заказов и данные EVRO PLUS.

Отдельно сделали управление автомобилями-донорами, обработку фотографий, проверку черновиков и отчёты о продажах. Предусмотрели и оформление продаж на месте. Смысл этих доработок простой: нужное действие должно находиться рядом с товаром или заказом, с которым работает сотрудник.

AI: от папки фотографий до черновика товара

Одна из самых объёмных частей проекта – AI для подготовки каталога. У подержанной детали бывает несколько снимков с разных ракурсов, фотография наклейки с кодом и крупный план. Перед публикацией нужно понять, какие кадры относятся к одной детали и как связать её с каталогом.

Сотрудник загружает папку фотографий и при необходимости указывает автомобиль-донор. AI обрабатывает изображения сериями, группирует их, предлагает категорию, пытается прочитать OEM-номера и создаёт черновики товаров с галереями. Сомнительные OEM-номера система помечает для проверки.

Обработка идёт в серверной очереди задач. Её состояние и прогресс сохраняются. Закрытие браузера не прерывает уже запущенное распознавание, и сотрудник может вернуться к результатам позже.

Перед публикацией человек проверяет категорию, фотографии, OEM-номера, цену и остаток. Черновик без положительной цены опубликовать нельзя. Отмеченные системой OEM-номера нужно проверить. AI готовит материал, а решение о публикации остаётся у сотрудника.

Эта граница принципиальна. Распознавание фотографии не гарантирует совместимость детали, а считанный с изображения код может содержать ошибку. Поэтому проверка встроена в сам рабочий процесс.

AI помогает переводить категории

В многоязычном каталоге добавление одной категории означает работу сразу с несколькими языками. Мы сделали инструмент, который использует готовый словарь переводов, а при необходимости готовит дополнительные переводы через интеграцию с OpenAI.

Логика настроена на названия автозапчастей: короткие, точные термины без рекламных фраз и лишней марки автомобиля. Аббревиатуры ABS, ECU и EGR сохраняются с учётом контекста. Результат поступает в рабочий процесс админки, где с ним продолжает работать команда.

Платежи, счета и доставка

Для оплаты интегрировали Stripe, Klix и банковский перевод. Состояния платежей и заказов обрабатываются на сервере. В админке есть инструменты для проверки ситуаций с оплатой. Счета можно формировать и скачивать в PDF.

Для доставки разработали интеграции с Omniva, DPD, Venipak, Unisend и UPS. В системе есть выбор пунктов выдачи, создание транспортных этикеток, процессы вызова курьера и отслеживания. Доступные действия зависят от перевозчика, страны назначения и данных отправления.

Возвраты связали с данными заказа и личным кабинетом. Доступные перевозчики и действия определяются по состоянию заказа и условиям возврата. Работа после продажи использует уже собранные данные, а сотруднику не нужно начинать оформление заново.

Личный кабинет и EVRO PLUS

В личном кабинете доступны история заказов, адреса, счета и запросы на возврат. Отдельно реализовали бонусную программу EVRO PLUS: 5% за оплаченные товары связываются с балансом клиента и историей операций.

Бонусы можно использовать при следующих покупках товаров по правилам программы. Система учитывает резервирование бонусов в корзине и освобождает резерв, если заказ не завершён. Клиент и сотрудник работают с данными одной системы.

Контент и общение после покупки

Payload CMS даёт команде отдельную рабочую среду для статей, страниц, изображений и навигации. Локализованные поля, черновики и версии позволяют подготовить контент до публикации. Развитие редакционной части не требует изменения торговой логики.

Для общения по заказам сделали многоязычные шаблоны писем и процессы отложенной отправки. Они включают подтверждение заказа, уведомление об отправке, запрос отзыва и напоминание о незавершённой покупке. В админке предусмотрен предпросмотр писем для проверки их содержания и внешнего вида.

Скорость начинается с распределения работы

Производительность мы прорабатывали на нескольких уровнях: отрисовка страниц, запросы данных, обработка изображений, кеширование и поисковый индекс. Длительные операции вынесли в фон. Для синхронизации каталога с поиском предусмотрена отдельная логика обработки.

Поэтому скорость магазина можно улучшать в конкретной точке: в поиске, при открытии категории или загрузке изображений. Инструменты сотрудников и фоновая обработка не должны превращать каждый запрос покупателя в операцию, которая затрагивает всю систему.

Магазин работает, пока AI обрабатывает фотографии

Путь покупателя
  1. Поиск
  2. Страница детали
  3. Корзина
Фоновая работа
  1. Фотографии
  2. AI-черновик
  3. Проверка человеком

Фотографии обрабатываются в своей очереди задач. Запрос покупателя не ждёт её завершения. Публикация происходит после проверки сотрудником.

Миграция и SEO для разных рынков

При замене существующего магазина нужно учитывать данные и адреса, которыми покупатели уже пользуются. В проекте создали инструменты миграции данных WordPress и WooCommerce, обработку старых URL и перенаправления. Ссылки на товары и категории необходимо связать с новой структурой.

Техническое SEO включает canonical-адреса для нужного домена, hreflang, карты сайта, структурированные данные товаров и локализованные метаданные. У фильтров и других технических адресов своя логика индексации, чтобы не создавать лишние копии одной страницы для поисковых систем.

Развёртывание дополняют автоматические проверки и учёт версий. Для базы данных есть инструменты проверки резервных копий. Эти работы менее заметны, чем дизайн, но нужны для дальнейшей поддержки платформы.

Что получил Evrotrans

Evrotrans 2.0 объединяет подбор запчастей, 19 языковых и региональных версий, инструменты сотрудников, оплату, доставку и управление контентом. AI помогает готовить каталог, а проверка сохраняется там, где ошибка может повлиять на покупателя.

Ценность проекта в связях между этими частями. Обработка фотографий продолжается в черновике товара. Проверенный товар появляется в каталоге и поиске. Заказ связан с оплатой, счётом, отправлением и историей клиента. На этой основе можно строить следующие улучшения.

Посмотрите магазин Evrotrans, вторую версию в портфолио и описание первой версии.

Если вашему магазину нужны особая логика поиска, инструменты для сотрудников или интеграции с другими системами, ознакомьтесь с нашей разработкой интернет-магазинов. Мы начинаем с рабочих процессов и под них выбираем техническое решение.