Web-сервис позволяет подключить ваш интернет ресурс к нашей системе. Это позволит в автоматическом режиме получить список доступных предложений по заданному артикулу, отправить в корзину и разместить заказ на нашем портале. Для подключения web-сервиса, вам необходимо связываться с своим менеджером и сообщить ему ip адрес(а) с которых будет происходить подключение. Менеджер отправит в техническую службу вашу заявку и после подтверждения, сервис будет доступен для использования.
Адрес для работы с web-сервисом: https:/api.geo-parts.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.geo-parts.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 | Логин заблокирован для размещения заказа |
Офис - склад в Москве: +7 (909) 168-91-99