Главная → Блог → Поиск запчастей по VIN-коду: как привязать каталог интернет-магазина к автомобилю клиента
ИнтеграцииПоиск запчастей по VIN-коду: как привязать каталог интернет-магазина к автомобилю клиента

Чтобы привязать каталог запчастей к VIN клиента, магазин на этапе ввода VIN или госномера вызывает три метода: /decode (модель, поколение, кузов, двигатель, коробка, привод, годы выпуска), /autopark (номер двигателя) и при необходимости /vin2gos или /gos2vin для перехода между госномером и VIN. Полученные атрибуты работают как фильтр в вашем каталоге (OEM, TecDoc или собственная база), а масло подбирается по двигателю и году. Стоит это от 0,8 до 8 рублей за запрос, оплата только за выполненную проверку.
Ниже - как это собрать так, чтобы поиск запчастей по VIN-коду работал в карточке товара, корзине и личном гараже, и где на этом пути обычно ломается логика.
Почему подбор по VIN снижает возвраты
Клиент выбирает в форме "Škoda Octavia, 2012" и получает список деталей. Проблема в том, что под это описание подходит три-четыре разных автомобиля. Рестайлинг посреди поколения меняет форму крепления фар и разъёмы. В одном поколении стоят бензиновые моторы 1,4 и 1,8 с разными фильтрами и ремнями, а коробка - механика или автомат - определяет набор прокладок и масло. Итог знакомый любому магазину: деталь "не села", возврат, доставка в обе стороны, недовольный клиент.
Применимость детали определяют конкретные атрибуты: двигатель (код и объём), привод, коробка, кузов, год и желательно месяц выпуска, иногда комплектация. По марке и модели всего этого не узнать. VIN, наоборот, шифрует нужное: именно из него расшифровка достаёт поколение, тип кузова, мотор, привод и годы выпуска модификации.
Встраивать подбор можно в три точки воронки:
- Карточка товара - плашка "подходит / не подходит к вашему автомобилю" после ввода VIN.
- Корзина - проверка перед оплатой: если в заказе деталь, не подходящая к сохранённой машине, показываем предупреждение.
- Гараж клиента - сохранённые автомобили, по которым каталог сразу фильтруется при входе.
Схема интеграции: от VIN до фильтра каталога
Последовательность простая:
- Клиент вводит VIN или госномер в поле поиска.
- Вы нормализуете ввод: верхний регистр, удаление пробелов, замена похожих кириллических букв на латиницу, проверка длины в 17 символов.
- Запрашиваете API расшифровки VIN (
GET /decode?vin=). - Сопоставляете полученные атрибуты с полями вашего каталога и применяете как фильтр.
Что берём из ответа: модель и поколение, тип кузова, двигатель, коробку, привод, годы выпуска, страну и завод сборки. Всё это превращается в атрибуты фильтра - у вас они, скорее всего, называются иначе, поэтому нужна таблица соответствий между нашими значениями и вашими справочниками (или кодами из TecDoc). Её делают один раз, а потом пополняют по мере появления новых значений, которые не нашлись.
Ключевое поле здесь full. Если full=1, определена единственная модификация, и фильтр можно применять жёстко: показываем только то, что подходит этой машине. Если full не равен 1, под VIN подходит несколько вариантов, и делать вид, что всё однозначно, нельзя. Задайте клиенту один уточняющий вопрос: какой у вас двигатель, какая коробка. Два-три варианта в выпадающем списке закрывают большинство случаев. Выбор клиента сохраняйте вместе с VIN.
Теперь про деньги. Расшифровка одного VIN не меняется, поэтому результат нужно хранить у себя: таблица "VIN - атрибуты - дата запроса". Повторный ввод того же VIN, будь то другой клиент или тот же человек через месяц, обслуживается из вашей базы без нового платного запроса. Подробнее о том, как раскладывать расшифровку по полям, мы писали в материале про автозаполнение карточки авто по VIN.
Поиск запчастей по госномеру
VIN знает не каждый. Он на кузове, в СТС и в ПТС, но клиент в момент заказа фильтра часто сидит без документов, зато номер своей машины помнит наизусть. Поэтому в поле поиска стоит принимать и госномер.
Метод VIN по госномеру (GET /gos2vin?plate=) возвращает VIN, номер кузова или шасси, данные СТС, марку, модель, год и мощность. Дальше всё идёт по уже описанной схеме: полученный VIN отправляется в /decode. Запрос стоит 8 ₽, поэтому ответ тоже кладём в кэш, ключом служит госномер.
Обратная задача решается методом госномер по VIN (GET /vin2gos?vin=, 6 ₽). Она нужна реже, например когда в гараже хранится только VIN, а для отображения в личном кабинете или при самовывозе удобнее показать номер.
Что стоит предупредить в интерфейсе. Госномер - это запись в базе ГИБДД, и если машину недавно сменила собственника или номер, данные могут отличаться от реальных. Покажите клиенту найденные марку, модель и год с вопросом "Это ваш автомобиль?" до применения фильтра. И оставьте запасной путь: ручной выбор марки, модели и модификации, если номер не нашёлся.
Если нужна лёгкая карточка до полного расчёта, подойдут краткие данные ТС (/brief, 1 ₽): марка, модель, год, мощность, тип и объём двигателя, руль, масса. Её удобно показать сразу после ввода, а полную расшифровку запрашивать, когда клиент реально переходит к подбору. О связке госномера, VIN и мотора в одной карточке рассказано в статье про VIN по госномеру и номер двигателя в CRM.
Подбор масла по VIN
С маслом ошибаться дорого, а подбор по "марке и году" особенно ненадёжен: у одной модели бывает бензиновый атмосферник, турбомотор и дизель, и у каждого свои допуски и вязкость. Нужные данные: двигатель, объём, тип топлива, мощность и год выпуска. Они приходят из /decode и /brief.
Для точной идентификации мотора добавьте метод номер двигателя по VIN (GET /autopark?vin=, также по номеру кузова или шасси). Ответ приходит за доли секунды, а платным он становится только если номер найден. Если нет - ничего не списывается.
Дальше работает ваша часть. У магазина должна быть таблица соответствий: двигатель (код или сочетание объём + тип + мощность + период) - допуски, вязкость, объём заправки. Получив атрибуты мотора, вы ищете строку в этой таблице и подставляете рекомендацию: "5W-30, допуск такой-то, около N литров". Масляный фильтр и прокладку подбираете тем же способом.
Важная оговорка: API не отдаёт допуски масла, объёмы заправки и артикулы. Эти данные берутся из вашей справочной базы или от производителя. Мы даём точную идентификацию автомобиля и мотора, а вы по ней находите нужные строки в своих справочниках. Если строки нет, показывайте не угаданную рекомендацию, а предложение уточнить у менеджера.
Примеры запросов и обработка ответов
Базовый запрос:
curl -H "Authorization: Bearer ВАШ_ТОКЕН" \
"https://api.avtovincod.ru/decode?vin=X7TEST00000000001"
Схема цепочки на Python (упрощённо):
import requests
API = "https://api.avtovincod.ru"
H = {"Authorization": "Bearer ВАШ_ТОКЕН"}
def get_car(vin):
cached = db.get_car(vin)
if cached:
return cached
d = requests.get(f"{API}/decode", params={"vin": vin}, headers=H).json()
if d.get("success") != 1:
return None # не найден, ничего не списано
car = {"vin": vin, "decode": d, "full": d.get("full")}
e = requests.get(f"{API}/autopark", params={"vin": vin}, headers=H).json()
if e.get("success") == 1:
car["engine_number"] = e.get("engineNumber")
db.save_car(car)
return car
Названия полей в коде приведены для иллюстрации, точные имена смотрите в документации API. Затем вы прогоняете decode через свою таблицу соответствий и формируете фильтр.
Для проверки без пополнения используйте тестовые значения: VIN X7TEST00000000001 и госномер Т000ТТ00. Любой метод отвечает образцом своей схемы бесплатно, в ответе стоит "testMode": true. Токен при этом нужен. Тестовые ответы удобно прогнать через весь путь до фильтра каталога, не потратив ни рубля.
Ошибки. Ответ с success: 0 означает, что проверка не выполнена или данных нет, и он бесплатный. Для "не найденного VIN" заведите отдельную ветку: сообщение "Не удалось определить автомобиль по этому VIN", проверка на опечатку и переход к ручному выбору модификации. Не стоит блокировать клиента, если API не ответил: в такой ситуации корзина должна продолжать работать без проверки применимости, с пометкой "уточните у менеджера".
Учёт затрат. В каждом ответе, записанном в историю запросов, есть блок billing (charged, currency, balance, requestId) и заголовки X-Charged, X-Balance, X-Request-Id. Сохраняйте charged вместе с заказом, и вы всегда увидите, сколько стоил подбор для каждой покупки. Нет блока - запрос не списан.
Дополнительные сценарии для магазина
Когда автомобиль привязан к клиенту, на этом можно построить больше, чем фильтр.
Что обычно меняют. Метод плюсы и минусы модели (/pros-cons, 0,8 ₽) возвращает характеристику модели: надёжность, кузов и коррозию, ликвидность, списки сильных и слабых сторон (prosList, consList). На странице гаража это превращается в блок "типовые слабые места модели" и подборку расходников под них.
Отзывы производителя. По методу отзывные кампании (/recalls, 0,8 ₽) видно, попадала ли машина под отзыв, какая причина и какие работы предусмотрены. Это честное предупреждение клиенту и повод предложить связанные детали и записать его на установку.
Напоминания о ТО. Сервисная история (/service, 26 ₽) показывает даты, города и виды работ. Метод дорогой, поэтому применять его стоит выборочно: для клиентов с высоким чеком или подписки на персональные напоминания, когда по истории понятно, что замена ремня или тормозных жидкостей пора.
Гараж и повторные продажи. Клиент один раз вводит автомобиль, вы сохраняете VIN и расшифровку, а дальше каждое возвращение на сайт начинается с уже отфильтрованного каталога. Ни одного платного запроса на повторный визит.
Сколько это стоит и как подключиться
Базовые цены за запрос: /decode - 1,6 ₽, /brief - 1 ₽, /autopark - 0,8 ₽, /gos2vin - 8 ₽, /vin2gos - 6 ₽.
Пример расчёта на один заказ. Клиент вводит VIN: /decode 1,6 ₽ + /autopark 0,8 ₽ = 2,4 ₽. Если он ввёл госномер, добавляется /gos2vin: 8 + 1,6 + 0,8 = 10,4 ₽. Для масла и деталей двигателя это вся стоимость идентификации автомобиля, и она заметно меньше цены одного возврата с логистикой.
Как не тратить лишнего:
- вызывайте API только в момент ввода VIN или госномера, а не при каждом открытии страницы;
- кэшируйте ответ по VIN и по госномеру;
- для первого экрана берите
/brief, полную расшифровку запрашивайте при переходе к подбору; - не запрашивайте
/autopark, если для выбранной категории товаров номер двигателя не нужен.
Подключение самостоятельное: регистрация в кабинете, токен выдаётся сразу, пополнение от 100 ₽ банковской картой или по счёту для юрлиц, без договора. Бесплатного пробного периода нет, но тестовые значения работают без оплаты. Для крупных магазинов и маркетплейсов запчастей есть формат сотрудничества и white-label.
Частые вопросы
Как работает поиск запчастей по VIN коду в интернет-магазине?
Клиент вводит VIN, магазин отправляет его в /decode и получает модель, поколение, кузов, двигатель, коробку, привод и годы выпуска. Эти атрибуты применяются как фильтр в вашем каталоге (OEM, TecDoc или собственная база), и клиент видит только подходящие детали.
Можно ли подобрать запчасти по госномеру без VIN?
Да. Метод /gos2vin по госномеру возвращает VIN, номер кузова или шасси, данные СТС, марку, модель, год и мощность. Дальше этот VIN отправляется в /decode, и подбор идёт по той же схеме. Стоит показать клиенту найденные марку и модель для подтверждения и оставить ручной выбор как запасной путь.
Как определить подходящее масло по VIN автомобиля?
По VIN определяются двигатель, объём, тип, мощность и год (поля /decode и /brief), а номер двигателя можно получить через /autopark. Допуски, вязкость и объём заправки подставляются из вашей справочной таблицы "двигатель - рекомендации". API эти данные не отдаёт, он идентифицирует автомобиль и мотор.
Что делать, если расшифровка VIN не определила единственную модификацию?
Если поле full не равно 1, под VIN подходит несколько вариантов. Задайте клиенту уточняющий вопрос: двигатель, коробка, привод. Выбор сохраните вместе с VIN и применяйте как фильтр. До уточнения покажите детали с пометкой, что применимость требует подтверждения.
Отдаёт ли API каталог запчастей или артикулы?
Нет. API возвращает данные об автомобиле: модель, поколение, кузов, двигатель, коробку, привод, годы выпуска, номер двигателя. Артикулы, применимость и цены остаются в вашем каталоге или в TecDoc, а наши данные служат для точного фильтра.
Как получить номер двигателя по VIN для точного подбора?
Вызовите метод /autopark?vin= (также доступен поиск по номеру кузова или шасси). Ответ приходит за доли секунды, стоимость 0,8 ₽, причём списание происходит только если номер найден.
Сколько стоит один подбор по VIN для магазина?
Расшифровка стоит 1,6 ₽, номер двигателя 0,8 ₽, итого 2,4 ₽ при вводе VIN. Если клиент вводит госномер, добавляется /gos2vin за 8 ₽, итого 10,4 ₽. Повторные обращения к тому же VIN обслуживаются из вашего кэша без новых списаний.
Как протестировать интеграцию бесплатно?
Используйте тестовые значения: VIN X7TEST00000000001 и госномер Т000ТТ00. Любой метод отвечает образцом своей схемы без списания, в ответе есть поле testMode: true. Нужен только токен из личного кабинета.
Проверка автомобилей через API
Без договора и долгих согласований: пополните баланс от 100 ₽ и проверяйте реальные машины. Тестовые значения бесплатно, документация с примерами на популярных языках.
Получить токен Документация API

