API для торгующих организаций

Предоставляем торгующим организациям возможность бесплатно получать и отправлять данные, используя наш API-сервис. Получать актуальную информацию о типовых изделиях (цены, складские остатки), а также отправлять данные о заказах, которые будут обработаны в приоритетном порядке. Этот функционал может интегрироваться в ваше программное обеспечение, сайты и расширить номенклатуру для торговой деятельности. Присутствует индивидуальная система дисконтирования.

Что нужно для подключения?

Сфера производства и продаж ЖБИ имеет свои особенности, поэтому:

  1. Присылаете заявку, приложив «Свидетельство о постановке на налоговый учет юридического лица», на почту it@bzsk68.ru
  2. Рассмотрев вашу заявку, будет выслан уникальный ключ (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