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-прокси

Base URL

https://b2b.agropromshina.ru/api/modules
ПолеЗначение
MethodPOST
URLhttps://b2b.agropromshina.ru/api/modules
BodyJSON
Авторизацияполе API_key в JSON body
Выбор методаполе action в JSON body

Tags

TagОписание
healthПроверка доступности API
catalogНоменклатура, остатки, цены и склады
ordersДобавление товара в заказ

Методы

МетодTagНазначение
isAlive_APIhealthПроверка доступности API и валидности API_key
getStocks_APIcatalogПолучение актуальных остатков по доступным складам
getProductStocks_APIcatalogПолучение остатков по конкретным товарам, артикулам или брендам
getProducts_APIcatalogПолучение актуальной номенклатуры, файлов, характеристик и остатков
addProductToOrder_APIordersДобавление товара в заказ клиента

isAlive_API

Назначение

Проверяет доступность API и валидность API_key.

Operation

ПолеЗначение
operationIdisAlive_API
tagshealth
securityAPI_key в body
requestBody.contentapplication/json
responseJSON-строка со структурой status и result

Request body

ПараметрТипОбязательныйОписание
actionstringДаИмя вызываемого метода API. Для данного метода: isAlive_API.
API_keystringДаКлюч авторизации 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

ПолеЗначение
operationIdgetStocks_API
tagscatalog
securityAPI_key в body
requestBody.contentapplication/json
responseJSON-строка со структурой status и result

Request body

ПараметрТипОбязательныйОписание
actionstringДаИмя вызываемого метода API. Для данного метода: getStocks_API.
API_keystringДаКлюч авторизации API.
brandstringНетОдин или несколько брендов через запятую. Если передано 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

ПолеТипОписание
statusstringСтатус выполнения метода. При успешном выполнении: OK.
resultarrayМассив товаров с остатками по складам.
Product
ПолеТипОписание
product_idstringИдентификатор товара. Заполняется кодом номенклатуры.
codestringКод номенклатуры.
artikulstringАртикул товара.
namestringНаименование товара.
brandstringМарка/бренд товара.
pricestringИндивидуальная цена товара для пользователя/партнера.
price_basestringБазовая цена товара.
discountstringСкидка пользователя/партнера по товару.
stocksarrayМассив складов, на которых есть доступный остаток товара.
Stock
ПолеТипОписание
stock_idnumber/stringИдентификатор склада. Заполняется кодом настройки склада.
stock_codenumber/stringКод склада.
stock_namestringНаименование склада.
stock_citystringГород склада.
read_onlybooleanПризнак склада только для просмотра. Если true, продажи со склада запрещены.
quantitystringДоступный остаток товара на складе. Рассчитывается как В наличии - Резерв.

Error

{
  "status": "error",
  "result": "<описание ошибки>"
}

Пример:

{
  "status": "error",
  "result": "Неверный API_key"
}

getProductStocks_API

Назначение

Возвращает остатки по конкретным товарам, артикулам или брендам. Фильтры передаются в product_id, artikul, brand.

Operation

ПолеЗначение
operationIdgetProductStocks_API
tagscatalog
securityAPI_key в body
requestBody.contentapplication/json
responseJSON-строка со структурой status и result

Request body

ПараметрТипОбязательныйОписание
actionstringДаИмя вызываемого метода API. Для данного метода: getProductStocks_API.
API_keystringДаКлюч авторизации API.
product_idstringНетОдин или несколько кодов номенклатуры через запятую. Если передано undefined, фильтр не применяется.
artikulstringНетОдин или несколько артикулов через запятую. Если передано undefined, фильтр не применяется.
brandstringНетОдин или несколько брендов через запятую. Если передано 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

ПолеТипОписание
statusstringСтатус выполнения метода. При успешном выполнении: OK.
resultarrayМассив товаров с остатками по складам.
Product
ПолеТипОписание
product_idstringИдентификатор товара. Заполняется кодом номенклатуры.
codestringКод номенклатуры.
artikulstringАртикул товара.
namestringНаименование товара.
brandstringМарка/бренд товара.
pricestringИндивидуальная цена товара для пользователя/партнера.
price_basestringБазовая цена товара.
discountstringСкидка пользователя/партнера по товару.
stocksarrayМассив складов, на которых есть доступный остаток товара.
Stock
ПолеТипОписание
stock_idnumber/stringИдентификатор склада. Заполняется кодом настройки склада.
stock_codenumber/stringКод склада.
stock_namestringНаименование склада.
stock_citystringГород склада.
read_onlybooleanПризнак склада только для просмотра. Если true, продажи со склада запрещены.
quantitystringДоступный остаток товара на складе. Рассчитывается как В наличии - Резерв.

Error

{
  "status": "error",
  "result": "<описание ошибки>"
}

Пример:

{
  "status": "error",
  "result": "Неверный API_key"
}

getProducts_API

Назначение

Возвращает список актуальной номенклатуры для портала с основными реквизитами, файлами номенклатуры, дополнительными характеристиками и остатками по доступным пользователю складам.

