Как починить машину в интернете: история создания поисковика автозапчастей
За последние несколько лет в интернете появилось множество самых разнообразных сервисов-агрегаторов и поисковиков, «заточенных» под любые нужды пользователей от поиска смартфонов до бронирования авиабилетов и отелей. Мы создали поисковик, который помогает автолюбителям выгодно покупать запчасти для авто. В сегодняшнем топике — история развития и рассказ об инфраструктуре проекта.
Что не так с магазинами автозапчастейАвтовладелец, который решит самостоятельно заняться поиском запчастей для своей машины, неизбежно сталкивается с проблемой поиска нужной детали. Существует огромное количество автозапчастей, в одном авто в среднем 10 тысяч деталей. Ассортимент популярных марок — десятки миллионов уникальных позиций, поэтому в обычном магазине найти нужную вещь очень сложно, наличие обычного магазина 2–5 тысяч позиций.Поэтому популярны рынки автозапчастей, где одновременно представлено много продавцов и высока вероятность уйти с покупкой. Но и у рынков есть недостатки — туда нужно ехать (потеря времени) и цены там всегда выше, чем в интернете.
Немного истории В начале 2000-х годов интернет-магазины, в которых можно было купить запчасти для авто, были очень редким явлением — по сути, существовал единственный сайт Exist.ru.Прежде чем запустить собственный проект мы долгое время работали в компаниях, занимающихся продажей запчастей — с точки зрения программиста этот бизнес был отлажен из рук вон плохо, поэтому мы создали SaaS-сервис для запуска интернет-магазина автозапчастей, который помогал таким компаниям выходить в интернет и автоматизировать процессы магазина.
Этот сервис оказался востребованным и число клиентов быстро росло — в результате появилась возможность создания поисковика-агрегатора, который помогал бы пользователям находить запчасти сразу во множестве магазинов (как «Яндекс.Маркет») — так появился 4mycar.ru.
В последнее время из-за проблем с курсом валют интерес к сервису значительно повысился — мотивация сэкономить на ремонте авто увеличилась пропорционально падению курса рубля.
Однако, несмотря на перечисленные выше плюсы покупки запчастей в сети, этот процесс все же гораздо сложнее, чем приобретение нового iPhone.
На самом деле все очень сложно Для того, чтобы самостоятельно купить деталь пользователю необходимо провести много подготовительной работы — изучить каталоги производителей, сопоставить VIN-код своего авто с подходящими к этой модели деталями и т.д. К примеру, вот так выглядит описание диска сцепления к одной из моделей BMW в профильном каталоге:
Разобраться в подобной информации непросто — при этом упомянутые в примере машины BMW очень хорошо документированы, чего не сказать о продукции других автопроизводителей. Очень часто можно встретить ситуацию «коллизии», когда в каталоге одному и тому же VIN-коду соответствует две похожих детали — что это приводит к покупке ненужной запчасти. В результате впустую тратятся деньги и время на ремонт, в ходе которого машина простаивает.
В результате многим автовладельцам проще переплатить на авторынке, но точно получить нужную деталь.
UX спешит на помощь Общение покупателя с продавцом запчастей в офлайн-магазине — это важнейший аспект, влияющий на конечную продажу. Как правило автовладельцы только примерно знают, что они хотят («мне нужен масляный фильтр и масло, какое получше») и продавец помогает им не совершить ошибку.Процесс поиска деталей самостоятельно в интернете мы описали выше — справиться с этим может очень небольшой процент пользователей.
Чтобы приблизиться к удобству обычных магазинов с консультантами, мы разработали кнопку «Не знаете код запчасти?».
За этой кнопкой скрываются живые эксперты по всем моделям автомобилей. Они подбирают нужные артикулы запчастей в любое время суток, избавляя вас от необходимости изучать каталоги и устройство автомобиля. Мы разделили процесс подбора артикулов и поиска предложений по ним, поэтому получив ответ от эксперта — можно перейти к поиску предложений.
Highload На данный момент сервис хранит ~750 млн записей о продаваемых товарах. Каждые сутки продавцы полностью обновляют треть информации (~250 млн записей). Количество операций UPDATE примерно в 10 раз больше, чем количество операций SELECT. Особенность проекта — у нас нет возможности кешировать данные, поскольку очень важна актуальность цен и отображение наличия товара на складах.Мы достигли очень хороших результатов в заливке прайс-листов: система поддерживают все популярные форматы, возможна загрузка прайс-листов огромных размеров (типичный пример — csv-прайс на 120 мегабайт). Скорость заливки/обновления прайсов в сервисе на данный момент составляет 30000 позиций в секунду, что позволяет обновить вышеупомянутые ~250 миллионов за 10% суточного времени. Эта производительность достигнута за счёт нескольких решений:
Распределение данных по параллельным базам. Использование почти что NoSQL (подробнее в следующих публикациях). Отдельные сервисы для конвертации данных в эталонный формат Применение алгоритма заливки разницы в данных (diff). В одной из следующих публикаций мы подробнее расскажем о том, как это все устроено с технической точки зрения.Но ведь есть же «Маркет» Действительно, автозапчасти продаются и на «Яндекс.Маркете», что вызывает вопрос в целесообразности создания сервисов, вроде нашего. Однако в реальности магазинам автозапчастей очень трудно работать с «Маркетом», поскольку этот сервис предъявляет жесткие технические требования к формату и структуре выгружаемого файла с прайс-листом (поддерживается только XML).Еще одна проблема — поиск автозапчастей осуществляется сложнее, чем поиск электроники (об этом мы рассказали выше). Пользователи просто вбивают название нужной детали, не знают никаких номеров из каталогов, и не смогут выбрать в выдаче действительно нужную им деталь. При этом экспертов, подключенных к «Маркету» и помогающих выбрать запчасти, просто не существует. Для «Яндекса» направление автозапчастей не является профильным, поэтому заниматься его развитием компания, очевидно, не будет.
На сегодня все, спасибо за внимание! В следующих топиках мы расскажем о «внутренностях» нашего поисковика и работе по оптимизации интерфейса сайта.