Работа с нашим API
Общее описание API
Для начала работы с API нужно скачать класс LinemediaAutoApiDriver, получить для него настройки и запросить у нас доступ для ip адреса вашего сервера.
Для подключения к серверу API используется класс LinemediaAutoApiDriver.
В нем настраиваем параметры подключения LINEMEDIA_AUTO_API_ID - ID в системе Linemedia Auto.
Теперь можно начать работу с API. Подключаем класс LinemediaAutoApiDriver и создаем его объект: $linemedia_auto_api = new LinemediaAutoApiDriver();
Метод query класса LinemediaAutoApiDriver с параметрами: название функции, аргументы функции, позволяет выполнять доступные функции api. API версии 0.1.0 поддерживает форматы передачи данных: serialized, json, xml.
Пример без параметров:
$result = $linemedia_auto_api ->query( 'getBrands2' , $data = array ()); |
Пример с параметрами:
$linemedia_auto_api ->query( 'getVehicleModels2' , $data = array ( 'brand_id' => '120' )); |
В данном примере мы вызываем функцию getBrands без параметров. В результате в переменной $result получаем массив данных:
Array ( [status] => ok [data] => Array ( [brands] => Array ( [ 0 ] => Array ( [manuId] => 609 [manuName] => AC ) [ 1 ] => Array ( [manuId] => 1505 [manuName] => ACURA ) [ 2 ] => Array ( [manuId] => 1480 [manuName] => AIXAM ) ) ) [spent_time] => 0.0561 ) |
Основные функции для формирования каталога:
Содержимое по меткам
Содержимое с указанными метками не найдено.
Получения брендов деталей.
Функция:
getDetailBrands()
Result:
Field |
Type |
Description |
brandNo |
int |
Номер бренда |
brandName |
string |
Название бренда |
Получение производителей авто.
Функция:
getBrands2()
Result:
Field |
Type |
Description |
manuId |
int |
Номер производителя |
manuName |
string |
Название производителя |
Получения списка моделей данного производителя.
Функция:
getVehicleModels2()
Result:
Field |
Type |
Description |
modelId |
int |
Номер производителя |
modelname |
string |
Название производителя |
yearOfConstrFrom |
date |
Дата начала производства в формате yyyymm |
yearOfConstrTo |
date |
Дата конца производства в формате yyyymm |
Request parametrs:
Name |
Type |
Description |
brand_id |
int |
Номер производителя |
Получение списка модификаций модели.
Функция:
getModelVariants2()
Result:
Field |
Type |
Description |
carId |
int |
Номер авто |
carName |
string |
Название модификации |
firstCountry |
string |
страна |
Request parametrs:
Name |
Type |
Description |
brand_id |
int |
Номер производителя |
model_id |
int |
Номер модели |
Получение групп деталей.
Функция:
getListOfGroups()
Result:
Field |
Type |
Description |
parentNodeId |
int |
Идентификатор группы родителя |
hasChilds |
boolean |
Наличие потомков |
assemblyGroupName |
string |
Название группы |
assemblyGroupNodeId |
int |
Идентификатор группы |
Request parametrs:
Name |
Type |
Description |
type_id |
int |
Номер авто |
group_id |
int |
Идентификатор группы (null = root node, 0 = all nodes) |
Получение списка деталей данной группы.
Функция:
getDetails2()
Result:
Field |
Type |
Description |
articleLinlId |
int |
Идентификатор артикула |
brandNo |
int |
Номер бренда |
brandName |
string |
Название бренда |
articleId |
int |
Идентификатор артикула |
sortNo |
int |
Номер сортировки |
articleNo |
string |
Артикул детали |
genericArticleName |
string |
Название |
genericArticleId |
int |
Идентификатор группы |
Request parametrs:
Name |
Type |
Description |
type_id |
int |
Номер авто |
group_id |
int |
Идентификатор группы |
Получение информации о детали.
Функция:
getDetailInformation()
Request parametrs:
Name |
Type |
Description |
article_id |
int |
Артикул детали |
article_link_id |
int |
Артикул детали |
Получение картинки детали.
Функция:
getPictureUrlByDocId()
Result:
Field |
Type |
Description |
img |
string |
Url картинки детали |
Request parametrs:
Name |
Type |
Description |
doc_id |
int |
Идентификатор документа детали |
Поиск аналогов для запчастей
Получение аналогов по артикулу.
Функция:
getAnalogs2Multiple()
Result:
Field |
Type |
Description |
catalog |
boolean |
Если true — вернулись каталоги, false - аналоги |
catalogs |
array |
Массив с каталогами |
parts |
array |
Массив с аналогами |
Request parametrs:
Name |
Type |
Description |
art |
string |
Артикул товара |
genericArticleId |
int |
Id для уточнения каталога |
Примечание: запрос на поиск аналогов делается одним артикулом, если для данного артикула возвращаются каталоги, то второй запрос идет уже с двумя параметрами art и genericArticleId.
Эта функция вызывается с парамтром art, в котором передается артикул детали, функция возвращает аналоги к запрашиваемой детали, однако если в базе текдока есть несколько деталей с таким артикулом, то эта функция возвращает детали с запрашиваемым артикулом. Из этих деталей нужно выбрать одну и вызвать эту же функцию только уже с двумя параметрами: артикулом и genericArticleId - это идентификатор выбранной детали, и по этой паре параметров можно получить аналоги. Если деталь с таким артикулом одна в базе, то функция сразу возвращает аналоги. Аналоги включают в себя аналоги текдока, оригинальные номера запрашивоемой детали и аналоги из МонгоДБ. Монго ДБ - это наша база кроссов.
Вызов любой ф-ции из низкоуровнего API текдок http://webservicepilot.tecdoc.net/pegasus-2-0/doc/InterfaceCatService.PDF
Метод toTecdoc
Параметры array('function'=>'TecdocFunctionName', 'parameter1'=>'...', 'parameter2'=>'...')
Пример вызова ф-ции с параметрами LongList:
array(
'function'=>'getDirectArticlesByIds2',
'articleId' => array('empty' => false , 'array' => array(222051)),
'attributs' => true,
'documents' => true,
'documentsData' => true,
'immediateAttributs' => true,
'immediateInfo' => true,
'info' => false,
'oeNumbers' => true,
'priceDate' => null,
'replacedByNumbers' => true,
'replacedNumbers' => true,
'usageNumbers' => true,
'prices' => false,
'eanNumbers' => true,
'mainArticles' => true,
'normalAustauschPrice'=> false
)
Доступ к вебсервису проценки
Для доступа к вебсервису проценки необходимо иметь активный логин на сайте, который будет выступать поставщиком. Для получения логина и пароля вы можете самостоятельно зарегистрироваться на сайте, либо обратиться к администрации ресурса.
Логин и пароль передаются в запросе к вебсервису с помощью стандартной http basic авторизации.
Формат запроса
Запрос и его параметры передаются методом GET по протоколу HTTP. Логин и пароль передаются с помощью стандартной http basic авторизации.
Возможные параметры запроса:
название параметра | тип | обязательный | комментарий |
---|---|---|---|
q | string | да | Поисковый артикул. Значение имеют только буквы и цифры, все остальные символы можно удалять при формировании запроса. |
part_id | int | нет | уникальный внутренний id детали. На данный момент это поле зарезервировано. |
brand_title | string | нет | название бренда. Если не указано, то возможен ответ типа "уточнение бренда", если запрошенный артикул найден в нескольких каталогах |
sort | string | нет | поле ответа для сортировки. По умолчанию "price_src". |
order | string | нет | порядок сортировки. Допустимые значение 'asc' и 'desc'. По умолчанию – 'asc' |
extra | array | нет | дополнительные данные, которые были присланы в ответе ранее. Служат для точного нахождения запрошенного ценового предложения. |
Пример запроса (login=client, password=clientclient):
GET /bitrix/admin/linemedia.auto_search.php?q=gdb1550 HTTP/1.1
Host: auto.x.linemedia.ru
Authorization: Basic Y2xpZW50OmNsaWVudGNsaWVudA==
Connection: close
Формат ответа
В случае успешной авторизации сервер формирует ответв формате json. Возможно два варианта ответа: уточнение бренда и детали с проценкой.
Уточнение бренда(список каталогов).
В возвращаемом json-объекте присутствует поле catalogs. Его значение – массив, с ключами, равными названию бренда, а значение содержит массив со следующими данными:
ключ | пример значения | примечание |
---|---|---|
article | 6002 | артикул детали |
brand_title | ATOY | название бренда |
title | Пружина подвески задн.kadett c -79t |
Название детали или её краткое описание. Значение может быть пустым |
Остальные поля являются служебными, их использование в настоящий момент настоятельно не рекомендуется.
Пример ответа:
{"catalogs":
{
"ATOY": {
"article":"6002",
"brand_title":"ATOY",
"title":"Пружина подвески задн.kadett c -79t",
"source":"mikadoparts_333",
"extra":
{"mikadopartsbt":"ATOY","wf_b":null},"sources":["mikadoparts_333"]
}
}
}
Проценка деталей
Ответ в формате json. По ключу parts записан массив типов деталей в ответе, ключи которого имеют вид ANALOG_TYPE_X, а значение – массив процененных деталей.
Значение X в ключах ANALOG_TYPE_X может принимать следующие значения:
значение Х | значение |
---|---|
N | Искомый артикул |
0 | Неоригинальные аналоги |
1 | OEM аналоги |
2 | Продажные номера |
3 | Сравнительные номера |
4 | Замены |
5 | Замены устаревшего артикула |
6 | EAN |
10 | Другое |
Каждый элемент – массив со следующими значениями:
ключ | пример значения | примечание |
---|---|---|
id | 13033780 | уникальный номер детали на сайте |
title | gdb1550 | очищенный артикул детали (только буквы и цифры) |
article | gdb-1550 | оригинальный артикул |
brand_title | TRW | название производителя |
price_src | 3780 | цена |
quantity | 40.00 | количество на складе |
delivery | 0 | строка со сроком доставки (если не 0, то с указанием единицы измерения "ч"/"д". Возможно наличие знака ≈ перед числом в случае если доставка равна нецелому числу суток). |
modified | 2013-05-28 18:13:47 | дата обновления данных о детали (формат в примере) |
weight | 0 | вес детали. Не ноль только в случае, если сайт загружает прайслисты с указанным весом |
Пример ответа:
{"parts":{
"analog_type_N":[
{
"id":"13033780",
"title":"gdb1550",
"article":"gdb-1550",
"brand_title":"TRW",
"price_src":3780,
"quantity":"40.00",
"delivery":0,
"modified":"2013-05-28 18:13:47",
"weight":0
}
]
}
}