Возвращает данные по указанному в параметрах товару.
| Параметр | Описание |
|---|---|
| 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 | Искомый номер детали |
| Поле | Описание |
|---|---|
| brand | Имя производителя |
| number | Искомый номер детали |
| numberFix | "Очищенный" код детали, содержащий только алфавитные и цифровые символы |
| description | Описание детали |
Возвращает список всех брендов зарегистрированных в системе с их синонимами.
| Параметр | Описание |
|---|---|
| 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 осуществляется посредством HTTPS-запросов и реализован с использованием принципов REST. Базовым URI для веб-службы является:
Обмен осуществляется в кодировке UTF-8.
Для отладки вы можете воспользоваться расширением Advanced REST Client для обозревателя Google Chrome.
Запросы на получение и запись данных осуществляются с помощью HTTPS-методов GET и POST соответственно. В структуре сервиса имеется понятие операции. Операция указывается в качестве пути в URL. Параметры передаются как строка запроса HTTPS (GET) или данными POST. Большая часть операций исполняется от имени конкретного пользователя и требует идентификации с помощью параметров userlogin (имя пользователя в системе) и userpsw (md5-хэш пароля пользователя). Md5-хэш можно сгенерировать выполнением функции (большая часть языков программирования имеет данную функцию в своем арсенале), либо воспользоваться online-генератором (например, md5x). Каждая операция может иметь список дополнительных параметров, определяемых контекстом операции. Например, вызов операции "Поиск детали по номеру" может выглядеть следующим образом:
При использовании метода POST в HTTPS-заголовке Content-Type необходимо передать медиа-тип данных запроса application/x-www-form-urlencoded и соответственно с данным типом сформировать тело HTTPS-запроса.
В HTTPS-заголовке Accept необходимо передать ожидаемый тип данных ответа. В настоящее время реализован только тип JSON, и, в любом случае, будет возвращен он. Тем не менее, при разработке клиента, необходимо учитывать указанную особенность и передавать заголовок Accept со значением application/json.
В случае успешного исполнения операции, веб-служба вернет ответ с HTTPS-кодом 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"
}
]
}
Любой ответ с HTTPS-кодом 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 секунд.
Мы уже набираем Ваш номер...
Заказать обратный звонок можно только с 9:30 до 17:30 по московскому времени.
Задайте свой вопрос через форму, расположенную ниже, или попробуйте позже.