**Если вы ищете интеграцию с 1C через наше API, то посмотрите этот пример конфигурации.**
Для автоматизации разбора товаров из вашей учетной системы на сайте 100sp можно использовать специально API
Сначала для доступа к интерфейсу нужно создать специальный ключ, по которому будет происходить авторизация. Сделать это можно в профиле, перейдя по пункту меню "Доступ к API".
Для создания ключа введите его название и нажмите кнопку "Создать". После сохранения будет сгенерирован токен, представляющий собой случайную строку длиной 64 символа. Количество создаваемых ключей не ограничено. Этот ключ необходимо внести в свою учетную систему и передавать при каждом обращении к API с помощью HTTP-заголовка x-api-key.
Интерфейс разбора находится по адресу https://www.100sp.ru/org/formation/apiCheckOrders и принимает POST-запрос с типом содержимого json. JSON-документ в теле запроса имеет следующую структуру:
Параметр | Тип | Описание |
megaorderId | INT | Идентификатор мегазаказа. |
orders | ARRAY<OBJECT> | Массив товаров с произведенными над ними действиями. |
orders[].articul | STRING | Артикул товара. |
orders[].size | STRING|NULL | Размер товара. Так как для идентификации товара в данном случае используется артикул и размер (если был передан), важно контролировать наличие дублей товаров в покупке. Например, если был передан артикул "A1", который присутствует в покупке в нескольких экземплярах, то API не сможет однозначно идентифицировать товар и выведет сообщение об ошибке. Если у товаров в покупке совпадают артикулы, но указаны разные размеры, необходимо также передать размер, тогда API сможет корректно сопоставить товар. |
orders[].count | INT | Количество товаров с указанным артикулом и размеров |
orders[].action | STRING | Действие над заказом
|
orders[].undeliveredComment | STRING | Комментарий с причиной недопоставки. Указывается только в случае action = undelivered. |
Пример json для сборки заказа:
{
"megaorderId": 405710374,
"orders": [
{
"articul": 3463653,
"action": "assembled",
"count": 2
}
]
}
Важно сохранять логику работы разбора. Нельзя отметить недопоставку у собранных заказов, для этого их сначала нужно перевести в статус "не собрано". То есть, необходимо последовательно в orders указать два действия - unassembled, а затем undelivered.
Пример json для недопоставки:{
"megaorderId": 405710374,
"orders": [
{
"articul": 3463653,
"action": "unassembled",
"count": 2
},
{
"articul": 3463653,
"action": "undelivered",
"count": 2
}
]
}
В ответе на запрос будет json-объект следующей структуры:
Поле | Тип | Описание |
result | bool | Успех/неудача. FALSE возникает в случае глобальных ошибок, когда нельзя начать обработку заказов. |
errors | string[] | Общие ошибки запроса. |
data | array<object> | Информация об обработанных заказах. |
data[].articul | string | Артикул товара в заказе. |
data[].size | string | Размер товара в заказе. Здесь будет указан всегда, даже если действие было передано без указания размера. |
data[].action | string | Совершенное действие. |
data[].successful | int | Количество обработанных товаров. |
data[].errors | string[] | Список ошибок, если не удалось обработать эту позицию. |
Пример ответа:
{
"result": true,
"messages": [],
"errors": [],
"data": [
{
"articul": "3463653",
"size": "-",
"action": "add",
"successful": 2
}
],
"html": "",
"redirect": null
}
Пример ответа с ошибкой:{
"result": true,
"messages": [],
"errors": [],
"data": [
{
"articul": "3463653",
"size": "-",
"action": "add",
"errors": [
"Вы пытаетесь собрать заказы: 2. Доступно заказов для сборки: 0."
]
}
],
"html": "",
"redirect": null
}