Массовое обновление цен

Массово обновляет цены товаров. За один запрос можно передать до 5000 элементов — товар с новыми ценами.

Операция синхронная и атомарная. Если хотя бы один элемент батча недействителен (товар не найден или архивирован, товар передан в батче более одного раза, цена некорректна), весь запрос отклоняется с ошибкой 400, и ни одно изменение не применяется. В поле errors ответа перечислены все недействительные элементы с идентификаторами товара.

Оба поля цен необязательные. Чтобы не менять текущее значение, не передавайте соответствующий ключ. Чтобы установить новое значение, передайте его. manual_discount_price: null — сбрасывает цену со скидкой. price: null — сбрасывает базовую цену (доступно только для неопубликованных товаров, для опубликованных товаров сброс цены запрещен).

Если цена со скидкой превышает цену до скидки, элемент отклоняется с ошибкой INVALID_PRICE. Передайте новую цену со скидкой либо null для ее сброса.

При смене цены до скидки цена по акции пересчитывается. Если новая цена меняет вхождение товара в акцию, состав акций актуализируется позже — в фоновом режиме.

Request

POST

https://api.kit.yandex.net/v1/variants/prices/bulk_update

Body

application/json
{
  "items": [
    {
      "variant_id": "019b21d9-c5d9-777d-80bd-d67c664bc6d9",
      "price": "1000",
      "manual_discount_price": "900"
    }
  ]
}

Name

Description

items

Type: BulkPriceItem[]

Элементы обновления. Товар не может повторяться.

Min items: 1

Max items: 5000

Example
[
  {
    "variant_id": "019b21d9-c5d9-777d-80bd-d67c664bc6d9",
    "price": "1000",
    "manual_discount_price": "900"
  }
]

VariantID

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

Type: string<uuid>

Example: 019b21d9-c5d9-777d-80bd-d67c664bc6d9

BulkPriceItem

Элемент массового обновления цен — новые цены товара

Name

Description

variant_id

Type: VariantID

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

Example: 019b21d9-c5d9-777d-80bd-d67c664bc6d9

manual_discount_price

Type: string<decimal> | null

Цена со скидкой, установленная вручную (поле опционально). Не передавайте ключ, чтобы не менять текущую цену со скидкой; null — сбросить ее.

Example: 900

price

Type: string<decimal> | null

Цена до скидки (поле опционально). Не передавайте ключ, чтобы не менять текущую цену; null — сбросить цену (только у неопубликованного товара).

Example: 1000

Example
{
  "variant_id": "019b21d9-c5d9-777d-80bd-d67c664bc6d9",
  "price": "1000",
  "manual_discount_price": "900"
}

Responses

204 No Content

Цены успешно обновлены.

400 Bad Request

Некорректный запрос. Для невалидных элементов батча в поле errors перечислены идентификаторы, коды и описания ошибок.

Body

application/json
{
  "code": "VALIDATION_ERROR",
  "message": "Invalid input",
  "trace_id": "00000000000000000000000000000000",
  "errors": [
    {
      "variant_id": "019b21d9-c5d9-777d-80bd-d67c664bc6d9",
      "warehouse_id": "019b21d9-c5d9-777d-80bd-d67c664bc6d9",
      "code": "VARIANT_NOT_FOUND",
      "message": "Товар с id 019b21d9-c5d9-777d-80bd-d67c664bc6d9 не найден"
    }
  ]
}
All of 2 types
  • Type: Error

    Example
    {
      "code": "VALIDATION_ERROR",
      "message": "Invalid input",
      "trace_id": "00000000000000000000000000000000"
    }
    
  • Type: object

    errors

    Type: BulkOperationItemError[]

    Example
    [
      {
        "variant_id": "019b21d9-c5d9-777d-80bd-d67c664bc6d9",
        "warehouse_id": "019b21d9-c5d9-777d-80bd-d67c664bc6d9",
        "code": "VARIANT_NOT_FOUND",
        "message": "Товар с id 019b21d9-c5d9-777d-80bd-d67c664bc6d9 не найден"
      }
    ]
    
    Example
    {
      "errors": [
        {
          "variant_id": "019b21d9-c5d9-777d-80bd-d67c664bc6d9",
          "warehouse_id": "019b21d9-c5d9-777d-80bd-d67c664bc6d9",
          "code": "VARIANT_NOT_FOUND",
          "message": "Товар с id 019b21d9-c5d9-777d-80bd-d67c664bc6d9 не найден"
        }
      ]
    }
    

Error

Name

Description

code

Type: string

Example: VALIDATION_ERROR

message

Type: string

Example: Invalid input

trace_id

Type: string

Уникальный идентификатор запроса для отладки.

Example: 00000000000000000000000000000000

Example
{
  "code": "VALIDATION_ERROR",
  "message": "Invalid input",
  "trace_id": "00000000000000000000000000000000"
}

WarehouseID

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

Type: string<uuid>

Example: 019b21d9-c5d9-777d-80bd-d67c664bc6d9

BulkOperationItemError

Ошибка обработки одного элемента массовой операции.

Name

Description

code

Type: string

Код ошибки элемента:

  • VARIANT_NOT_FOUND — товар не найден.
  • WAREHOUSE_NOT_FOUND — склад не найден.
  • VARIANT_ARCHIVED — товар архивирован.
  • WAREHOUSE_ARCHIVED — склад архивирован.
  • DUPLICATE_ITEM — элемент с таким идентификатором передан более одного раза.
  • INVALID_QUANTITY — некорректное количество.
  • INVALID_PRICE — некорректная цена.

Example: VARIANT_NOT_FOUND

message

Type: string

Человекочитаемое описание ошибки.

Example: Товар с id 019b21d9-c5d9-777d-80bd-d67c664bc6d9 не найден

variant_id

Type: VariantID

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

Example: 019b21d9-c5d9-777d-80bd-d67c664bc6d9

warehouse_id

Type: WarehouseID

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

Example: 019b21d9-c5d9-777d-80bd-d67c664bc6d9

Example
{
  "variant_id": "019b21d9-c5d9-777d-80bd-d67c664bc6d9",
  "warehouse_id": "019b21d9-c5d9-777d-80bd-d67c664bc6d9",
  "code": "VARIANT_NOT_FOUND",
  "message": "Товар с id 019b21d9-c5d9-777d-80bd-d67c664bc6d9 не найден"
}

401 Unauthorized

Не авторизован.

Body

application/json
{
  "code": "VALIDATION_ERROR",
  "message": "Invalid input",
  "trace_id": "00000000000000000000000000000000"
}

Name

Description

code

Type: string

Example: VALIDATION_ERROR

message

Type: string

Example: Invalid input

trace_id

Type: string

Уникальный идентификатор запроса для отладки.

Example: 00000000000000000000000000000000

500 Internal Server Error

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

Body

application/json
{
  "code": "VALIDATION_ERROR",
  "message": "Invalid input",
  "trace_id": "00000000000000000000000000000000"
}

Name

Description

code

Type: string

Example: VALIDATION_ERROR

message

Type: string

Example: Invalid input

trace_id

Type: string

Уникальный идентификатор запроса для отладки.

Example: 00000000000000000000000000000000