Возвращает данные по указанному в параметрах товару.
Параметр | Описание |
---|---|
userlogin | Имя пользователя |
userpsw | md5-хэш пароля пользователя |
brand | Имя производителя |
number | Код детали |
format | Формат ответа. Допустимые значения: [b][n][p][c][h][m][t][i] - формат вывода информации (b - бренд, n - номер, p - свойства, c - кроссы, h - свойства с учетом локали, m - информация о модели, t - вывод типа кроссов с учетом направления, i - изображения запчасти) |
cross_image | При передаче cross_image=1 и [i] в параметре format в ответе операции будут выводиться изображения кроссов |
locale | Локаль. Задается в формате language[_territory], например, ru_RU. Это же значение используется по умолчанию |
Параметр | Описание |
---|---|
brand | Имя производителя |
number | Искомый номер детали |
outer_number | Номер детали, содержащий пробелы, слэши и другие символы |
properties | Массив свойств детали: описание, вес, объем и т.п. (при включенном формате p) |
crosses | Массив информации об аналогах (при включенном формате c). Пример: А - запрашиваемая деталь crossType = 1 - замена (replacement), деталь B заменяет деталь A crossType = 2 - входит в комплект (unclude), деталь B является частью детали A crossType = 3 - является частью комплекта (part of), деталь A является частью детали B crossType = 4 - односторонняя замена, деталь A заменяется на деталь B crossType = 5 - односторонняя замена, деталь A является заменой для детали B |
images | Массив изображений товара (при включенном формате i). В массиве указаны имена файлов расположенных по адресу https://pubimg.nodacdn.net/images/ |
Осуществляет поиск по номеру детали и возвращает массив найденных брендов, имеющих деталь с искомым номером. Аналог этапа выбора бренда на сайте.
Параметр | Описание |
---|---|
userlogin | Имя пользователя в системе |
userpsw | md5-хэш пароля пользователя в системе |
number | Искомый номер детали |
useOnlineStocks | Флаг "использовать online-склады". Может принимать значения 0 или 1 (не использовать и использовать соответственно; по умолчанию - 0). Если выключено, то в выдачу не будут попадать детали с online-складов, что позволит увеличить скорость ответа. |
Поле | Описание |
---|---|
brand | Имя производителя |
number | Искомый номер детали |
numberFix | "Очищенный" код детали, содержащий только алфавитные и цифровые символы |
description | Описание детали |
availability | Флаг "Имеется ли в наличии" |
Возвращает список всех брендов зарегистрированных в системе с их синонимами.
Параметр | Описание |
---|---|
userlogin | Имя пользователя в системе |
userpsw | md5-хэш пароля пользователя в системе |
Параметр | Описание |
---|---|
name | Имя бренда |
aliases | Массив, содержащий список синонимов текущего бренда |
Возвращает по части номера массив подходящих пар бренд - номер.
Параметр | Описание |
---|---|
userlogin | Имя пользователя в системе |
userpsw | md5-хэш пароля пользователя в системе |
number | Номер (часть номера) детали |
Поле | Описание |
---|---|
brand | Имя производителя |
number | Номер детали (код производителя) |
rating | Значение рейтинга |
Параметр | Описание |
---|---|
userlogin | Имя пользователя в системе |
userpsw | md5-хэш пароля пользователя в системе |
brand | Имя производителя |
number | Номер детали |
limit | необязательный параметр, ограничивающий выдачу |
Поле | Описание |
---|---|
brand | Имя производителя |
number | Номер детали (код производителя) |
total | Количество заказов, в которых встречается данное сочетание товаров |
Реализует механизм "с этим товаром покупают" по нескольким товарам. Дополнительно можно передать параметр limit (рекомендуется=5), ограничивающий выдачу рекомендаций.Параметры товаров передаются в виде JSON-массива articles из объектов с полями 'brand' и 'number'.
При использовании этой операции НЕОБХОДИМО! передавать заголовок Content-Type: application/json, а параметры передавать в теле запроса.
Параметр | Описание |
---|---|
userlogin | Имя пользователя в системе |
userpsw | md5-хэш пароля пользователя в системе |
articles | массив объектов, содержащих brand и number |
limit | необязательный параметр, ограничивающий выдачу |
Поле | Описание |
---|---|
brand | Имя производителя |
number | Номер детали (код производителя) |
advices | Массив объектов с полями: brand - имя производителя, number - номер детали, total - количество заказов, в которых встречается данное сочетание товаров |
Доступ к публичному API осуществляется посредством HTTP-запросов и реализован с использованием принципов REST. Базовым URI для веб-службы является:
Обмен осуществляется в кодировке UTF-8.
Для отладки вы можете воспользоваться расширением Advanced REST Client для обозревателя Google Chrome.
Запросы на получение и запись данных осуществляются с помощью HTTP-методов GET и POST соответственно. В структуре сервиса имеется понятие операции. Операция указывается в качестве пути в URL. Параметры передаются как строка запроса HTTP (GET) или данными POST. Большая часть операций исполняется от имени конкретного пользователя и требует идентификации с помощью параметров userlogin (имя пользователя в системе) и userpsw (md5-хэш пароля пользователя). Md5-хэш можно сгенерировать выполнением функции (большая часть языков программирования имеет данную функцию в своем арсенале), либо воспользоваться online-генератором (например, md5x). Каждая операция может иметь список дополнительных параметров, определяемых контекстом операции. Например, вызов операции "Поиск детали по номеру" может выглядеть следующим образом:
При использовании метода POST в HTTP-заголовке Content-Type необходимо передать медиа-тип данных запроса application/x-www-form-urlencoded и соответственно с данным типом сформировать тело HTTP-запроса.
В HTTP-заголовке Accept необходимо передать ожидаемый тип данных ответа. В настоящее время реализован только тип JSON, и, в любом случае, будет возвращен он. Тем не менее, при разработке клиента, необходимо учитывать указанную особенность и передавать заголовок Accept со значением application/json.
В случае успешного исполнения операции, веб-служба вернет ответ с HTTP-кодом 200 и телом ответа в виде JSON. Формат ответа определяется каждой операцией. Пример результата успешного выполнения запроса:
{ "brand": "MERCEDES-BENZ", "number": "A1130940048", "short_number": "1130940048", "outer_number": "A 113 094 00 48", "properties": { "Масса, кг": "0.248", "Описание": "Датчик потока воздуха" }, "images": [ { "name": "00296fd49ba2b385e441829fc0b2913ea6.jpeg", "order": 0 } ], "is_skipped_image": false, "images_count": 1, "rating": 112, "rating_4mycar": 88, "crosses": [ { "brand": "ASHUKI", "number": "116617A", "numberFix": "116617A" }, { "brand": "BBT", "number": "AMS405", "numberFix": "AMS405" } ] }
Любой ответ с HTTP-кодом 400 и более является ошибочным, в теле содержит код ошибки и, как правило, текстовое сообщение описывающее причины возникшей ошибки также в виде JSON. Пример сообщения об ошибке:
{ "errorCode": 102, "errorMessage": "User Authentication Error" }
Для организации качественного поиска автозапчастей на Вашем ресурсе предлагается использовать четыре api-функции.
1) articles/brands - получение эталонного справочника (несколько тысяч имён брендов с псевдонимами). Чтобы поиск работал успешно, Ваш справочник брендов необходимо синхронизировать с нашим.Первый этап поиска | |
---|---|
1. Ваш клиент вводит код запчасти (назовём эту переменную NUMBER). По мере ввода номера клиенту можно отображать подсказку (функция search/tips) | Пример: клиент ввёл в поле поиска номер 01089 |
2. Когда клиент ввёл номер и запустил поиск - Вы в своей базе данных прайс-листов запрашиваете все товары с номерами NUMBER и результат формируется в массив BRANDS. | Пример: Вы нашли в своей базе товары FEBI 01089 и GLASER 01089. Результирующий массив BRANDS = {{FEBI 01089 Антифриз}, {GLASER 01089 Прокладка}} |
3. Вызывается api-функция search/brands с параметром NUMBER. Ответ добавляете в BRANDS (если там уже есть такие бренды, то не добавляете). | Пример: search/brands выдала: FEBI 01089, GLASER 01089 и BOSCH 01089. Массив BRANDS будет содержать {{FEBI 01089 Антифриз}, {GLASER 01089 Прокладка}, {BOSCH 01089 Распределитель}} |
4. Если в результате действий массив BRANDS пуст, то сообщаете клиенту "Ничего не найдено или вы ввели неправильный номер". Конец алгоритма. | --- |
5. Если в массиве BRANDS только один бренд, то переход к шагу 7 алгоритма. | --- |
6. Если мы здесь, то в массиве BRANDS несколько брендов. Это называется "первый этап поиска", от пользователя требуется уточнить, что именно он искал, выбрать бренд. | Пример: так выглядит первый этап поиска https://4mycar.ru/?pcode=01089. Далее пользователь кликает на конкретную деталь и происходит переход ко второму этапу поиска. |
Второй этап поиска | |
7. Выполняется вызов функции articles/info с передачей конкретного товара, выбранного пользователем на этапе 5 или 6. В результате возвращается массив пар (BRAND,NUMBER). Итого у вас есть массив товаров (BRAND,NUMBER), где первая пара - это запрошенный артикул, а все остальные пары - это его аналоги. | Пример: клиент кликнул на FEBI 01089 и функция articles/info для этого товара выдала Примерно такой массив: {{BMW 81229407454},{Diesel Technic 129101},..........,{HEPU P999}} |
8. Выполняете поиск в своих прайсах всех этих товаров и если что-то найдено, то выдаёте пользователю свою выдачу. | Пример: выполняете поиск по FEBI 01089 и {{BMW 81229407454},{Diesel Technic 129101},..........,{HEPU P999}} |
Обратите внимание на особенность формирования первого этапа поиска с использованием функции search/brands. Суть в том, что вы добавляете в первый этап поиска те товары, которые могут привести (напрямую или через кроссы) к товарам, которые вы можете продать. Разумеется, часть товаров потенциально может отсутствовать в вашем товарном предложении, поэтому клик по каким-нибудь строчкам может привести к пустому результату. И в случае малого покрытия спроса вашим ассортиментом - такие случаи могут привести к уходу покупателя. Чтобы этого избежать, вы можете "заглянуть в будущее" для каждого товара из первого этапа поиска заранее, чтобы узнать "будет ли там что-нибудь в наличии" и для строк без наличия - исключить их. С другой стороны, в этом случае вы потеряете возможность собирать неудовлетворённый спрос (если вы его собираете и используете) и создадите дополнительную нагрузку на вашу базу дополнительными запросами.
Введите номер, нажмите кнопку, и менеджер перезвонит вам в течение 30 секунд.
Мы уже набираем Ваш номер...