Публичный API-прокси
Base URL
https://b2b.agropromshina.ru/api/modules
| Поле | Значение |
|---|---|
| Method | POST |
| URL | https://b2b.agropromshina.ru/api/modules |
| Body | JSON |
| Авторизация | поле API_key в JSON body |
| Выбор метода | поле action в JSON body |
Tags
| Tag | Описание |
|---|---|
health | Проверка доступности API |
catalog | Номенклатура, остатки, цены и склады |
orders | Добавление товара в заказ |
Методы
| Метод | Tag | Назначение |
|---|---|---|
isAlive_API | health | Проверка доступности API и валидности API_key |
getStocks_API | catalog | Получение актуальных остатков по доступным складам |
getProductStocks_API | catalog | Получение остатков по конкретным товарам, артикулам или брендам |
getProducts_API | catalog | Получение актуальной номенклатуры, файлов, характеристик и остатков |
addProductToOrder_API | orders | Добавление товара в заказ клиента |
isAlive_API
Назначение
Проверяет доступность API и валидность API_key.
Operation
| Поле | Значение |
|---|---|
operationId | isAlive_API |
tags | health |
security | API_key в body |
requestBody.content | application/json |
response | JSON-строка со структурой status и result |
Request body
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
action | string | Да | Имя вызываемого метода API. Для данного метода: isAlive_API. |
API_key | string | Да | Ключ авторизации API. |
Example
{
"action": "isAlive_API",
"API_key": "<API_KEY>"
}
cURL
curl --request POST \
--url https://b2b.agropromshina.ru/api/modules \
--data '{"action":"isAlive_API","API_key":"<API_KEY>"}'
Responses
200 OK
{
"status": "OK",
"result": "OK"
}
Error
{
"status": "error",
"result": "<описание ошибки>"
}
Пример:
{
"status": "error",
"result": "Неверный API_key"
}
getStocks_API
Назначение
Возвращает актуальные остатки товаров по доступным складам. Поддерживает фильтрацию по бренду.
Operation
| Поле | Значение |
|---|---|
operationId | getStocks_API |
tags | catalog |
security | API_key в body |
requestBody.content | application/json |
response | JSON-строка со структурой status и result |
Request body
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
action | string | Да | Имя вызываемого метода API. Для данного метода: getStocks_API. |
API_key | string | Да | Ключ авторизации API. |
brand | string | Нет | Один или несколько брендов через запятую. Если передано undefined, фильтр не применяется. |
Example
{
"action": "getStocks_API",
"API_key": "<API_KEY>",
"brand": "undefined"
}
cURL
curl --request POST \
--url https://b2b.agropromshina.ru/api/modules \
--data '{"action":"getStocks_API","API_key":"<API_KEY>","brand":"undefined"}'
Filtering
Фильтр по одному бренду:
{
"action": "getStocks_API",
"API_key": "<API_KEY>",
"brand": "Petlas"
}
Фильтр по нескольким брендам:
{
"action": "getStocks_API",
"API_key": "<API_KEY>",
"brand": "Petlas,MONROC"
}
Если фильтр не нужен, может быть передано значение:
{
"brand": "undefined"
}
Responses
200 OK
{
"status": "OK",
"result": [
{
"product_id": "00-00000001",
"code": "00-00000001",
"artikul": "7072",
"name": "16,0/70-20 (400/70-20) cat.no 7072 16PR IND25 TL 156/A8 Petlas",
"brand": "Petlas",
"price": "",
"price_base": "48625",
"discount": "20",
"stocks": [
{
"stock_id": 234,
"stock_code": 234,
"stock_name": "Воронеж - Доровских Э.Н. ИП (Автошина)",
"stock_city": "Воронеж",
"read_only": false,
"quantity": "7"
},
{
"stock_id": 242,
"stock_code": 242,
"stock_name": "Волгоград - АЦСТ",
"stock_city": "Волгоград",
"read_only": false,
"quantity": "8"
}
]
}
]
}
Response schema
| Поле | Тип | Описание |
|---|---|---|
status | string | Статус выполнения метода. При успешном выполнении: OK. |
result | array | Массив товаров с остатками по складам. |
Product
| Поле | Тип | Описание |
|---|---|---|
product_id | string | Идентификатор товара. Заполняется кодом номенклатуры. |
code | string | Код номенклатуры. |
artikul | string | Артикул товара. |
name | string | Наименование товара. |
brand | string | Марка/бренд товара. |
price | string | Индивидуальная цена товара для пользователя/партнера. |
price_base | string | Базовая цена товара. |
discount | string | Скидка пользователя/партнера по товару. |
stocks | array | Массив складов, на которых есть доступный остаток товара. |
Stock
| Поле | Тип | Описание |
|---|---|---|
stock_id | number/string | Идентификатор склада. Заполняется кодом настройки склада. |
stock_code | number/string | Код склада. |
stock_name | string | Наименование склада. |
stock_city | string | Город склада. |
read_only | boolean | Признак склада только для просмотра. Если true, продажи со склада запрещены. |
quantity | string | Доступный остаток товара на складе. Рассчитывается как В наличии - Резерв. |
Error
{
"status": "error",
"result": "<описание ошибки>"
}
Пример:
{
"status": "error",
"result": "Неверный API_key"
}
getProductStocks_API
Назначение
Возвращает остатки по конкретным товарам, артикулам или брендам. Фильтры передаются в product_id, artikul, brand.
Operation
| Поле | Значение |
|---|---|
operationId | getProductStocks_API |
tags | catalog |
security | API_key в body |
requestBody.content | application/json |
response | JSON-строка со структурой status и result |
Request body
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
action | string | Да | Имя вызываемого метода API. Для данного метода: getProductStocks_API. |
API_key | string | Да | Ключ авторизации API. |
product_id | string | Нет | Один или несколько кодов номенклатуры через запятую. Если передано undefined, фильтр не применяется. |
artikul | string | Нет | Один или несколько артикулов через запятую. Если передано undefined, фильтр не применяется. |
brand | string | Нет | Один или несколько брендов через запятую. Если передано undefined, фильтр не применяется. |
Example
{
"action": "getProductStocks_API",
"API_key": "<API_KEY>",
"product_id": "undefined",
"artikul": "undefined",
"brand": "undefined"
}
cURL
curl --request POST \
--url https://b2b.agropromshina.ru/api/modules \
--data '{"action":"getProductStocks_API","API_key":"<API_KEY>","product_id":"undefined","artikul":"undefined","brand":"undefined"}'
Filtering
Получение остатков по конкретному товару:
{
"action": "getProductStocks_API",
"API_key": "<API_KEY>",
"product_id": "00-00000001",
"artikul": "undefined",
"brand": "undefined"
}
Получение остатков по нескольким товарам:
{
"action": "getProductStocks_API",
"API_key": "<API_KEY>",
"product_id": "00-00000001,00-00000003",
"artikul": "undefined",
"brand": "undefined"
}
Получение остатков по артикулу:
{
"action": "getProductStocks_API",
"API_key": "<API_KEY>",
"product_id": "undefined",
"artikul": "7072",
"brand": "undefined"
}
Получение остатков по бренду:
{
"action": "getProductStocks_API",
"API_key": "<API_KEY>",
"product_id": "undefined",
"artikul": "undefined",
"brand": "Petlas"
}
Responses
200 OK
{
"status": "OK",
"result": [
{
"product_id": "00-00000001",
"code": "00-00000001",
"artikul": "7072",
"name": "16,0/70-20 (400/70-20) cat.no 7072 16PR IND25 TL 156/A8 Petlas",
"brand": "Petlas",
"price": "",
"price_base": "48625",
"discount": "20",
"stocks": [
{
"stock_id": 234,
"stock_code": 234,
"stock_name": "Воронеж - Доровских Э.Н. ИП (Автошина)",
"stock_city": "Воронеж",
"read_only": false,
"quantity": "7"
},
{
"stock_id": 242,
"stock_code": 242,
"stock_name": "Волгоград - АЦСТ",
"stock_city": "Волгоград",
"read_only": false,
"quantity": "8"
}
]
}
]
}
Response schema
| Поле | Тип | Описание |
|---|---|---|
status | string | Статус выполнения метода. При успешном выполнении: OK. |
result | array | Массив товаров с остатками по складам. |
Product
| Поле | Тип | Описание |
|---|---|---|
product_id | string | Идентификатор товара. Заполняется кодом номенклатуры. |
code | string | Код номенклатуры. |
artikul | string | Артикул товара. |
name | string | Наименование товара. |
brand | string | Марка/бренд товара. |
price | string | Индивидуальная цена товара для пользователя/партнера. |
price_base | string | Базовая цена товара. |
discount | string | Скидка пользователя/партнера по товару. |
stocks | array | Массив складов, на которых есть доступный остаток товара. |
Stock
| Поле | Тип | Описание |
|---|---|---|
stock_id | number/string | Идентификатор склада. Заполняется кодом настройки склада. |
stock_code | number/string | Код склада. |
stock_name | string | Наименование склада. |
stock_city | string | Город склада. |
read_only | boolean | Признак склада только для просмотра. Если true, продажи со склада запрещены. |
quantity | string | Доступный остаток товара на складе. Рассчитывается как В наличии - Резерв. |
Error
{
"status": "error",
"result": "<описание ошибки>"
}
Пример:
{
"status": "error",
"result": "Неверный API_key"
}
getProducts_API
Назначение
Возвращает список актуальной номенклатуры для портала с основными реквизитами, файлами номенклатуры, дополнительными характеристиками и остатками по доступным пользователю складам.
Метод возвращает только товары из актуальной номенклатуры портала.
Operation
| Поле | Значение |
|---|---|
operationId | getProducts_API |
tags | catalog |
security | API_key в body |
requestBody.content | application/json |
response | JSON-строка со структурой status и result |
Request body
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
action | string | Да | Имя вызываемого метода API. Для данного метода: getProducts_API. |
API_key | string | Да | Ключ авторизации API. |
Example
{
"action": "getProducts_API",
"API_key": "<API_KEY>"
}
cURL
curl --request POST \
--url https://b2b.agropromshina.ru/api/modules \
--data '{"action":"getProducts_API","API_key":"<API_KEY>"}'
Responses
200 OK
{
"status": "OK",
"result": [
{
"product_id": "00-00000001",
"code": "00-00000001",
"artikul": "7072",
"name": "16,0/70-20 (400/70-20) cat.no 7072 16PR IND25 TL 156/A8 Petlas",
"full_name": "Шина 16,0/70-20 (400/70-20) cat.no 7072 16PR IND25 TL 156/A8 Petlas",
"brand": "Petlas",
"size": "16,0/70-20 (405/70-20)",
"picture": "",
"category": "Индустриальные",
"full_category": "1 Шины/PETLAS/Индустриальные/",
"files": [
{
"guid": "34a330fc-9f27-11e5-9f47-00155d228319",
"extension": "png",
"s3_url": "",
"display_order": 0
}
],
"additional_attributes": [
{
"property_name": "Проект",
"value": "ПРОМ"
},
{
"property_name": "Уровень бренда",
"value": "Medium"
},
{
"property_name": "Внешний диаметр, мм (шины)",
"value": "1 075"
}
],
"warehouses": [
{
"name": "Батайск - ШинВалом ТД",
"quantity": 0
},
{
"name": "Воронеж - Доровских Э.Н. ИП (Автошина)",
"quantity": 7
},
{
"name": "Волгоград - АЦСТ",
"quantity": 8
}
]
}
]
}
Response schema
| Поле | Тип | Описание |
|---|---|---|
status | string | Статус выполнения метода. При успешном выполнении возвращается OK. |
result | array | Массив товаров. Каждый элемент массива содержит данные одной номенклатуры. |
Product
| Поле | Тип | Описание |
|---|---|---|
product_id | string | Идентификатор товара. Заполняется кодом номенклатуры. |
code | string | Код номенклатуры. |
artikul | string | Артикул товара. |
name | string | Наименование товара. |
full_name | string | Полное наименование товара. |
brand | string | Марка/бренд товара. |
size | string | Размер товара. |
picture | string | Путь к основной картинке товара. Если картинка не указана, возвращается пустая строка. |
category | string | Наименование родительской категории. |
full_category | string | Полный путь категории товара. |
files | array | Массив дополнительных файлов номенклатуры. Если файлов нет, возвращается пустой массив. |
additional_attributes | array | Массив дополнительных реквизитов номенклатуры. Если реквизитов нет, возвращается пустой массив. |
warehouses | array | Массив складов с остатками товара. Если по товару нет данных по складам, возвращается пустой массив. |
Product file
| Поле | Тип | Описание |
|---|---|---|
guid | string | Уникальный идентификатор файла. |
extension | string | Расширение файла, например png, jpg, jpeg, pdf. |
s3_url | string | Ссылка на файл в S3-хранилище. Может быть пустой строкой. |
display_order | number | Порядок отображения файла. |
Additional attribute
Поле additional_attributes содержит массив дополнительных характеристик товара. Значение value возвращается строкой.
| Поле | Тип | Описание |
|---|---|---|
property_name | string | Наименование дополнительного реквизита. |
value | string | Значение дополнительного реквизита. |
Примеры дополнительных реквизитов:
[
{
"property_name": "Проект",
"value": "ПРОМ"
},
{
"property_name": "Сайт производителя (Шины)",
"value": "http://www.petlas.com/ru/tire/ind-25/IND36/"
}
]
Warehouse
Поле warehouses содержит массив складов, доступных пользователю API, с остатками товара.
| Поле | Тип | Описание |
|---|---|---|
name | string | Наименование склада. |
quantity | number | Остаток товара на указанном складе. Может быть равен 0. |
Warehouse display rules
В массив warehouses попадают склады, доступные пользователю API. Для каждого склада возвращается наименование склада и количество товара. Остаток возвращается в поле quantity.
Error
{
"status": "error",
"result": "<описание ошибки>"
}
Пример:
{
"status": "error",
"result": "Неверный API_key"
}
addProductToOrder_API
Назначение
Добавляет товар в заказ клиента. Может создать новый заказ или добавить позицию в открытый заказ.
Operation
| Поле | Значение |
|---|---|
operationId | addProductToOrder_API |
tags | orders |
security | API_key в body |
requestBody.content | application/json |
response | JSON-строка со структурой status и result |
Request body
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
action | string | Да | Имя вызываемого метода API. Для данного метода: addProductToOrder_API. |
API_key | string | Да | Ключ авторизации API. |
product_id | string | Нет | Код номенклатуры. Используется для поиска товара. |
artikul | string | Нет | Артикул номенклатуры. Используется для поиска товара, если product_id не передан. |
brand | string | Нет | Бренд товара. Используется как дополнительное условие при поиске по артикулу. Если передано undefined, фильтр по бренду не применяется. |
stock_id | string/number | Да | Код склада, с которого требуется добавить товар в заказ. |
quantity | string/number | Да | Количество товара для добавления в заказ. |
comment | string | Нет | Комментарий к заказу. |
payment_method | string | Нет | Способ оплаты. |
shipment_method | string | Нет | Способ доставки. Если передано ДОСТАВКА, используется доставка до клиента. В остальных случаях используется самовывоз. |
shipment_address | string | Нет | Адрес доставки. Используется при доставке до клиента. |
shipment_comment | string | Нет | Дополнительный комментарий по доставке. |
into_new_order | string/boolean | Нет | Признак создания нового заказа. Если передано 1, true или истина, товар добавляется в новый заказ. Иначе метод пытается найти открытый заказ текущего дня. |
Example
{
"action": "addProductToOrder_API",
"API_key": "<API_KEY>",
"product_id": "УТ-00004852",
"artikul": "3001050001",
"brand": "undefined",
"stock_id": "292",
"quantity": "2",
"comment": "Комментарий",
"payment_method": "",
"shipment_method": "",
"shipment_address": "",
"shipment_comment": "",
"into_new_order": ""
}
cURL
curl --request POST \
--url https://b2b.agropromshina.ru/api/modules \
--data '{"action":"addProductToOrder_API","API_key":"<API_KEY>","product_id":"УТ-00004852","artikul":"3001050001","brand":"undefined","stock_id":"292","quantity":"2","comment":"Комментарий","payment_method":"","shipment_method":"","shipment_address":"","shipment_comment":"","into_new_order":""}'
Product lookup rules
Если передан product_id, метод ищет номенклатуру по коду:
product_id -> Справочник.Номенклатура.НайтиПоКоду()
Если product_id не передан, но передан artikul, метод ищет первую найденную номенклатуру с указанным артикулом.
Если вместе с artikul передан brand, метод дополнительно ограничивает поиск по производителю/бренду:
Номенклатура.Производитель.Наименование ПОДОБНО brand
Order creation rules
Метод может как добавить товар в существующий заказ, так и создать новый заказ.
Если into_new_order не передан или имеет пустое значение, метод пытается найти открытый заказ текущего дня с признаками:
- заказ проведен;
- не помечен на удаление;
- создан за текущий день;
- относится к партнеру и контрагенту пользователя;
- относится к нужной организации, соглашению и договору;
- имеет статус
К обеспечению; - содержит признак
B2Bв комментарии.
Если подходящий заказ не найден, создается новый заказ.
Если into_new_order передан как 1, true или истина, новый заказ создается принудительно.
Delivery rules
Значение shipment_method | Результат |
|---|---|
ДОСТАВКА | Доставка до клиента |
| Пустое или другое значение | Самовывоз |
Responses
200 OK
{
"status": "OK",
"result": [
{
"order_status": "OK",
"result": "in stock",
"order_number": "0000-000001",
"stock_id": "292",
"stock_name": "Наименование склада",
"product_name": "Наименование товара",
"product_id": "УТ-00004852",
"artikul": "3001050001",
"quantity": "2"
}
]
}
Response schema
| Поле | Тип | Описание |
|---|---|---|
status | string | Статус выполнения API-метода. При успешном выполнении: OK. |
result | array | Результат добавления товара в заказ. Содержит массив структур по добавленным строкам. |
Add result
| Поле | Тип | Описание |
|---|---|---|
order_status | string | Статус добавления товара в заказ. При успешном добавлении: OK. |
result | string | Результат операции. Например: in stock или out of stock. |
order_number | string | Номер созданного или измененного заказа. |
stock_id | string | Код склада. |
stock_name | string | Наименование склада. |
product_name | string | Наименование товара. |
product_id | string | Код номенклатуры. |
artikul | string | Артикул товара. |
quantity | string | Количество товара, добавленное в заказ. |
Error
{
"status": "error",
"result": "<описание ошибки>"
}
Примеры:
{
"status": "error",
"result": "incorrect product_id or artikul"
}
{
"status": "error",
"result": "no real actions with orders allowed"
}