Клиентский API - это инструмент, с помощью которого вы сможете в реальном времени взаимодействовать с учетной системой поставщика для:
Доступ к web-сервису осуществляется с помощью Bearer Token Authentication.
Параметры запроса формируются POST запросом в json-формате.
Результы возвращается в json-формате.
Необходимо запросить доступ у менеджера вашего поставщика и вам он предоставит:
1. Адрес, куда нужно формировать запросы
2. Токен для авторизиаци в web-сервисе
POST {адрес-сервера}/method/price/brandsByCode
Параметр в JSON-формате
{
"params" :
[
{
"YourReferenceOperationID" :1,
"jparams":
{
"code":"артикул/номер запрашиваемого товара"
}
}
]
}
Ответ сервера
[
{
"YourReferenceOperationID":1,
"result":
[
{
"id":"внутренний id(не используется)",
"code":"артикульный номер товара",
"id_rbBrands":"уникальный код бренда в системе поставщика",
"name":"имя бренда, например Kayaba или Toyota",
"goods_name":"описание товара"
}
]
}
]
Ответ сервера в случае ошибки
{
"error":true,
"message":"описание ошибки"
}
POST {адрес-сервера}/method/price/search
Параметр в JSON-формате
{
"params" :
[
{
"YourReferenceOperationID" :1,
"jparams":
{
"code":"артикульный номер",
"brand":"наименование бренда",
"brandID":"значение из предыдущего АПИ поле id_rbBrands - уникальный код бренда в системе поставщика",
"StockTypeFilter":"передаем StockAll для поиска по всем складам поставщика или StockCompany - только по остаткам поставщика",
"SearchFilter":"ByCodeBrand",
"limit":"число строк для показа, например 1000",
"limitPos":"страница результатов, начиная с 1"
}
}
]
}
Ответ сервера
[
{
"YourReferenceOperationID":1,
"result":
[
{
"hash":"хэш ключ для заказа",
"name":"название товара",
"code":"артикульный номер (очищенный от пробелов, точек и других символов)",
"code_display":"исходный артикульнный номер",
"brand":"бренд/производитель",
"qty":"доступное кол-во",
"cost":"цена",
"part":"кратность отгрузки",
"delivery_min":"минимальный срок доставки в раб. днях",
"delivery_max":"минимальный срок доставки в раб. днях",
"deliveryProc":"вероятность поставки",
"unitName":"единица измерения",
"logo":"лого склада поставки",
"isKit":"1-комплект, иначе 0",
"tzp":"внутренний код для заказа",
"dlvr_inf":"информация о доставке",
"caption":"описание к товару"
}
]
}
]
Ответ сервера в случае ошибки
{
"error":true,
"message":"описание ошибки"
}
POST {адрес-сервера}/method/cart/OrderFastAny
Параметр в JSON-формате
{
"params" :
[
{
"YourReferenceOperationID" :1,
"jparams":
{
"note":"комментарий к заказу",
"isToWork":"1 - отправить сразу в работу, если это разрешено, иначе передаем 0",
"isDelivery":"0 - без доставки, 1 - с доставкой",
"address_delivery":"адрес доставки",
"isDeliveryPartly":"1 - доставлять частично, 0 - только при полном поступлении заказа (при включенной опции с доставкой)",
"LanguageCode":"ru",
"positions":
[
{
"hashkey":"поле hash из резульатов поиска в прайсе",
"qty":"кол-во для заказа",
"priceRunUp":"Допустимое увеличение цены в базовой валюте, так как цены могут меняться из за курсов валюты. Если передать 0, то цена должна совпадать.",
"note":"можно указать здесь для себя комментарий к позиции, он печатается на стикере, при получении товара (не более 150 символов)"
}
],
}
}
]
}
В positions передаем массив списка товаров для заказа
Ответ сервера
[
{
"YourReferenceOperationID":1,
"result":
[
{
"DocID":"id документа заказа",
"DocNumber":"номер заказа",
"comment":"если не пусто, значит возникала проблема с отправкой заказа в работу и будет указан комментарий",
"positionsJsonString":"Если передать isToWork=1, то будет возвращено это поле, строка в json-формате информации по позциям в заказе"
}
]
}
]
Если при формировании заказа в параметре isToWork передать 1, то будет возвращено поле positionsJsonString строка в виде
[{
"id":"ID позиции заказа",
"name":"наименование товара",
"code":"артикульный код",
"brand":"бренд",
"qty":"количество",
"cost":"цена",
"note":"ваш комментарий",
"mess":"сообщение, если возникла ошибка, при отправке позиции в работу"
}, ... ]
Ответ сервера в случае ошибки
{
"error":true,
"message":"описание ошибки"
}
POST {адрес-сервера}/method/orders/GetOrderListDetails
Параметр в JSON-формате (получить заказы за период)
{
"params" :
[
{
"YourReferenceOperationID" :1,
"jparams":
{
"ByDate":1,
"date1":"дата начала периода заказов в формате гггг.мм.дд, например пример 2022.01.17",
"date2":"дата конца периода заказов в формате гггг.мм.дд, например пример 2022.01.19",
"ShowArh":"1 - для показа заказов с учетом архива, 0- только активнные заказы",
"limit":"показать количество позиций, например 100",
"limitPos":"страница показа, например 1"
}
}
]
}
Параметр в JSON-формате (получить по списку ID документов заказов)
{
"params" :
[
{
"YourReferenceOperationID" :1,
"jparams":
{
"ArrayDocs":"передаем ID документа заказа, если несколько, то разделяем через запятую",
"ShowArh":"передаем 1 - для показа заказов с учетом архива, 0- только активнные заказы",
"limit":"показать количество позиций, например 100",
"limitPos":"страница показа, начиная с 1"
}
}
]
}
Ответ сервера
[
{
"YourReferenceOperationID":1,
"result":
[
{
"DocDate":"дата заказа, в формате yyyy-mm-dd",
"DocID":"ID документа заказа",
"DocNumber":"номер заказа",
"position":"№ позиции в заказе",
"name":"наименование товара",
"code":"артикул/номер товара",
"brand":"бренд/производитель",
"cost":"цена",
"total":"сумма",
"qty":"кол-во",
"state":"статус позиции заказа"
}
]
}
]
<?php
/********************************************************************/
/*** Пример получения списка брендов по артикулу. ***/
/*** Адрес сервера предоставляет поставщик, например ***/
/*** https://api2.tezarius.ru или https://api3.tezarius.ru и т.д. ***/
/********************************************************************/
$url = "{адрес-сервера}/method/price/brandsByCode";
$post = array(
"params" =>
[
[
"YourReferenceOperationID" =>1,
"jparams"=>
[
"code" => "333114"
]
]
]
);
$data_string = json_encode($post);
$ch=curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_HTTPHEADER,
array(
"Authorization: Bearer {предоставленный_поставщиком_токен}",
"Accept: application/json",
"Content-type: application/json"
)
);
$result = curl_exec($ch);
curl_close($ch);