-
Документация API 2.0
Оглавление
Общие сведения
Документ содержит сведения о программном интерфейсе интернет-магазина компании «Автотрейд» sklad.autotrade.su (далее - «API»). Через API внешние приложения получают доступ к системе поиска интернет-магазина (в различных вариантах), оформлению заказов и информации о заказах.
WSDL (англ. Web Services Description Language) — это язык описания веб-сервисов, основанный на XML. На этом языке описывается модель сервиса: методы, входные и результирующие структуры данных, типы данных, сетевые адреса для обращения к сервису и т.п.
JSON (англ. JavaScriptObjectNotation) — текстовый формат обмена данными, основанный на JavaScript и обычно используемый именно с этим языком. Как и многие другие текстовые форматы, JSON легко читается людьми.
Взаимодействие с сервисом может осуществляться через SOAP протокол или посредством JSON путем отправки запроса на соответствующий адрес сервиса:
SOAP: http://api2.autotrade.su/?soap
JSON: http://api2.autotrade.su/?json
Внимание! При отправке запросов по протоколу HTTPS на данный момент могут возникать ошибки, в этом случае используйте протокол HTTP.
В случае использования SOAP способ отправки запросов зависит от SOAP-библиотеки. Если библиотека поддерживает WSDL, достаточно указать адрес WSDL-файла:
http://api2.autotrade.su/api.wsdl
Из него библиотека получает адрес API и выполняет необходимые действия для отправки запроса. Если библиотека не поддерживает WSDL, необходимо явно указывать адрес API - http://api2.autotrade.su/?soap.
Все методы вида getItemsByxxx возвращают путь к фотографии в поле photo, если фото нет, то возвращается пустая строка.
Все методы getItemsByxxx возвращают признаки:
наличия технической информации: techinfo_exists =>'Y'’ / ’N’;
наличия аналогов: cross_exists => 'Y' / ’N’;
наличия замен: subs_exists => 'Y' / ’N’, где «Y» - yes, «N» - нет
Механизм авторизации
При каждом вызове метода API производится проверка авторизации пользователя, с этой целью запрос должен содержать хэш, сформированный из пары логин-пароль пользователя по следующему алгоритму:
$hash = MD5(login.MD5(password).SALT),где
login – логин для авторизации на sklad.autotrade.su;
password – пароль для авторизации на sklad.autotrade.su;
SALT – строка длиной 10 символов, состоящая из букв латинского алфавита, цифр и знаков пунктуации, эта строка равна “1>6)/MI~{J”.
Для примера рассмотрим вызов метода GetStoragesList для получения списка разрешенных складов.
При использовании формата SOAP хэш передается в заголовке SOAP-запроса
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns1="API"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:SOAP-ENC=http://schemas.xmlsoap.org/soap/encoding/ SOAP-ENV:encoding>
При использовании формата JSON хэш передается в элементе auth_key JSON-массива:
data = {
"auth_key": "910c29400ebfed8c3baab935f3456f49",
"method": "getStoragesList"
}
Внимание! При отправке запроса в формате JSON перед {} необходимо добавить “data=”. Названия и значения параметров должны быть заключены в двойные кавычки, как в примере выше.
Пользовательские методы
GetStoragesList()
Возвращает массив разрешенных к просмотру складов для авторизованного пользователя, хранящийся в элементе storages массива сессии пользователя.
Входные параметры: нет
Результат:
массив вида:
{
{
'id'=>'1',
‘legend’=> ‘C1’
'name'=>'склад №1'
‘address’ => ‘адрес’
‘geo’ => ‘ширина. долгота’
‘widget’ => ‘код для генерации карты 2ГИС’
},
{
'id'=>'2',
‘legend’=> ‘C2’
'name'=>'склад №2'
‘address’ => ‘адрес’
‘geo’ => ‘ширина. долгота’
‘widget’ => ‘код для генерации карты 2ГИС’
}
,
...
}
Пример:
SOAP
Запрос
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns1="API"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encoding>
Ответ
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns1="API"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" SOAP-ENV:encoding>
JSON
Запрос
{
"auth_key": "910c29400ebfed8c3baab935f3456f49",
"method": "getStoragesList"
}
Ответ
[
"1": {
"id": "1",
"legend": "И(Р)",
"name": "Иркутск (Ракитная)",
"address": "",
"geo": "",
"widget": ""
},
"9": {
"id": "9",
"legend": "И(А)",
"name": "Иркутск (Автоград)",
"address": "",
"geo": "",
"widget": ""
}
]
GetPhoto($id, $type)
Получение ссылки на фотографию модели или запчасти и ссылки на уменьшенное изображение фотографии.
Входные параметры:
$id–внутренний id запчасти (см. описание одного из методов GetItemsByXXX) или id модели автомобиля;
$type– тип фотографии: “model” – фотография модели, ”item” – фотография запчасти.
Результат:
Массив вида:
{
'error'=>'0' – ошибок нет или ‘1’ – ошибка
‘message’ => ‘код ошибки если url фотографии не удалось получить’
'url'=>’http://autotrade.su/pic.php?code={id}&state;={код_страны}'
‘url_prewiew’: "http://autotrade.su/files/photo/models/preview/{название фотографии}‘
}
Пример:
SOAP
Запрос
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns1="API"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encoding>
Ответ
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns1="API"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encoding>
JSON
Запрос
{
"auth_key": "29a4729eef37cebdd4413eb4cf55c64b",
"method": "getPhoto",
"params": {
"id": "##1FB2###",
"type": "item"
}
}
Ответ
{
"error": "0",
"message": "Ok",
"url": "http://autotrade.su/pic.php?code=%23%231FB2%23%23%23&state;=1&size;=800.625",
"url_prewiew": "http://autotrade.su/files/photo/models/preview/ty-rv2-r-cp lfw_x.jpg"
}
GetOrderList ($fromDate, $toDate[, $page][, $limit])
Возвращает список необработанных заявок пользователя (таблица atr_shop_orders) за определенный период и с постраничной разбивкой.
Входные параметры:
$fromDate – начало периода, дата в формате 'YYYY-MM-DD';
$toDate – конец периода, дата в формате 'YYYY-MM-DD';
$page – страница, по умолчанию 1;
$limit - количество строк на странице, по умолчанию 20.
Результат:
Массив вида
{
total => ‘общее число заявок’,
page => ‘номер страницы’
limit => ‘по сколько выводить на странице’,
items => {
{
order_id => ‘id заявки’,
order_date => ‘дата-время создания заявки’,
type_doc => ‘вид документа’,
quantity => ‘общее кол-во товаров в заявке’,
amount => ‘итоговая сумма’
},
...
}
}
Пример:
Получить список необработанных заявок за период с 12.10.2012 по 19.10.2012, страница 1, по5 элементов на странице.
SOAP
Запрос
POST /?soapHTTP/1.1
Content-Type: text/xml; charset=utf-8
SOAPAction: "API#getOrderList"
Host: api2.autotrade.su
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns1="API"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encoding>
1
Ответ
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns1="API"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<ns1:GetOrderListResponse>
<total xsi:type="xsd:int">33total>
<page xsi:type="xsd:int">1page>
<limit xsi:type="xsd:int">5limit>
<items SOAP-ENC:arrayType="ns1:OrdersInfo[5]" xsi:type="ns1:ArrayOfOrders">
<item xsi:type="ns1:OrdersInfo">
<order_id xsi:type="xsd:string">205210order_id>
<order_date xsi:type="xsd:string">18.10.2012order_date>
<type_doc xsi:type="xsd:string">Неподтвержденнаязаявкаtype_doc>
<quantity xsi:type="xsd:int">7quantity>
<amount xsi:type="xsd:string">0.00amount>
item>
<item xsi:type="ns1:OrdersInfo">
<order_id xsi:type="xsd:string">205208order_id>
<order_date xsi:type="xsd:string">18.10.2012order_date>
<type_doc xsi:type="xsd:string">Неподтвержденнаязаявкаtype_doc>
<quantity xsi:type="xsd:int">7quantity>
<amount xsi:type="xsd:string">0.00amount>
item>
<item xsi:type="ns1:OrdersInfo">
<order_id xsi:type="xsd:string">205206order_id>
<order_date xsi:type="xsd:string">18.10.2012order_date>
<type_doc xsi:type="xsd:string">Неподтвержденнаязаявкаtype_doc>
<quantity xsi:type="xsd:int">7quantity>
<amount xsi:type="xsd:string">0.00amount>
item>
<item xsi:type="ns1:OrdersInfo">
<order_id xsi:type="xsd:string">205184order_id>
<order_date xsi:type="xsd:string">18.10.2012order_date>
<type_doc xsi:type="xsd:string">Неподтвержденнаязаявкаtype_doc>
<quantity xsi:type="xsd:int">7quantity>
<amount xsi:type="xsd:string">0.00amount>
item>
<item xsi:type="ns1:OrdersInfo">
<order_id xsi:type="xsd:string">205176order_id>
<order_date xsi:type="xsd:string">17.10.2012order_date>
<type_doc xsi:type="xsd:string">Неподтвержденнаязаявкаtype_doc>
<quantity xsi:type="xsd:int">7quantity>
<amount xsi:type="xsd:string">8440.00amount>
item>
items>
ns1:GetOrderListResponse>
SOAP-ENV:Body>
SOAP-ENV:Envelope>
JSON
Запрос
{
"auth_key": "910c29400ebfed8c3baab935f3456f49",
"method": "getOrderList",
"params": {
"fromDate": "2012-10-12",
"toDate": "2012-10-19",
"page": 1,
"limit": 5
}
}
Ответ
{
"total": "33",
"page": 1,
"limit": 5,
"items": [
{
"order_id": "205210",
"order_date": "18.10.2012",
"type_doc": "Неподтвержденная заявка",
"quantity": "7",
"amount": "0.00"
},
{
"order_id": "205208",
"order_date": "18.10.2012",
"type_doc": "Неподтвержденная заявка",
"quantity": "7",
"amount": "0.00"
},
{
"order_id": "205206",
"order_date": "18.10.2012",
"type_doc": "Неподтвержденная заявка",
"quantity": "7",
"amount": "0.00"
},
{
"order_id": "205184",
"order_date": "18.10.2012",
"type_doc": "Неподтвержденная заявка",
"quantity": "7",
"amount": "0.00"
},
{
"order_id": "205176",
"order_date": "17.10.2012",
"type_doc": "Неподтвержденная заявка",
"quantity": "7",
"amount": "8440.00"
}
]
}
GetDocList($fromDate, $toDate[, $Page][, $Limit])
Возвращает список документов пользователя (таблица atr_documents) за диапазон дат.
Входные параметры:
$fromDate - начало диапазона дат, строка в формате 'YYYY-MM-DD';
$toDate - окончание диапазона дат, строка в формате 'YYYY-MM-DD';
$Page – страница, по умолчанию 1;
$Limit - количество строк на странице, по умолчанию 20.
Результат:
Массив вида
{
total => ‘общее число документов’,
page => ‘номер страницы’
limit => ‘по сколько выводить на странице’,
items => {
{
parent_id => ‘id родительского документа’ или 0,
id => ‘id документа’,
number => ‘номер документа’,
doc_date => ‘дата-время создания документа’,
type_doc => ‘вид документа’,
quantity => ‘общее кол-во товаров в документе заявки’,
amount => ‘итоговая сумма’,
pay =>1 или 0
real => 1 или 0,
child => ‘массив дочерних документов’
},
...
}
}
Пример:
Получить список документов за период с 12.10.2012 по 19.10.2012, вывести первых 5 элементов.
SOAP
Запрос
POST /?soapHTTP/1.1
Content-Type: text/xml; charset=utf-8
SOAPAction: "API#getDocList"
Host: api2.autotrade.su
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns1="API"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encoding>
1
Ответ
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns1="API"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<ns1:GetDocListResponse>
<total xsi:type="xsd:int">23total>
<page xsi:type="xsd:int">1page>
<limit xsi:type="xsd:int">5limit>
<items SOAP-ENC:arrayType="ns1:DocsInfo[5]" xsi:type="ns1:ArrayOfDocs">
<item xsi:type="ns1:DocsInfo">
<parent_id xsi:nil="true"/>
<id xsi:type="xsd:string">8595319101id>
<number xsi:type="xsd:string">АА00008318number>
<date_doc xsi:type="xsd:string">18.10.2012date_doc>
<type_doc xsi:type="xsd:string">Документ.ЗаявкаПокупателяtype_doc>
<quantity xsi:type="xsd:int">7quantity>
<amount xsi:type="xsd:string">0.00amount>
<pay xsi:type="xsd:string"/>
<real xsi:type="xsd:string"/>
<child SOAP-ENC:arrayType="ns1:DocsInfo[0]" xsi:type="ns1:ArrayOfDocs"/>
item>
<item xsi:type="ns1:DocsInfo">
<parent_id xsi:nil="true"/>
<id xsi:type="xsd:string">8595322101id>
<number xsi:type="xsd:string">АА00008321number>
<date_doc xsi:type="xsd:string">18.10.2012date_doc>
<type_doc xsi:type="xsd:string">Документ.ЗаявкаПокупателяtype_doc>
<quantity xsi:type="xsd:int">7quantity>
<amount xsi:type="xsd:string">0.00amount>
<pay xsi:type="xsd:string"/>
<real xsi:type="xsd:string"/>
<child SOAP-ENC:arrayType="ns1:DocsInfo[0]" xsi:type="ns1:ArrayOfDocs"/>
item>
<item xsi:type="ns1:DocsInfo">
<parent_id xsi:nil="true"/>
<id xsi:type="xsd:string">8595321101id>
<number xsi:type="xsd:string">АА00008320number>
<date_doc xsi:type="xsd:string">18.10.2012date_doc>
<type_doc xsi:type="xsd:string">Документ.ЗаявкаПокупателяtype_doc>
<quantity xsi:type="xsd:int">7quantity>
<amount xsi:type="xsd:string">0.00amount>
<pay xsi:type="xsd:string"/>
<real xsi:type="xsd:string"/>
<child SOAP-ENC:arrayType="ns1:DocsInfo[0]" xsi:type="ns1:ArrayOfDocs"/>
item>
<item xsi:type="ns1:DocsInfo">
<parent_id xsi:nil="true"/>
<id xsi:type="xsd:string">8595320101id>
<number xsi:type="xsd:string">АА00008319number>
<date_doc xsi:type="xsd:string">18.10.2012date_doc>
<type_doc xsi:type="xsd:string">Документ.ЗаявкаПокупателяtype_doc>
<quantity xsi:type="xsd:int">7quantity>
<amount xsi:type="xsd:string">0.00amount>
<pay xsi:type="xsd:string"/>
<real xsi:type="xsd:string"/>
<child SOAP-ENC:arrayType="ns1:DocsInfo[0]" xsi:type="ns1:ArrayOfDocs"/>
item>
<item xsi:type="ns1:DocsInfo">
<parent_id xsi:nil="true"/>
<id xsi:type="xsd:string">8595318101id>
<number xsi:type="xsd:string">АА00008317number>
<date_doc xsi:type="xsd:string">18.10.2012date_doc>
<type_doc xsi:type="xsd:string">Документ.ЗаявкаПокупателяtype_doc>
<quantity xsi:type="xsd:int">7quantity>
<amount xsi:type="xsd:string">0.00amount>
<pay xsi:type="xsd:string"/>
<real xsi:type="xsd:string"/>
<child SOAP-ENC:arrayType="ns1:DocsInfo[0]" xsi:type="ns1:ArrayOfDocs"/>
item>
items>
ns1:GetDocListResponse>
SOAP-ENV:Body>
SOAP-ENV:Envelope>
страница 1страница 2 ... страница 6страница 7
скачать