К содержанию
Работа

Just Jeeps — интернет-магазин запчастей с подбором по автомобилю

Just Jeeps — канадский магазин запчастей и оборудования для Jeep и других внедорожников: кузов и подвеска, рулевое управление, мягкие крыши, lift kits, бамперы, колёса, освещение, защита, overland- и camping-снаряжение, электроника. Снаружи это обычная витрина, а вся сложность спрятана в подборе по автомобилю — достоверной связи «этот автомобиль — эта деталь». Мы отвечали за системный анализ: модель каталога и fitment, фасетную навигацию, интеграционные контракты и правила обработки ошибок.

Главный экран проекта Нажмите, чтобы рассмотреть
Just Jeeps — интернет-магазин запчастей с подбором по автомобилю 01 / 05
Just Jeeps — интернет-магазин запчастей с подбором по автомобилю — Главный экран проекта
Клиент
OneCore Media
Индустрия
Электронная коммерция
Срок
6 месяцев
Команда
5 человек

Задача

Aftermarket-каталог устроен так, что две внешне одинаковые детали различаются поколением автомобиля, годом выпуска, типом кузова или стороной установки. Покупатель, который выбрал не ту, узнаёт об этом на подъёмнике — и оформляет возврат. Магазину нужен был не поиск по названию, а инструмент, который сам отсекает несовместимое.

Второй слой задачи — разные покупатели. Один знает SKU и производителя, второй начинает с типа детали, третий знает только собственную машину. Все три пути должны приводить к одной товарной модели и одинаково корректной корзине.

Третий — данные. Каталоги поставщиков приходили с разными обозначениями одного и того же автомобиля и одной и той же детали, разными единицами измерения и написанием брендов. Объём и частота изменений исключали ручное ведение связей: нужна была массовая загрузка с проверкой.

Решение

Fitment как отдельная модель данных. Совместимость не хранилась строкой в заголовке товара. Отдельная структура связывала марку и модельное семейство, поколение или внутренний код автомобиля, тип кузова и модификацию, год или диапазон годов, дополнительные технические признаки, товар, вариант и категорию детали, а также ограничения, исключения и универсальную совместимость. Связь принципиально many-to-many: одна деталь подходит нескольким поколениям, одному автомобилю соответствуют товары из десятков категорий. Эти же данные использовались поиском, фильтрами, карточкой и импортом — то есть одна модель обслуживала весь магазин.

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

Динамические фасеты. Набор фильтров зависит от категории и фактически доступных товаров: совместимые автомобили и поколения, производитель, цена, цвет и материал, сторона установки, технические атрибуты категории, наличие. Фасеты показывают количество товаров и пересчитываются при сочетании условий, поэтому пользователь не собирает заведомо пустую комбинацию. Условия снимаются по одному или очищаются целиком.

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

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

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

Исполнение заказа шире доставки. Кроме курьерской отправки — самовывоз онлайн-заказа из showroom, локальная выдача после подтверждения готовности, сервисные и установочные appointments, отдельная обработка крупногабаритных деталей, трек-номер и уведомления о статусе. Перед завершением checkout повторно проверялись цена, наличие и коммерческие ограничения, а повтор после ошибки оплаты не должен был создавать дубль заказа или списания.

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

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

Результат

Большой технический каталог получил три понятных входа — автомобиль, бренд, тип детали, — и все три ведут к одной товарной модели и одинаково корректной корзине. Fitment и динамические фильтры сняли главный риск aftermarket-покупки: клиент видит совместимость до оплаты, а не после установки. Операционная команда получила один контур вместо разрозненных выгрузок: справочники автомобилей и поколений, связи товара с конфигурациями, категории и атрибуты, импорт, цены и остатки, заказы, отгрузки, самовывоз, отмены и возвраты, купоны и правила корзины, баннеры, страницы и рассылки. Права разделены между администраторами, catalog-менеджерами, специалистами по fitment, контент- и marketing-командой, обработкой заказов, складом и клиентским сервисом, а посадочные страницы по автомобилям и категориям одновременно работают как навигация, SEO-контент и вход в отфильтрованный каталог.

Ещё

Похожие проекты

Всё портфолио
Artik — интернет-магазин печати на заказ с онлайн-конструктором
Работа OneCore Media

Artik — интернет-магазин печати на заказ с онлайн-конструктором

Artik — канадская платформа заказа одежды, спортивной формы и промопродукции с индивидуальным нанесением. У обычного магазина цена привязана к SKU; здесь она собирается из тиража, цвета основы, размерной сетки, числа зон печати и количества красок в каждой из них. Поэтому магазин соединён с онлайн-конструктором макетов и производственным контуром типографии в один сквозной путь — от выбора футболки до задания в цех.

Интернет-магазин
MagentoPHPMySQL
CanMedDirect — интернет-магазин медицинских расходных материалов
Работа OneCore Media

CanMedDirect — интернет-магазин медицинских расходных материалов

CanMedDirect — канадский интернет-магазин медицинских расходных материалов для домашнего ухода, длительной терапии и восстановления после процедур. Внешне это обычный интернет-магазин, но покупатель здесь ищет не «повязку», а конкретный артикул производителя нужного диаметра, в нужной упаковке и совместимый с уже используемой системой. Магазин строился вокруг этой точности: каталог, поиск, совместимость, страховые документы и direct billing.

Интернет-магазин
PHPMagentoMySQL
Forpost — B2B-платформа оптовой торговли с Click2Buy и POS для торговых представителей
Работа OneCore Media

Forpost — B2B-платформа оптовой торговли с Click2Buy и POS для торговых представителей

Единый цифровой контур канадского оптового дистрибьютора товаров для дома и сада. Публичный сайт знакомит с брендом и ассортиментом, Click2Buy обслуживает самостоятельный B2B-заказ, POS работает в руках торгового представителя в шоуруме и на выставке. Три канала стоят на одних SKU, ценах, остатках, клиентах и заказах, поэтому продажа сейлза не превращается в отдельную ручную таблицу.

Интернет-магазинКорпоративные порталы
MagentoPHP
Первый разговор — бесплатно

Расскажите, что хотите изменить

За одну встречу уточним задачу и предложим следующий шаг, даже если вам нужен другой подрядчик.

Что будет на встрече
  1. 01 Опишите задачу своими словами
  2. 02 Уточним цель и ограничения
  3. 03 Предложим решение и следующий шаг
длительность 45–60 мин