гора.
Jusmila — каталог мото-запчастей в Литве

Бизнес-логика

Каталог запчастей для мото в Литве: целевая аудитория, поставщики, формат склада, мультиязычность.

~3 мин чтения · 686 слов

TL;DR

Jusmila — литовский e-commerce магазин запчастей для мотоциклов, квадроциклов и мопедов. Владелец — UAB Jusmila, физический склад и сервис в городе Шакяй. На сайте jusmila.lt — каталог из 10 000+ деталей, поиск по моделям, корзина, доставка по Литве в день заказа.

Платформа состоит из трёх независимых приложений в одном монорепо: публичная витрина для покупателей, админка для управления каталогом и заказами, и API между ними. Заполнение каталога автоматизировано: данные подтягиваются из нескольких источников через скрейпер на chrome-devtools MCP — это редкий подход, заменяющий привычные Puppeteer / Playwright.

Jusmila — что это и как устроено

Бизнес-контекст

UAB Jusmila — литовская компания со складом и собственным сервисом в Шакяе. Ниша — запчасти для мотоциклов, квадроциклов и мопедов: расходники (тормозные колодки, фильтры, цепи), сезонные детали (резина, аккумуляторы), кузовные части и спецоборудование. Аудитория — частные владельцы техники, мастерские, дилеры.

В нише есть несколько серьёзных трудностей, которые платформа решает напрямую:

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

Геораспределение. Сайт работает на литовский рынок, но в нише много русскоязычных мастерских — мультиязычный интерфейс (LT / RU / EN) обязателен, не вторичен. next-intl рендерит все три варианта статически, без потери SEO.

Скорость доставки. Конкурентное преимущество — доставка день-в-день из собственного склада. Платформа отслеживает остатки в реальном времени; если детали нет физически в Шакяе, на карточке сразу показывается «нет в наличии», а не «уточняйте у менеджера».

Каталог растёт. 10 000+ позиций — это не статичная цифра, это работающий поток новых SKU. Заполнение от руки не масштабируется. Поэтому в проекте отдельная инфраструктура импорта и автоматического обогащения карточек.

Как работает заказ от и до

Шаг 1. Поиск детали

Клиент заходит на jusmila.lt, выбирает язык (литовский по умолчанию), задаёт фильтр по производителю мотоцикла и модели. Каталог отдаёт список совместимых деталей. У каждой карточки — фото, артикул, цена, статус наличия и совместимость с конкретными моделями.

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

Шаг 2. Корзина и оформление

Корзина живёт в localStorage до момента оформления. После того как пользователь решает купить — корзина уходит на сервер, привязывается к аккаунту (если он есть) или к сессии гостя. Дальше — выбор способа доставки (курьер, самовывоз из Шакяя, постамат) и оплаты.

Шаг 3. Подтверждение и сборка

Заказ попадает в админку. Сотрудник склада видит позицию в очереди заказов, собирает физически, маркирует как готов. Если детали не оказалось (рассинхронизация остатков), статус меняется на «частичная сборка», клиенту приходит уведомление с вариантами.

Шаг 4. Доставка

Если клиент в зоне покрытия — заказ уходит курьером в тот же день. Иначе — постамат или почтовый сервис.

Что необычного

chrome-devtools MCP вместо Puppeteer. Скрейпинг каталога конкурентов и поставщиков идёт через реальный браузер, контролируемый по MCP-протоколу. Это даёт обход анти-бот защит, которые ловят headless-режим Puppeteer. Никаких внешних библиотек кроме официального MCP-клиента.

Импорты из нескольких источников. В коде живут скрипты import-mototex, import-anjese — пайплайны для конкретных поставщиков. Каждый источник имеет свой парсер и нормализатор, общий артефакт — TypeORM-сущности.

Real-time остатки. Socket.IO + Redis adapter держит синхронизацию остатков между админкой и витриной. Когда сотрудник склада меняет количество, витрина видит новое значение без перезагрузки.

Session replay через rrweb. В админке встроен rrweb-player — можно отсмотреть сессию пользователя на сайте, чтобы разобрать конкретный баг или непонятное поведение. Полезно при разборе жалоб «у меня корзина не сработала».

Гео и язык

Сайт — на литовском по умолчанию (LT). Русский — для русскоязычных мастерских в Литве (их в районе Каунаса немало). Английский — для приграничных клиентов из Латвии и Польши. next-intl выдаёт каждую страницу как отдельный URL: /lt/..., /ru/..., /en/... — это важно для индексации в Google.

Склад и сервис — в Шакяе. Это маленький город (примерно 6 000 населения), но удобная логистическая точка для центральной Литвы. Доставка по Литве — день в день; международные заказы — через стандартные сервисы.

Jusmila — что это и как устроено · hiregora.com