Метод возвращает только товары из актуальной номенклатуры портала.

Operation

ПолеЗначение
operationIdgetProducts_API
tagscatalog
securityAPI_key в body
requestBody.contentapplication/json
responseJSON-строка со структурой status и result

Request body

ПараметрТипОбязательныйОписание
actionstringДаИмя вызываемого метода API. Для данного метода: getProducts_API.
API_keystringДаКлюч авторизации 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

ПолеТипОписание
statusstringСтатус выполнения метода. При успешном выполнении возвращается OK.
resultarrayМассив товаров. Каждый элемент массива содержит данные одной номенклатуры.
Product
ПолеТипОписание
product_idstringИдентификатор товара. Заполняется кодом номенклатуры.
codestringКод номенклатуры.
artikulstringАртикул товара.
namestringНаименование товара.
full_namestringПолное наименование товара.
brandstringМарка/бренд товара.
sizestringРазмер товара.
picturestringПуть к основной картинке товара. Если картинка не указана, возвращается пустая строка.
categorystringНаименование родительской категории.
full_categorystringПолный путь категории товара.
filesarrayМассив дополнительных файлов номенклатуры. Если файлов нет, возвращается пустой массив.
additional_attributesarrayМассив дополнительных реквизитов номенклатуры. Если реквизитов нет, возвращается пустой массив.
warehousesarrayМассив складов с остатками товара. Если по товару нет данных по складам, возвращается пустой массив.
Product file
ПолеТипОписание
guidstringУникальный идентификатор файла.
extensionstringРасширение файла, например png, jpg, jpeg, pdf.
s3_urlstringСсылка на файл в S3-хранилище. Может быть пустой строкой.
display_ordernumberПорядок отображения файла.
Additional attribute

Поле additional_attributes содержит массив дополнительных характеристик товара. Значение value возвращается строкой.

ПолеТипОписание
property_namestringНаименование дополнительного реквизита.
valuestringЗначение дополнительного реквизита.

Примеры дополнительных реквизитов:

[
  {
    "property_name": "Проект",
    "value": "ПРОМ"
  },
  {
    "property_name": "Сайт производителя (Шины)",
    "value": "http://www.petlas.com/ru/tire/ind-25/IND36/"
  }
]
Warehouse

Поле warehouses содержит массив складов, доступных пользователю API, с остатками товара.

ПолеТипОписание
namestringНаименование склада.
quantitynumberОстаток товара на указанном складе. Может быть равен 0.

Warehouse display rules

В массив warehouses попадают склады, доступные пользователю API. Для каждого склада возвращается наименование склада и количество товара. Остаток возвращается в поле quantity.

Error

{
  "status": "error",
  "result": "<описание ошибки>"
}

Пример:

{
  "status": "error",
  "result": "Неверный API_key"
}

addProductToOrder_API

Назначение

Добавляет товар в заказ клиента. Может создать новый заказ или добавить позицию в открытый заказ.

Operation

ПолеЗначение
operationIdaddProductToOrder_API
tagsorders
securityAPI_key в body
requestBody.contentapplication/json
responseJSON-строка со структурой status и result

Request body

ПараметрТипОбязательныйОписание
actionstringДаИмя вызываемого метода API. Для данного метода: addProductToOrder_API.
API_keystringДаКлюч авторизации API.
product_idstringНетКод номенклатуры. Используется для поиска товара.
artikulstringНетАртикул номенклатуры. Используется для поиска товара, если product_id не передан.
brandstringНетБренд товара. Используется как дополнительное условие при поиске по артикулу. Если передано undefined, фильтр по бренду не применяется.
stock_idstring/numberДаКод склада, с которого требуется добавить товар в заказ.
quantitystring/numberДаКоличество товара для добавления в заказ.
commentstringНетКомментарий к заказу.
payment_methodstringНетСпособ оплаты.
shipment_methodstringНетСпособ доставки. Если передано ДОСТАВКА, используется доставка до клиента. В остальных случаях используется самовывоз.
shipment_addressstringНетАдрес доставки. Используется при доставке до клиента.
shipment_commentstringНетДополнительный комментарий по доставке.
into_new_orderstring/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

ПолеТипОписание
statusstringСтатус выполнения API-метода. При успешном выполнении: OK.
resultarrayРезультат добавления товара в заказ. Содержит массив структур по добавленным строкам.
Add result
ПолеТипОписание
order_statusstringСтатус добавления товара в заказ. При успешном добавлении: OK.
resultstringРезультат операции. Например: in stock или out of stock.
order_numberstringНомер созданного или измененного заказа.
stock_idstringКод склада.
stock_namestringНаименование склада.
product_namestringНаименование товара.
product_idstringКод номенклатуры.
artikulstringАртикул товара.
quantitystringКоличество товара, добавленное в заказ.

Error

{
  "status": "error",
  "result": "<описание ошибки>"
}

Примеры:

{
  "status": "error",
  "result": "incorrect product_id or artikul"
}
{
  "status": "error",
  "result": "no real actions with orders allowed"
}