Функция articles/info используется для получения списка кроссов, списка доступных изображений товара и некоторых свойств (масса, описание и т.д.). Набор свойств зависит от товара. Некоторые товары могут не иметь изображений.

Получение карточки товара

Операция: articles/info
Метод: GET

Возвращает данные по указанному в параметрах товару.

Параметры запроса

ПараметрОписание
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. Это же значение используется по умолчанию

Пример запроса

http://abcp.ru/articles/info?userlogin=username&userpsw=md5pass&brand=Nokian&number=TS31671&format=bnpich

Метод возвращает массив объектов вида:
ПараметрОписание
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/
Функция search/brands используется для получения списка брендов для указанного номера (артикула). Обычно используется на первом этапе алгоритма поиска, когда пользователь выполняет поиск запчасти по номеру, которому соответствуют разные бренды.

Поиск брендов по номеру

Операция: search/brands
Метод: GET

Осуществляет поиск по номеру детали и возвращает массив найденных брендов, имеющих деталь с искомым номером. Аналог этапа выбора бренда на сайте.

Параметры запроса

ПараметрОписание
userlogin Имя пользователя в системе
userpsw md5-хэш пароля пользователя в системе
number Искомый номер детали
useOnlineStocks Флаг "использовать online-склады". Может принимать значения 0 или 1 (не использовать и использовать соответственно; по умолчанию - 0). Если выключено, то в выдачу не будут попадать детали с online-складов, что позволит увеличить скорость ответа.

Пример запроса

http://abcp.ru/search/brands/?userlogin=username&userpsw=md5pass&number=403730

Поля ответа:
ПолеОписание
brand Имя производителя
number Искомый номер детали
numberFix "Очищенный" код детали, содержащий только алфавитные и цифровые символы
description Описание детали
availability Флаг "Имеется ли в наличии"
Функция articles/brands возвращает список всех брендов зарегистрированных с их синонимами. Функцию необходимо вызвать только один раз, после чего синхронизировать названия брендов в своей системе с этим эталонным справочником.

Получение справочника брендов

Операция: articles/brands
Метод: GET

Возвращает список всех брендов зарегистрированных в системе с их синонимами.

Параметры запроса

ПараметрОписание
userlogin Имя пользователя в системе
userpsw md5-хэш пароля пользователя в системе

Пример запроса

http://abcp.ru/articles/brands?userlogin=username&userpsw=md5pass

Метод возвращает массив объектов вида:
ПараметрОписание
name Имя бренда
aliases Массив, содержащий список синонимов текущего бренда
Функция search/tips возвращает набор пар бренд/номер для организации подсказки пользователю по первым набранным символам. Функция даёт подсказки по наиболее часто искомым товарам.

Подсказки по поиску

Операция: search/tips
Метод: GET

Возвращает по части номера массив подходящих пар бренд - номер.

Параметры запроса

ПараметрОписание
userlogin Имя пользователя в системе
userpsw md5-хэш пароля пользователя в системе
number Номер (часть номера) детали

Пример запроса

http://abcp.ru/search/tips?userlogin=username&userpsw=md5pass&number=А113094

Метод возвращает массив объектов вида:
ПолеОписание
brand Имя производителя
number Номер детали (код производителя)
rating Значение рейтинга
Функция advices/batch реализует механизм "с этим товаром покупают" на основе статистики покупки комплектов товаров. Типичный пример использования функции: покупатель выбрал масляный фильтр - система рекомендует остальные товары из набора для ТО. Или покупатель выбрал левый передний амортизатор, система покажет правый передний. Дополнительно можно передать параметр limit (рекомендуется = 5), ограничивающий выдачу рекомендаций. Параметры товаров передаются в виде JSON-массива articles из объектов с полями 'brand' и 'number'. При использовании этой операции необходимо передавать заголовок Content-Type: application/json, а параметры передавать в теле запроса.

Поиск сопутствующих товаров

Операция: advices
Метод: GET
Реализует механизм "с этим товаром покупают" по запрашиваемой паре "Бренд-номер". Дополнительно можно передать параметр limit (рекомендуется=5), ограничивающий выдачу рекомендаций.

Параметры запроса

Параметр Описание
userlogin Имя пользователя в системе
userpsw md5-хэш пароля пользователя в системе
brand Имя производителя
number Номер детали
limit необязательный параметр, ограничивающий выдачу

Пример запроса

http://abcp.ru/advices/?userlogin=username&userpsw=md5pass&brand=MB&number=A2058350147&limit=5

Поля ответа

Метод возвращает массив объектов вида:
Поле Описание
brand Имя производителя
number Номер детали (код производителя)
total Количество заказов, в которых встречается данное сочетание товаров
Операция: advices/batch
Метод: POST

Реализует механизм "с этим товаром покупают" по нескольким товарам. Дополнительно можно передать параметр limit (рекомендуется=5), ограничивающий выдачу рекомендаций.Параметры товаров передаются в виде JSON-массива articles из объектов с полями 'brand' и 'number'.
При использовании этой операции НЕОБХОДИМО! передавать заголовок Content-Type: application/json, а параметры передавать в теле запроса.

Параметры запроса

Параметр Описание
userlogin Имя пользователя в системе
userpsw md5-хэш пароля пользователя в системе
articles массив объектов, содержащих brand и number
limit необязательный параметр, ограничивающий выдачу

Пример запроса

{"userlogin":"userlogin","userpsw":"userpsw","articles":[{"brand":"kyb","number":"331009"},{"brand":"Mobil","number":"152566"}],"limit":5}

Поля ответа

Метод возвращает массив объектов вида:
Поле Описание
brand Имя производителя
number Номер детали (код производителя)
advices Массив объектов с полями: brand - имя производителя, number - номер детали, total - количество заказов, в которых встречается данное сочетание товаров

Доступ к публичному API осуществляется посредством HTTP-запросов и реализован с использованием принципов REST. Базовым URI для веб-службы является:

http://имя.сайта.public.api.abcp.ru/

Обмен осуществляется в кодировке UTF-8.
Для отладки вы можете воспользоваться расширением Advanced REST Client для обозревателя Google Chrome.

Запрос

Запросы на получение и запись данных осуществляются с помощью HTTP-методов GET и POST соответственно. В структуре сервиса имеется понятие операции. Операция указывается в качестве пути в URL. Параметры передаются как строка запроса HTTP (GET) или данными POST. Большая часть операций исполняется от имени конкретного пользователя и требует идентификации с помощью параметров userlogin (имя пользователя в системе) и userpsw (md5-хэш пароля пользователя). Md5-хэш можно сгенерировать выполнением функции (большая часть языков программирования имеет данную функцию в своем арсенале), либо воспользоваться online-генератором (например, md5x). Каждая операция может иметь список дополнительных параметров, определяемых контекстом операции. Например, вызов операции "Поиск детали по номеру" может выглядеть следующим образом:

http://имя.сайта.public.api.abcp.ru/articles/info/?userlogin=***&userpsw=***&brand=Mercedes-Benz&number=A1130940048&format=bnphic&locale=ru_RU

При использовании метода 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 - получение эталонного справочника (несколько тысяч имён брендов с псевдонимами). Чтобы поиск работал успешно, Ваш справочник брендов необходимо синхронизировать с нашим.
2) articles/info - позволяет получить список кроссов (cross-reference) и информацию о товаре
3) search/brands - список известных системе брендов по заданному номеру
4) search/tips - поможет организовать подсказку клиенту при наборе номера

Рекомендуемый алгоритм поиска в вашем сервисе с участием встроенных api-функций

Первый этап поиска
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 секунд.

Мы уже набираем Ваш номер...