Как починить машину в интернете история создания поисковика автозапчастей

image

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

Что не так с магазинами автозапчастей


Автовладелец, который решит самостоятельно заняться поиском запчастей для своей машины, неизбежно сталкивается с проблемой поиска нужной детали. Существует огромное количество автозапчастей, в одном авто в среднем 10 тысяч деталей. Ассортимент популярных марок — десятки миллионов уникальных позиций, поэтому в обычном магазине найти нужную вещь очень сложно, наличие обычного магазина 2-5 тысяч позиций.

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

image

Немного истории


В начале 2000-х годов интернет-магазины, в которых можно было купить запчасти для авто, были очень редким явлением — по сути, существовал единственный сайт Exist.ru.

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

Этот сервис оказался востребованным и число клиентов быстро росло — в результате появилась возможность создания поисковика-агрегатора, который помогал бы пользователям находить запчасти сразу во множестве магазинов (как «Яндекс.Маркет») — так появился 4mycar.ru.

image

В последнее время из-за проблем с курсом валют интерес к сервису значительно повысился — мотивация сэкономить на ремонте авто увеличилась пропорционально падению курса рубля.

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

На самом деле все очень сложно


Для того чтобы самостоятельно купить деталь, пользователю необходимо провести много подготовительной работы — изучить каталоги производителей, сопоставить VIN-код своего авто с подходящими к этой модели деталями и т.д.

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

image

Разобраться в подобной информации непросто — при этом упомянутые в примере машины BMW очень хорошо документированы, чего не сказать о продукции других автопроизводителей. Очень часто можно встретить ситуацию «коллизии», когда в каталоге одному и тому же VIN-коду соответствует две похожих детали — что это приводит к покупке ненужной запчасти. В результате впустую тратятся деньги и время на ремонт, в ходе которого машина простаивает.

В результате многим автовладельцам проще переплатить на авторынке, но точно получить нужную деталь.

UX спешит на помощь


Общение покупателя с продавцом запчастей в офлайн-магазине — это важнейший аспект, влияющий на конечную продажу. Как правило автовладельцы только примерно знают, что они хотят («мне нужен масляный фильтр и масло, какое получше») и продавец помогает им не совершить ошибку.

Процесс поиска деталей самостоятельно в интернете мы описали выше — справиться с этим может очень небольшой процент пользователей.

Чтобы приблизиться к удобству обычных магазинов с консультантами, мы разработали кнопку «Не знаете код запчасти?».

image

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

image

Highload


На данный момент сервис хранит ~750 млн записей о продаваемых товарах. Каждые сутки продавцы полностью обновляют треть информации (~250 млн записей). Количество операций UPDATE примерно в 10 раз больше, чем количество операций SELECT. Особенность проекта — у нас нет возможности кешировать данные, поскольку очень важна актуальность цен и отображение наличия товара на складах.

Мы достигли очень хороших результатов в заливке прайс-листов: система поддерживают все популярные форматы, возможна загрузка прайс-листов огромных размеров (типичный пример — csv-прайс на 120 мегабайт). Скорость заливки/обновления прайсов в сервисе на данный момент составляет 30000 позиций в секунду, что позволяет обновить вышеупомянутые ~250 миллионов за 10% суточного времени. Эта производительность достигнута за счёт нескольких решений:

  • Распределение данных по параллельным базам.
  • Использование почти что NoSQL (подробнее в следующих публикациях).
  • Отдельные сервисы для конвертации данных в эталонный формат
  • Применение алгоритма заливки разницы в данных (diff).

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

Но ведь есть же «Маркет»


Действительно, автозапчасти продаются и на «Яндекс.Маркете», что вызывает вопрос в целесообразности создания сервисов, вроде нашего. Однако в реальности магазинам автозапчастей очень трудно работать с «Маркетом», поскольку этот сервис предъявляет жесткие технические требования к формату и структуре выгружаемого файла с прайс-листом (поддерживается только XML).

Еще одна проблема — поиск автозапчастей осуществляется сложнее, чем поиск электроники (об этом мы рассказали выше). Пользователи просто вбивают название нужной детали, не знают никаких номеров из каталогов, и не смогут выбрать в выдаче действительно нужную им деталь. При этом экспертов, подключенных к «Маркету» и помогающих выбрать запчасти, просто не существует. Для «Яндекса» направление автозапчастей не является профильным, поэтому заниматься его развитием компания, очевидно, не будет.

На сегодня все, спасибо за внимание! В следующих топиках мы расскажем о «внутренностях» нашего поисковика и работе по оптимизации интерфейса сайта.