Подготовка заказа (FBS)

Позволяет выполнить три операции:

  • передать Маркету информацию о распределении товаров по коробкам;
  • передать Маркету коды маркировки для товаров;
  • удалить товар из заказа, если его не оказалось на складе.

Подходит и для DBS

Запрос предназначен для работы с FBS-заказами, но вы можете использовать его для обработки DBS-заказов, если это удобно.

Если нужно что-то поправить в переданных данных, просто повторите запрос — это можно делать сколько угодно раз до перевода заказа в статус Готов к отгрузке. ⚠️ Если вы меняете раскладку уже после печати и расклейки ярлыков, не забудье перепечатать их и наклеить заново.

Как передать информацию о распределении товаров

В этом запросе вам нужно передать Маркету список коробок и указать, какие именно товары лежат в каждой из них. Коробки могут быть двух типов:

  • Содержащие товары целиком. Такая коробка может содержать сколько угодно единиц любых товаров.

  • Содержащие часть товара. Такие коробки содержат по одной части одного товара. Например, одна содержит внешний блок кондиционера, а другая — внутренний блок.

⚠️ Одна коробка не может содержать и товары целиком, и части товаров.

Как передавать коды маркировки

Если в заказе есть товары, подлежащие маркировке, в запросе нужно передать соответствующие уникальные коды. Что такое маркировка?

Принимаются коды следующих типов:

  • Коды «Честного знака».
  • УИН для ювелирных изделий.
  • РНПТ и ГТД для импортных прослеживаемых товаров.

Для каждой позиции в заказе, требующей маркировки, нужно передать список кодов — по одному для каждой единицы товара. Например, если в заказе две пары тапочек и одна пара туфель, получится список из двух кодов для первой позиции и список из одного кода для второй.

Если товар едет в нескольких коробках, код маркировки нужно передать для каждой из них.

Как удалить товар из заказа

Чтобы удалить товар из заказа:

  1. Добавьте в запрос allowRemove: true.
  2. Передайте распределение по коробкам без товара, который нужно удалить.

Удаление нельзя отменить

Эта операция необратима: покупатель сразу получит уведомление, а состав заказа изменится.

Чтобы удалить позицию целиком, не передавайте соответствующий OrderBoxLayoutItemDTO. Чтобы уменьшить количество товара, передайте уменьшенное значение в поле fullCount.

Нельзя удалить или уменьшить количество товара, если он:

  • добавлен по акции;
  • составляет 99% стоимости заказа;
  • единственный товар в заказе.

Если вы не можете отгрузить такой товар, отмените заказ. Для этого отправьте запрос методом PUT campaigns/{campaignId}/orders/{orderId}/status и передайте статус заказа CANCELLED с причиной отмены SHOP_FAILED.

Увеличить заказ нельзя

С помощью запроса нельзя увеличить количество одинаковых товаров, добавить новые товары в заказ или заменить один товар другим.

Примеры

Товар умещается в коробку

Вот как будет выглядеть запрос, если в одной коробке едут:

  • три единицы одного товара, требующего маркировки;
  • одна единица другого товара, не требущего маркировки.
{
    "boxes": [
        {
            "items": [
                {
                    "id": 123456,
                    "fullCount": 3,
                    "instances": [
                        {
                            "cis": "01030410947874432155Qbag!\u001d93Zjqw"
                        },
                        {
                            "cis": "010304109478gftJ14545762!\u001dhGt264"
                        },
                        {
                            "cis": "010304109478fRs28323ks23!\u001dhet201"
                        }
                    ]
                },
                {
                    "id": 654321,
                    "fullCount": 1
                }
            ]
        }
    ]
}
Товар едет в разных коробках

Вот как будет выглядеть запрос, если товар едет в двух коробках:

{
    "boxes": [
        {
            "items": [
                {
                    "id": 123456,
                    "partialCount": {
                        "current": 1,
                        "total": 2
                    },
                    "instances": [
                        {
                            "cis": "01030410947874432155Qbag!\u001d93Zjqw"
                        }
                    ]
                }
            ]
        },
        {
            "items": [
                {
                    "id": 123456,
                    "partialCount": {
                        "current": 2,
                        "total": 2
                    },
                    "instances": [
                        {
                            "cis": "01030410947874432155Qbag!\u001d93Zjqw"
                        }
                    ]
                }
            ]
        }
    ]
}
⚙️ Лимит: 1 000 000 запросов в час

