Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Публичный 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 должен быть в теле запроса. Если передать его только в заголовке, метод не сможет авторизовать интеграцию.