Удаление товаров из заказа или уменьшение их числа

Метод доступен для модели DBS.

Если вы используете API-Key-токен, для вызова метода необходим один из доступов в списке

Если вы работаете по модели FBS

Используйте метод PUT v2/campaigns/{campaignId}/orders/{orderId}/boxes.

Удаляет один или несколько товаров из заказа, если магазин не может поставить их все.

Заказ должен находится в статусе "status": "PROCESSING" этапа обработки "substatus": "STARTED". Изменить состав нельзя после передачи статуса "substatus": "READY_TO_SHIP".

Уменьшить количество одинаковых товаров

Передайте обновленное значение в параметре count.

Удалить товар из заказа

Передайте значение 0 в параметре count или не передавайте item.

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

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

В таком случае отмените заказ — в методе PUT v2/campaigns/{campaignId}/orders/{orderId}/status передайте статус заказа CANCELLED с причиной отмены SHOP_FAILED.

Как вернутся деньги

Если покупатель оплатил товар при оформлении, Маркет вернет ему деньги за удаленные из заказа товары в течение двух дней:

  • при оплате банковской картой — с момента, когда магазин переведет заказ в статус SHIPPED;

  • при оплате через Apple Pay или Google Pay — с момента, когда магазин удалит товар из заказа.

⚙️ Лимит: 100 000 запросов в час

Request

PUT

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

Path parameters

Name

Description

campaignId

Type: integer

Идентификатор кампании (магазина) — технический идентификатор, который представляет ваш магазин в системе Яндекс Маркета при работе через API. Он однозначно связывается с вашим магазином, но предназначен только для автоматизированного взаимодействия.

Его можно узнать с помощью запроса GET v2/campaigns или найти в кабинете продавца на Маркете. Нажмите на иконку вашего аккаунта → Настройки и в меню слева выберите API и модули:

  • блок Идентификатор кампании;
  • вкладка Лог запросов → выпадающий список в блоке Показывать логи.

⚠️ Не путайте его с:

  • идентификатором магазина, который отображается в личном кабинете продавца;
  • рекламными кампаниями.

Min value: 1

orderId

Type: integer

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

Body

application/json
{
  "items": [
    {
      "id": 0,
      "count": 0,
      "instances": [
        {
          "cis": "example",
          "uin": "example",
          "rnpt": "example",
          "gtd": "example",
          "countryCode": "RU"
        }
      ]
    }
  ],
  "reason": "PARTNER_REQUESTED_REMOVE"
}

Name

Description

items

Type: OrderItemModificationDTO[]

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

Если магазин не передал информацию о товаре во входных данных, он будет удален из заказа.

Обязательный параметр.

Min items: 1

Example
[
  {
    "id": 0,
    "count": 0,
    "instances": [
      {
        "cis": "example",
        "uin": "example",
        "rnpt": "example",
        "gtd": "example",
        "countryCode": "RU"
      }
    ]
  }
]

reason

Type: OrderItemsModificationRequestReasonType

Причина, почему обновился состав заказа:

  • PARTNER_REQUESTED_REMOVE — магазин удалил товар.
  • USER_REQUESTED_REMOVE — покупатель попросил удалить товар.

Enum: PARTNER_REQUESTED_REMOVE, USER_REQUESTED_REMOVE

Cis

Код идентификации единицы товара в системе «Честный ЗНАК» или «ASL BELGISI» (для продавцов Market Yandex Go).

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

01030410947874432155Qbag!\u001d93Zjqw

01030410947874432155Qbag!\\u001d93Zjqw

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

Type: string

Example: example

CountryCode

Страна производства в формате ISO 3166-1 alpha-2. Как получить

Type: string

Min length: 2

Max length: 2

Pattern: ^[A-Z]{2}$

Example: RU

BriefOrderItemInstanceDTO

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

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

Подробно о работе с маркируемыми товарами читайте в Справке Маркета для продавцов.

Name

Description

cis

Type: Cis

Код идентификации единицы товара в системе «Честный ЗНАК» или «ASL BELGISI» (для продавцов Market Yandex Go).

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

01030410947874432155Qbag!\u001d93Zjqw

01030410947874432155Qbag!\\u001d93Zjqw

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

Example: example

countryCode

Type: CountryCode

Страна производства в формате ISO 3166-1 alpha-2. Как получить

Min length: 2

Max length: 2

Pattern: ^[A-Z]{2}$

Example: RU

gtd

Type: string

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

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

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

Example: example

rnpt

Type: string

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

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

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

Example: example

uin

Type: string

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

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

Example: example

Example
{
  "cis": "example",
  "uin": "example",
  "rnpt": "example",
  "gtd": "example",
  "countryCode": "RU"
}

OrderItemModificationDTO

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

Если магазин не передал информацию о товаре во входных данных, он будет удален из заказа.

Обязательный параметр.

Name

Description

count

Type: integer

Новое количество товара.

Min value: 0

id

Type: integer

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