Request

PUT

https://api.partner.market.yandex.ru/campaigns/{campaignId}/orders/{orderId}/boxes

Path parameters

Name

Type

Description

campaignId*

integer<int64>

Идентификатор кампании в API и магазина в кабинете. Каждая кампания в API соответствует магазину в кабинете.

Чтобы узнать идентификаторы своих магазинов, воспользуйтесь запросом GET campaigns.

ℹ️ Что такое кабинет и магазин на Маркете

orderId*

integer<int64>

Идентификатор заказа.

Body

application/json
{
    "boxes": [
        {
            "items": [
                {
                    "id": 0,
                    "fullCount": 0,
                    "partialCount": {
                        "current": 0,
                        "total": 0
                    },
                    "instances": [
                        {
                            "cis": "string",
                            "uin": "string",
                            "rnpt": "string",
                            "gtd": "string"
                        }
                    ]
                }
            ]
        }
    ],
    "allowRemove": false
}

Name

Type

Description

boxes*

OrderBoxLayoutDTO[]

Список коробок.
Информация о коробке.

allowRemove

boolean

Передайте true, если вы собираетесь удалить часть товаров из заказа.
Default: false

OrderBoxLayoutDTO

Информация о коробке.

Name

Type

Description

items*

OrderBoxLayoutItemDTO[]

Список товаров в коробке.

Если в коробке едет часть большого товара, в списке может быть только один пункт.
Информация о товаре в коробке.

OrderBoxLayoutItemDTO

Информация о товаре в коробке.

Name

Type

Description

id*

integer<int64>

Идентификатор товара в заказе.

Где его взять

Идентификатор приходит в ответе на запрос GET campaigns/{campaignId}/orders/{orderId} и в запросе Маркета POST order/accept — параметр id в items.

fullCount

integer<int32>

Количество единиц товара в коробке.

Используйте это поле, если в коробке поедут целые товары, не разделенные на части. Не используйте это поле одновременно с partialCount.

partialCount

OrderBoxLayoutPartialCountDTO

Часть товара в коробке.

Используйте это поле, если в коробке поедет часть большого товара. Не используйте это поле одновременно с fullCount.

instances

BriefOrderItemInstanceDTO[]

Переданные вами коды маркировки.
Идентификатор единицы товара.

Заполните только одно поле в зависимости от того, в какой системе маркирован товар.

Подробно о работе с маркируемыми товарами рассказано в Справке.

OrderBoxLayoutPartialCountDTO

Информация о части товара в коробке.

Name

Type

Description

current*

integer<int32>

Номер части, начиная с 1.

total*

integer<int32>

На сколько всего частей разделен товар.

BriefOrderItemInstanceDTO

Идентификатор единицы товара.

Заполните только одно поле в зависимости от того, в какой системе маркирован товар.

Подробно о работе с маркируемыми товарами рассказано в Справке.

Name

Type

Description

cis

string

Код идентификации единицы товара в системе «Честный ЗНАК».

Важно

Не экранируйте косую черту в коде символа-разделителя \u001d!

01030410947874432155Qbag!\u001d93Zjqw

01030410947874432155Qbag!\\u001d93Zjqw

Косые черты и кавычки в других местах экранируйте по правилам JSON: \\ и \"

uin

string

Уникальный идентификационный номер ювелирного изделия.

Представляет собой число из 16 цифр.

rnpt

string

Регистрационный номер партии товара.

Представляет собой строку из четырех чисел, разделенных косой чертой: ХХХХХХХХ/ХХХХХХ/ХХХХХХХ/ХХХ.

Первая часть — код таможни, которая зарегистрировала декларацию на партию товара. Далее — дата, номер декларации и номер маркированного товара в декларации.

gtd

string

Грузовая таможенная декларация.

Представляет собой строку из трех чисел, разделенных косой чертой: ХХХХХХХХ/ХХХХХХ/ХХХХХХХ.

