Публичный API
Публичный API работает через единый B2B-proxy. Все операции вызываются POST-запросом на один endpoint, а конкретное действие выбирается полем action в JSON-теле.
Быстрый старт
curl --request POST \
--url https://b2b.agropromshina.ru/api/modules \
--header 'Content-Type: application/json' \
--data '{
"action": "isAlive_API",
"API_key": "Change_me"
}'
Если API доступен и ключ корректный, сервер вернет JSON-ответ со статусом операции и результатом.
Базовые правила
Endpoint
POST https://b2b.agropromshina.ru/api/modules
Заголовки
Content-Type: application/json
Accept: application/json
Авторизация
Ключ интеграции передается в теле запроса:
{
"API_key": "Change_me"
}
Ключ передается именно в JSON-теле. Не кладите его в Authorization или другой HTTP-заголовок.
Формат тела
{
"action": "имя_операции",
"API_key": "ключ_интеграции",
"param": "value"
}
Формат ответа
Все операции возвращают JSON. Обычно ответ содержит:
{
"status": "success",
"result": {}
}
HTTP 200 означает, что proxy принял и обработал запрос на транспортном уровне. Бизнес-результат операции проверяйте по полям status и result.
Точный состав result зависит от операции.
Минимальный пример на JavaScript
const response = await fetch('https://b2b.agropromshina.ru/api/modules', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Accept: 'application/json',
},
body: JSON.stringify({
action: 'isAlive_API',
API_key: 'Change_me',
}),
});
const data = await response.json();
Навигация
Проверка доступности
isAlive_API
Проверяет, что публичный API доступен, а переданный API_key принимается сервером.
Когда использовать
- Проверка интеграции после получения ключа.
- Healthcheck со стороны внешней системы.
- Быстрая диагностика проблем с доступом.
Тело запроса
| Поле | Обязательное | Описание |
|---|---|---|
action | да | isAlive_API |
API_key | да | Ключ интеграции |
Пример
curl --request POST \
--url https://b2b.agropromshina.ru/api/modules \
--header 'Content-Type: application/json' \
--data '{
"action": "isAlive_API",
"API_key": "Change_me"
}'
Каталог и остатки
getProducts_API
Возвращает список номенклатуры, доступной для интеграции.
Когда использовать
- Первичная загрузка каталога.
- Обновление справочника товаров во внешней системе.
Тело запроса
| Поле | Обязательное | Описание |
|---|---|---|
action | да | getProducts_API |
API_key | да | Ключ интеграции |
Пример
curl --request POST \
--url https://b2b.agropromshina.ru/api/modules \
--header 'Content-Type: application/json' \
--data '{
"action": "getProducts_API",
"API_key": "Change_me"
}'
getStocks_API
Возвращает остатки. При необходимости результат можно ограничить одним или несколькими брендами.
Когда использовать
- Получить общий список остатков.
- Ограничить остатки одним или несколькими брендами.
Тело запроса
| Поле | Обязательное | Описание |
|---|---|---|
action | да | getStocks_API |
API_key | да | Ключ интеграции |
brand | нет | Бренд или список брендов через запятую. Если фильтр не нужен, передайте "undefined" |
Пример
curl --request POST \
--url https://b2b.agropromshina.ru/api/modules \
--header 'Content-Type: application/json' \
--data '{
"action": "getStocks_API",
"API_key": "Change_me",
"brand": "undefined"
}'
getProductStocks_API
Возвращает остатки по конкретным товарам, артикулам или брендам.
Когда использовать
- Проверить наличие товара перед созданием заказа.
- Получить остатки по списку артикулов.
- Отфильтровать остатки по бренду.
Тело запроса
| Поле | Обязательное | Описание |
|---|---|---|
action | да | getProductStocks_API |
API_key | да | Ключ интеграции |
product_id | нет | Код номенклатуры в справочнике PORTAL_Номенклатура. Можно передать несколько значений через запятую |
artikul | нет | Артикул номенклатуры. Можно передать несколько значений через запятую |
brand | нет | Бренд номенклатуры. Можно передать несколько значений через запятую |
Пример
curl --request POST \
--url https://b2b.agropromshina.ru/api/modules \
--header 'Content-Type: application/json' \
--data '{
"action": "getProductStocks_API",
"API_key": "Change_me",
"product_id": "undefined",
"artikul": "undefined",
"brand": "undefined"
}'
Заказы
addProductToOrder_API
Добавляет товар в заказ или создает новый заказ с товаром.
Когда использовать
- Создать заказ из внешней системы.
- Добавить товар в заказ.
- Передать склад, количество, способ оплаты, способ доставки и комментарии.
Товар можно идентифицировать через product_id или через связку artikul и brand. Если часть фильтров не используется, передавайте пустую строку "" или строку "undefined" по логике примеров ниже.
Тело запроса
| Поле | Обязательное | Описание |
|---|---|---|
action | да | addProductToOrder_API |
API_key | да | Ключ интеграции |
product_id | нет | Код номенклатуры в справочнике PORTAL_Номенклатура |
artikul | нет | Артикул номенклатуры |
brand | нет | Бренд номенклатуры |
stock_id | нет | Код склада в справочнике PORTAL_НастройкиСкладов |
quantity | нет | Количество |
comment | нет | Комментарий к товару или заказу |
payment_method | нет | Способ оплаты |
shipment_method | нет | Способ доставки |
shipment_address | нет | Адрес доставки |
shipment_comment | нет | Комментарий доставки |
into_new_order | нет | Признак добавления в новый заказ |
Пример
curl --request POST \
--url https://b2b.agropromshina.ru/api/modules \
--header 'Content-Type: application/json' \
--data '{
"action": "addProductToOrder_API",
"API_key": "Change_me",
"product_id": "",
"artikul": "WA02608",
"brand": "undefined",
"stock_id": "316",
"quantity": "2",
"comment": "Комментарий",
"payment_method": "",
"shipment_method": "",
"shipment_address": "",
"shipment_comment": "",
"into_new_order": ""
}'
Примечания по параметрам
Несколько значений
В полях product_id, artikul, brand можно передавать несколько значений через запятую:
{
"artikul": "WA02608,WA02609,WA02610"
}
Минимальная проверка интеграции
Перед подключением товарных и заказных методов сначала вызовите isAlive_API. Это позволяет отдельно проверить endpoint, формат JSON и корректность API_key.
Частые ошибки
Неверный endpoint
Для публичного API используйте https://b2b.agropromshina.ru/api/modules, а не https://b2b.agropromshina.ru/api/?action=.
Ключ передан не туда
API_key должен быть в теле запроса. Если передать его только в заголовке, метод не сможет авторизовать интеграцию.