Получить идентификатор можно с помощью метода:

Обязательный параметр.

instances

Type: BriefOrderItemInstanceDTO[] | null

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

Передавайте в запросе все единицы товара, который подлежит маркировке.

Обязательный параметр, если в заказе от бизнеса есть товары, подлежащие маркировке в системе «Честный ЗНАК» или «ASL BELGISI» (для продавцов Market Yandex Go).

Min items: 1

Example
[
  {
    "cis": "example",
    "uin": "example",
    "rnpt": "example",
    "gtd": "example",
    "countryCode": "RU"
  }
]
Example
{
  "id": 0,
  "count": 0,
  "instances": [
    {
      "cis": "example",
      "uin": "example",
      "rnpt": "example",
      "gtd": "example",
      "countryCode": "RU"
    }
  ]
}

OrderItemsModificationRequestReasonType

Причина, почему обновился состав заказа:

  • PARTNER_REQUESTED_REMOVE — магазин удалил товар.
  • USER_REQUESTED_REMOVE — покупатель попросил удалить товар.

Type: string

Enum: PARTNER_REQUESTED_REMOVE, USER_REQUESTED_REMOVE

Responses

200 OK

Маркет успешно обработал ваш запрос. Выходные данные не ожидаются.

400 Bad Request

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

Body

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

Type: object

All of 1 type
  • Type: ApiErrorResponse

    Стандартная обертка для ошибок сервера.

    Example
    {
      "status": "OK",
      "errors": [
        {
          "code": "example",
          "message": "example"
        }
      ]
    }
    

ApiResponseStatusType

Тип ответа. Возможные значения:

  • OK — ошибок нет.
  • ERROR — при обработке запроса произошла ошибка.

Type: string

Enum: OK, ERROR

ApiResponse

Стандартная обертка для ответов сервера.

Name

Description

status

Type: ApiResponseStatusType

Тип ответа. Возможные значения:

  • OK — ошибок нет.
  • ERROR — при обработке запроса произошла ошибка.

Enum: OK, ERROR

Example
{
  "status": "OK"
}

ApiErrorDTO

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

Name

Description

code

Type: string

Код ошибки.

Example: example

message

Type: string

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

Example: example

Example
{
  "code": "example",
  "message": "example"
}

ApiErrorResponse

Стандартная обертка для ошибок сервера.

Type: object

All of 2 types
  • Type: ApiResponse

    Стандартная обертка для ответов сервера.

    Example
    {
      "status": "OK"
    }
    
  • Type: object

    errors

    Type: ApiErrorDTO[] | null

    Список ошибок.

    Min items: 1

    Example
    [
      {
        "code": "example",
        "message": "example"
      }
    ]
    
    Example
    {
      "errors": [
        {
          "code": "example",
          "message": "example"
        }
      ]
    }
    
Example
{
  "status": "OK",
  "errors": [
    {
      "code": "example",
      "message": "example"
    }
  ]
}

401 Unauthorized

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

Body

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

Type: object

All of 1 type
  • Type: ApiErrorResponse

    Стандартная обертка для ошибок сервера.

    Example
    {
      "status": "OK",
      "errors": [
        {
          "code": "example",
          "message": "example"
        }
      ]
    }
    

403 Forbidden

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

Body

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

Type: object

All of 1 type
  • Type: ApiErrorResponse

    Стандартная обертка для ошибок сервера.

    Example
    {
      "status": "OK",
      "errors": [
        {
          "code": "example",
          "message": "example"
        }
      ]
    }
    

404 Not Found

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

Body

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

Type: object

All of 1 type
  • Type: ApiErrorResponse

    Стандартная обертка для ошибок сервера.

    Example
    {
      "status": "OK",
      "errors": [
        {
          "code": "example",
          "message": "example"
        }
      ]
    }
    

420 Method Failure

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

Body

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

Type: object

All of 1 type
  • Type: ApiErrorResponse

    Стандартная обертка для ошибок сервера.

    Example
    {
      "status": "OK",
      "errors": [
        {
          "code": "example",
          "message": "example"
        }
      ]
    }
    

500 Internal Server Error

Внутренняя ошибка Маркета. Подробнее об ошибке

Body

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

Type: object

All of 1 type
  • Type: ApiErrorResponse

    Стандартная обертка для ошибок сервера.

    Example
    {
      "status": "OK",
      "errors": [
        {
          "code": "example",
          "message": "example"
        }
      ]
    }
    

No longer supported, please use an alternative and newer version.

Значение cis должно соответствовать регулярному выражению ^(?=.{1,256}$)\u001D?(\(?01\)?\d{14}\(?21\)?([!-~]{6,8}|[!-~]{13}|[!-~]{20})(\u001D\(?240\)?.{1,30})?\u001D\(?9[1,3]\)?.+)$.

Без криптохвоста — ^(?=[!-~]{1,256}$)(\(?01\)?\d{14}\(?21\)?(.{6,8}|.{13}|.{20}))$.