Web-сервис позволяет подключить ваш интернет ресурс к нашей системе. Это позволит в автоматическом режиме получить список доступных предложений по заданному артикулу, отправить в корзину и разместить заказ на нашем портале. Для подключения web-сервиса, вам необходимо связываться с своим менеджером и сообщить ему ip адрес(а) с которых будет происходить подключение. Менеджер отправит в техническую службу вашу заявку и после подтверждения, сервис будет доступен для использования.
Адрес для работы с web-сервисом: https:/api.***.ru
Обмен информации производится в формате JSON c помощью POST запросов.
Формат запроса:
{method: команда,
login: логин,
password : пароль,
request: {запрос}
}
запрос - массив параметров для каждой команды.
Ответ от сервера так же приходит в формате JSON, структура ответа зависит от команды (method).
Описание команд:
Пример:
$request = array( 'method' => 'brands_by_number', 'login' => 'partner', 'password' => 'partner', 'request' => array('number'=> '22177') ); $post = json_encode($request); $ch = curl_init('https://api.***.ru'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $post); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_HTTPHEADER,array('Content-Type: application/json')); $data = curl_exec($ch); if (empty($data)) { die(curl_error($ch)); } curl_close($ch); var_dump($data); ответ от сервера : string(183) "[{"brand":"KILEN","brand_id":"839","partname":"Пружина подвески Fr RE Megane 97-99\/Scenic I99-03"},{"brand":"SPIDAN","brand_id":"1262","partname":"GELENKSATZ SUBARU"}]"
$request = array( 'method' => 'price', 'login' => 'partner', 'password' => 'partner', 'request' => array('number'=> '3925164J00', 'brand_id' => 51, 'cross' => 1) ); ответ от сервера: string(2679) "[{"supplier_id":"1","Brand":"SUZUKI","number":"3925164J00","Partname":"ШТОК АНТЕННЫ","qty":"2","cost":"541.09","dlv_min_days":"1","dlv_max_days":"1","brand_id":"51","min_qty":"1","cross":0}, {"supplier_id":"4","Brand":"SUZUKI","number":"3925164J00","Partname":"АНТЕННА","qty":"2","cost":"590.63","dlv_min_days":"1","dlv_max_days":"2","brand_id":"51","min_qty":"1","cross":0}, {"supplier_id":"25","Brand":"SUZUKI","number":"3925164J00","Partname":"Шток антенны (116) 39251-64J00","qty":"7","cost":"610.50","dlv_min_days":"1","dlv_max_days":"3","brand_id":"51","min_qty":"1","cross":0}, {"supplier_id":"96","Brand":"SUZUKI","number":"3925164J00","Partname":"ШТОК АНТЕННЫ","qty":"3","cost":"649.35","dlv_min_days":"1","dlv_max_days":"2","brand_id":"51","min_qty":"1","cross":0}, {"supplier_id":"94","Brand":"SUZUKI","number":"3925164J00000","Partname":"АНТЕННА ШТОК\/ROD,ANTENNA","qty":"15","cost":"940.13","dlv_min_days":"2","dlv_max_days":"4","brand_id":"51","min_qty":"1","cross":1}, {"supplier_id":"372","Brand":"SUZUKI","number":"3925164J00000","Partname":"АНТЕННА ШТОК\/ROD,ANTENNA","qty":"15","cost":"940.13","dlv_min_days":"2","dlv_max_days":"4","brand_id":"51","min_qty":"1","cross":1}]"
$request = array( 'method' => 'add_to_cart', 'login' => 'partner', 'password' => 'partner', 'request' => array('number'=> 'NP1014', 'supplier_id'=>71, 'brand_id'=>668, 'qty'=>4, 'reference'=>'0x1133b5') );Внимание! при повторном вызове команды, количество штук в корзине удвоится.
$request = array( 'method' => 'list_cart', 'login' => 'partner', 'password' => 'partner' );
Ошибки, возращаемые сервером.
Ответ с ошибкой, будет приходить в следуюшем формате:
{"error":{"code":<код>,"message":<сообщение>}
Список возможных ошибок в ответах сервера:
код | сообщение | описание |
---|---|---|
001 | Request invalid | Ошибка в формате запроса |
002 | Internal error | Внутренняя ошибка web-сервиса |
100 | Key `login` not found | Нет логина в запросе |
101 | Key `password` not found | Нет пароля в запросе |
102 | User not found or password incorrect | Ошибка авторизации |
103 | IP is not allowed by user | IP адрес не прописан в список допустимых к работе |
104 | User is blocked | Пользователь заблокирован в системе |
200 | Unknow method | Вызвана неизвестная команда |
210 | Key `request` not found | Элемент `request` отсутствует в запросе |
211 | Position(s) not found | Нет позиций по результату запроса |
220 | Key `number` not found | Элемент `number` отсутствует в запросе |
221 | Number is incorrect | Элемент `number` имеет некорректное значение |
230 | Key `brand_id` not found | Элемент `brand_id` отсутствует в запросе |
231 | Key `brand_id` is invalid | Элемент `brand_id` имеет некорректное значение |
232 | Key `row_id` is invalid | Элемент `row_id` имеет некорректное значение |
240 | Key `supplier_id` not found | Элемент `supplier_id` отсутствует в запросе |
241 | Key `supplier_id` is invalid | Элемент `supplier_id` имеет некорректное значение |
250 | Key `qty` not found | Элемент `qty` отсутствует в запросе |
251 | Key `qty` is invalid | Элемент `qty` имеет некорректное значение |
252 | Quantity is not a multiple party | Указанное кол-во не кратно партии |
301 | Error creating order | Ошибка создания заказа |
310 | Order with a number-date already exist | Заказ с таким номером уже существует |
311 | No positions in cart | Отсутсвуют позиции для заказа(корзина пуста) |
312 | Account is blocked | Логин заблокирован для размещения заказа |