Первая часть — код таможни, которая зарегистрировала декларацию на ввезенные товары. Далее — дата и номер декларации.

Responses

200 OK

В ответ придет переданная раскладка с идентификаторами коробок — они понадобятся для запроса ярлыков.

Body

application/json
{
    "status": "OK",
    "result": {
        "boxes": [
            {
                "items": [
                    {
                        "id": 0,
                        "fullCount": 0,
                        "partialCount": {
                            "current": 0,
                            "total": 0
                        },
                        "instances": [
                            {
                                "cis": "string",
                                "uin": "string",
                                "rnpt": "string",
                                "gtd": "string"
                            }
                        ]
                    }
                ],
                "boxId": 0
            }
        ]
    }
}

Name

Type

Description

status

ApiResponseStatusType

Тип ответа.
Enum: OK, ERROR

result

OrderBoxesLayoutDTO

Распределение товаров по коробкам.

ApiResponseStatusType

Тип ответа.

Type

Description

ApiResponseStatusType

Enum: OK, ERROR

OrderBoxesLayoutDTO

Распределение товаров по коробкам.

Name

Type

Description

boxes*

EnrichedOrderBoxLayoutDTO[]

Список коробок.
Информация о коробке.
Информация о коробке.

EnrichedOrderBoxLayoutDTO

Информация о коробке.

Name

Type

Description

items*

OrderBoxLayoutItemDTO[]

Список товаров в коробке.

Если в коробке едет часть большого товара, в списке может быть только один пункт.
Информация о товаре в коробке.

boxId

integer<int64>

Идентификатор коробки.

400 Bad Request

Запрос содержит неправильные данные.

Body

application/json
{
    "status": "OK",
    "errors": [
        {
            "code": "string",
            "message": "string"
        }
    ]
}

Name

Type

Description

status

ApiResponseStatusType

Тип ответа.
Enum: OK, ERROR

errors

ApiErrorDTO[]

Список ошибок.
Общий формат ошибки.

ApiErrorDTO

Общий формат ошибки.

Name

Type

Description

code*

string

Код ошибки.

message

string

Описание ошибки.

401 Unauthorized

В запросе не указаны данные для авторизации.

Body

application/json
{
    "status": "OK",
    "errors": [
        {
            "code": "string",
            "message": "string"
        }
    ]
}

Name

Type

Description

status

ApiResponseStatusType

Тип ответа.
Enum: OK, ERROR

errors

ApiErrorDTO[]

Список ошибок.
Общий формат ошибки.

403 Forbidden

Данные для авторизации неверны или доступ к ресурсу запрещен.

Body

application/json
{
    "status": "OK",
    "errors": [
        {
            "code": "string",
            "message": "string"
        }
    ]
}

Name

Type

Description

status

ApiResponseStatusType

Тип ответа.
Enum: OK, ERROR

errors

ApiErrorDTO[]

Список ошибок.
Общий формат ошибки.

404 Not Found

Запрашиваемый ресурс не найден.

Body

application/json
{
    "status": "OK",
    "errors": [
        {
            "code": "string",
            "message": "string"
        }
    ]
}

Name

Type

Description

status

ApiResponseStatusType

Тип ответа.
Enum: OK, ERROR

errors

ApiErrorDTO[]

Список ошибок.
Общий формат ошибки.

420 Method Failure

Превышено ограничение на доступ к ресурсу.

Body

application/json
{
    "status": "OK",
    "errors": [
        {
            "code": "string",
            "message": "string"
        }
    ]
}

Name

Type

Description

status

ApiResponseStatusType

Тип ответа.
Enum: OK, ERROR

errors

ApiErrorDTO[]

Список ошибок.
Общий формат ошибки.

500 Internal Server Error

Внутренняя ошибка сервера.

Body

application/json
{
    "status": "OK",
    "errors": [
        {
            "code": "string",
            "message": "string"
        }
    ]
}

Name

Type

Description

status

ApiResponseStatusType

Тип ответа.
Enum: OK, ERROR

errors

ApiErrorDTO[]

Список ошибок.
Общий формат ошибки.