API для торгующих организаций
Предоставляем торгующим организациям возможность бесплатно получать и отправлять данные, используя наш API-сервис. Получать актуальную информацию о типовых изделиях (цены, складские остатки), а также отправлять данные о заказах, которые будут обработаны в приоритетном порядке. Этот функционал может интегрироваться в ваше программное обеспечение, сайты и расширить номенклатуру для торговой деятельности. Присутствует индивидуальная система дисконтирования.
Что нужно для подключения?
Сфера производства и продаж ЖБИ имеет свои особенности, поэтому:
- Присылаете заявку, приложив «Свидетельство о постановке на налоговый учет юридического лица», на почту it@bzsk68.ru
- Рассмотрев вашу заявку, будет выслан уникальный ключ (API-ключ) разработчика и присвоена начальная индивидуальная скидка
Ответственность
- Разработчик несет ответственность за сохранность API-ключа и за все, что будет сделано на сервисе с помощью API-ключа
- Разработчик, передавая свой API-ключ третьим лицам, несет ответственность за все действия таких третьих лиц, как за свои собственные
- На данные, переданные через API, распространяется политика конфиденциальности
Описание API
Получение данных о продукции
- GET-запрос осуществляется по адресу: https://bzsk68.ru/api/price/?key=secret_key
- Ответ на запрос будет отправлен в формате JSON
- Количество обращений (GET-запрос) к API ограничено - 24 запросов в календарные сутки
Пример кода для разбора JSON, полученного в ответ на GET-запрос:
<?php try { $options=[ 'http' => ['timeout' => 3], 'ssl' => [ 'verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true ] ]; $context = stream_context_create($options); $raw_data=file_get_contents("https://bzsk68.ru/api/price/?key=secret_key",0,$context); $data=json_decode($raw_data,true); if(empty($data)) { echo 'Данные не получены, возможно, следует увеличить параметр timeout'; die(); } if ($data['status'] == "ok") { echo '<h4>ИНН вашей организации: '.$data['firm_inn'].'</h4>'; echo 'Ваша скидка: '.$data['discount'].'%'; echo '<br><br>'; foreach($data as $category=>$value) { if ($category != "status" && $category != "firm_inn" && $category != "discount") { echo '<strong>Категория: '.$category.' ('.(count($value)-1).' поз.)</strong>'; echo '<br><br>'; foreach ($value as $k=>$v) { echo ($k>0 ? $k.'. ':''); foreach($v as $item_data=>$val) { switch($item_data) { case "item_name": echo 'Наименоваие: '.$val; break; case "item_length": echo 'Длина (мм): '.$val; break; case "item_width": echo 'Ширина (мм): '.$val; break; case "item_height": echo 'Высота (мм): '.$val; break; case "item_weight": echo 'Вес (кг): '.$val; break; case "item_cost": echo 'Цена с НДС (без учета скидки, руб/шт): '.$val; break; case "item_rest": echo 'Остаток на складе производителя (шт): '.$val; break; case "item_id": echo 'Уникальный ID: '.$val; break; case "standart": echo 'Стандарт: '.$val; break; } echo '<br>'; } echo '<br>'; } } } } if ($data['status'] == "limit_reached") { echo 'Достигнут лимит обращений. Он восстановится в начале следующих суток'; } if ($data['status'] == "srv_error") { echo 'Критическая ошибка сервера'; } if ($data['status'] == "not_allowed") { echo 'Вам не разрешено обращаться к API'; } } catch (Exception $e) { echo 'Произошло исключение: '.$e->getMessage(); } ?>
Пример результата работы кода:
ИНН вашей организации: 9876543210 Ваша скидка: 15% Категория: Балки (138 поз.) Стандарт: ГОСТ 20372-2015 1. Наименоваие: Балка Б-3 L=527 мм Длина (мм): 527 Ширина (мм): 350 Высота (мм): 450 Вес (кг): 200 Цена с НДС (без учета скидки, руб/шт): 0 Остаток на складе производителя (шт): 0 Уникальный ID: 44323e1e-1104-11ee-a474-**** 2. Наименоваие: Фундаментная балка БФм1-20 Длина (мм): 960 Ширина (мм): 400 Высота (мм): 400 Вес (кг): 400 Цена с НДС (без учета скидки, руб/шт): 0 Остаток на складе производителя (шт): 0 Уникальный ID: cc099114-667a-11ed-af7a-****
Отправка данных о заказе
- POST-запрос осуществляется по адресу: https://bzsk68.ru/api/order/
- Ответ на запрос будет отправлен в формате JSON
- Количество обращений (POST-запрос) к API - без ограничений
Пример кода для отправки POST-запроса:
<?php try { $url = "https://bzsk68.ru/api/order/"; $var=array("order"=>array( "key"=>"secret_key", "email"=>"mail@domain.ru", // email, на который будет отправлено КП отдела продаж БЗСК "order_data"=>array( "44323e1e-1104-11ee-a474-****"=>2, // Уникальный ID продукции, его нельзя видоизменять "cc099114-667a-11ed-af7a-****"=>3), // Формат: ID=>количество продукции для заказа (от 1 до 9999) "comment"=>"комментарий к заказу, например, рассчитать доставку до адреса" // до 5000 символов )); $content = json_encode($var); $curl = curl_init($url); curl_setopt($curl, CURLOPT_HEADER, false); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-type: application/json;charset=utf-8")); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, $content); $json_response = curl_exec($curl); $status = curl_getinfo($curl, CURLINFO_HTTP_CODE); if ( $status != 200 ) { die("Ошибка: обращение к URL $url завершено с ошибкой: $status. curl_error: " . curl_error($curl) . ", curl_errno " . curl_errno($curl)); } curl_close($curl); $response = json_decode($json_response, true); if ($response['status']=="ok") { echo "Успешно завершено. Номер заказа = ".$response['order_num']; } if ($response['status']=="not_allowed") { echo "Вам не разрешено обращаться к API"; } if ($response['status']=="srv_error") { echo "Критическая ошибка сервера"; } if ($response['status']=="id_error") { echo "ID продукции не найден"; } if ($response['status']=="num_error") { echo "Количество продукции содержит ошибку"; } } catch (Exception $e) { echo "Произошло исключение: ".$e->getMessage(); } ?>
Скачать исходники всех примеров на php