Разбор заказов через API


**Если вы ищете интеграцию с 1C через наше API, то посмотрите этот пример конфигурации.**


Для автоматизации разбора товаров из вашей учетной системы на сайте 100sp можно использовать специально API

Сначала для доступа к интерфейсу нужно создать специальный ключ, по которому будет происходить авторизация. Сделать это можно в профиле, перейдя по пункту меню "Доступ к API".


Для создания ключа введите его название и нажмите кнопку "Создать". После сохранения будет сгенерирован токен, представляющий собой случайную строку длиной 64 символа. Количество создаваемых ключей не ограничено. Этот ключ необходимо внести в свою учетную систему и передавать при каждом обращении к API с помощью HTTP-заголовка x-api-key.


Интерфейс разбора находится по адресу https://www.100sp.ru/org/formation/apiCheckOrders и принимает POST-запрос с типом содержимого json. JSON-документ в теле запроса имеет следующую структуру:


ПараметрТипОписание
megaorderIdINT
Идентификатор мегазаказа.
orders
ARRAY<OBJECT>Массив товаров с произведенными над ними действиями.
orders[].articul
STRING
Артикул товара.
orders[].sizeSTRING|NULLРазмер товара.
Так как для идентификации товара в данном случае используется артикул и размер (если был передан), важно контролировать наличие дублей товаров в покупке.
Например, если был передан артикул "A1", который присутствует в покупке в нескольких экземплярах, то API не сможет однозначно идентифицировать товар и выведет сообщение об ошибке.
Если у товаров в покупке совпадают артикулы, но указаны разные размеры, необходимо также передать размер, тогда API сможет корректно сопоставить товар.
orders[].count
INTКоличество товаров с указанным артикулом и размеров
orders[].actionSTRINGДействие над заказом
  • assembled - заказ собран
  • unassembled - заказ не собран
  • undelivered - недопоставка заказа
orders[].undeliveredCommentSTRINGКомментарий с причиной недопоставки.
Указывается только в случае 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-объект следующей структуры:

Поле
ТипОписание
resultbool
Успех/неудача.
FALSE возникает в случае глобальных ошибок, когда нельзя начать обработку заказов.
errors
string[]Общие ошибки запроса.
data
array<object>Информация об обработанных заказах.
data[].articul
stringАртикул товара в заказе.
data[].sizestringРазмер товара в заказе. Здесь будет указан всегда, даже если действие было передано без указания размера.
data[].actionstringСовершенное действие.
data[].successfulint
Количество обработанных товаров.
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
}

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies на условиях политики защиты и обработки персональных данных. 🍪