В ходе работы над платформой для создания интернет-магазинов автозапчастей abcp.ru мы столкнулись с необходимостью разработки API.
Изначально работа с продавцами автозапчастей велась напрямую, и мы сами создавали им стандартизированные онлайн-магазины на своем движке. Однако с течением времени все больше клиентов стали требовать индивидуального подхода к разработке сайта.
Наших ресурсов на одновременное ведение нескольких таких проектов могло не хватить. Поэтому мы создали API для внешних разработчиков, которых клиенты могли бы привлекать для работы над своими сайтами. Сегодня мы подробнее расскажем о том, что у нас в итоге получилось.
Что требуется от API в отрасли поиска автозапчастей
В сфере продажи автозапчастей существует несколько классов задач, от качества решения которых зависит успех того или иного интернет-магазина.
База знаний об аналогах автозапчастей (кроссы)
Часто оригинальной детали нет в наличии или она стоит чересчур дорого. В таком случае автовладельцы могут приобрести неоригинальный заменитель и серьезно сэкономить (иногда даже не потеряв в качестве). Связки оригинальных запчастей и их заменителей называются кроссами, и важнейшей задачей интернет-магазина является наличие актуальной базы таких вариантов замены.
Отсутствие такой информации — серьезный минус магазина, который приводит к снижению продаж.
Для того, чтобы облегчить жизнь разработчикам интернет-магазинов автозапчастей мы создали API для доступа к нашей постоянно пополняемой базе кроссов. Доступ к информации осуществляется через REST API, что позволяет использовать данные не только на веб-сайтах, но и в мобильных приложениях.
Ниже представлен пример JSON-выдачи заменителей для тормозного диска VOLKSWAGEN модели 6R0615301:
{
"brand": "VAG",
"number": "6R0615301",
"crosses": [
{
"brand": "Brembo",
"number": "09.7011.11",
"numberFix": "09701111"
},
{
"brand": "Febi",
"number": "14404",
"numberFix": "14404"
},
{
"brand": "Jurid",
"number": "562040J",
"numberFix": "562040J"
},
.........................
{
"brand": "Zimmermann",
"number": "100 1233 20",
"numberFix": "100123320"
}
]
}
Поиск
Вторая по важности задача для разработчика интернет-магазина автозапчастей — создание качественного поиска по артикулу товара с учетом возможных аналогов, особенностей номеров деталей разных брендов и так далее.
В сегменте продажи автозапчастей есть целый ряд нюансов, которые усложняют создание интернет-магазинов для разработчиков, не погруженных в эту область. Особенности нумерации, штрихкоды EAN-13, альтернативные и короткие номера деталей — для того, чтобы разобраться во всем этом нужно потратить большое количество времени.
Также создание поискового движка интернет-магазина автозапчастей предполагает решение непростых задач по обновлению прайс-листов. При этом поиск, качественно работающий с прайсами в 5000 позиций вовсе не обязательно сможет обработать документ, включающий 600 тысяч позиций.
С помощью нашего API разработчики могут быстро реализовывать качественный поиск, избегая распространенных ошибок (за 10 лет работы мы наступили на множество грабель и придумали способы их обхода).
Интерфейс API ABCP позволяет осуществлять операции поиска разной степени сложности.
Например так выглядит поисковый запрос для поиска детали по номеру:
http://api.demo.abcp.ru/search/articles/?userlogin=username&userpsw=md5pass&number=01089&brand=Febi
Ответ на подобный запрос может выглядеть как-то так:
[
{
"brand": "Hepu",
"articleCode": "P999",
"articleCodeFix": "P999",
"articleId": "2854918",
"description": "Антифриз [синий] 1,5л.",
"availability": "-1",
"deliveryPeriod": 3,
"price": 231,
"weight": "0"
},
{
"brand": "Febi",
"articleCode": "01089",
"articleCodeFix": "01089",
"articleId": "37367",
"description": "Антифриз 1.5 л синий",
"availability": "1943",
"deliveryPeriod": 3,
"price": 233,
"weight": "1.76"
},
{
"brand": "Vaico Vemo",
"articleCode": "V600020",
"articleCodeFix": "V600020",
"articleId": "4144961",
"description": "Антифриз g-11 1.5л. концентрат",
"availability": "-2",
"deliveryPeriod": 3,
"price": 235,
"weight": "0"
}
]
В полях ответа передается информация о бренде, коде товара, его описание, данные по наличию на складе, сроке поставки (в часах), стоимости и весе. В примере выше запрос вернул не только описание исходного товара, но и его возможную замену.
Более подробное описание API и, в том числе, возможностей по поиску, представлено на специальной вики-странице.
Добавление каталога TecDoc на свой сайт
Исторически сложилось так, что каталог для подбора автозапчастей TecDoc является крайне популярным инструментом для поиска нужных деталей. Мы считаем, что этот инструмент довольно сильно переоценен, однако с его востребованностью нельзя не считаться. Именно поэтому мы создали удобный способ установки каталога TecDoc на внешние сайты.
Информация в каталоге представляется в виде дерева — пользователь кликает на марку автомобиля, выбирает конкретную модель, затем нужный агрегат и таким образом находит деталь.
Обычно TecDoc в Рунете используют контрафактно, для чего разработчикам приходится не только приобретать базу данных (она занимает несколько DVD-дисков), но и писать большое количество «костылей» для конвертации информации из DVD в MySQL (или платить умельцам-конвертаторам $50-$200 за базу). Размещение этого гигантского объёма данных влечет дополнительные затраты.
Кроме того, каждый квартал происходит обновление TecDoc, меняются структуры таблиц и форматы данных, что еще больше усложняет поддержку нелицензионных версий сервиса в актуальном состоянии. Иначе как адом для разработчика такую ситуацию назвать сложно.
Чтобы облегчить жизнь разработчикам, мы создали сайт tecdoc.abcp.ru — на нем можно взять исходные коды для установки лицензионной версии каталога TecDoc на внешние сайты (база постоянно обновляется). Для нестандартного использования данных каталога разработчикам доступны API-функции, набор которых мы постепенно увеличиваем.
Мы — не единственные официальные реселлеры каталога TecDoc на рынке стран СНГ, но единственные, кто сумел снизить себестоимость использования официальной версии всего до 2000 рублей в месяц.
Подробнее про работу с каталогом TecDoc мы расскажем в одном из следующих топиков.
Как еще улучшить сайт по поиску автозапчастей
Помимо собственно API есть и другие методы, которые позволяют разработчикам сайтов для поиска и покупки автозапчастей предоставлять клиентам сервис более высокого уровня. Одним из таких инструментов являются разнообразные полезные виджеты.
Поиск автозапчастей по VIN-коду
Как мы уже рассказывали в нашем прошлом топике — поиск нужной автозапчасти в интернете является крайне сложным делом. Разобраться в каталогах производителей (которые чаще всего не являются хорошими примерами информативности) даже имея VIN-код детали — нетривиальная задача.
На сайте поисковика автозапчастей 4mycar.ru мы создали специальную кнопку и «скрывающиеся» за ней автоэксперты подберут нужную запчасть по VIN-коду.
Работает эта схема с помощью специального сервиса для удаленного подбора автозапчастей Vinqu.com. Владельцы сайтов автомобильной тематики могут установить на свои ресурсы специальный виджет, а автоэксперты — поучаствовать в поиске деталей для посетителей. В результате магазины и эксперты зарабатывают деньги, а пользователи находит нужные им запчасти.
Помимо этого, мы создали виджет для записи в автосервис в режиме онлайн — владельцы подобных компаний могут разместить его код на сайте. Автолюбители смогут не только записаться на прием, но и получать SMS-напоминания о дате техобслуживания.
На сегодня все, спасибо за внимание! В следующих топиках мы расскажем об инфраструктуре нашего поисковика автозапчастей 4mycar.ru, создании сервиса «Биржа VIN-запросов» и том, как наша служба техподдержки справилась с 60 тысячами тикетов за 5 лет работы.
Автор: Dmitriy002