Массовое обновление остатков
Массово обновляет остатки товаров по складам. За один запрос можно передать до 5000 элементов — пар товаров + склад с новым количеством.
Операция выполняется синхронно и атомарно. Запрос будет отклонен с ошибкой 400, а изменения — не применены, если в батче обнаружен хотя бы один из следующих случаев:
- товар или склад не найден;
- товар или склад архивирован;
- пара «товар + склад» указана в батче более одного раза.
В поле errors ответа будет представлен список всех невалидных элементов с указанием идентификаторов соответствующих товаров и складов.
Количество устанавливается как абсолютное значение.
Зарезервированное количество (reserved) не изменяется.
Остатки на складах, не упомянутых в батче, не затрагиваются.
Request
POST
https://api.kit.yandex.net/v1/variants/stocks/bulk_update
Body
application/json
{
"items": [
{
"variant_id": "019b21d9-c5d9-777d-80bd-d67c664bc6d9",
"warehouse_id": "019b21d9-c5d9-777d-80bd-d67c664bc6d9",
"quantity": 10
}
]
}
|
Name |
Description |
|
items |
Type: BulkStockItem[] Элементы обновления. Пара товар + склад не может повторяться. Min items: Max items: Example
|
VariantID
Идентификатор товара.
Type: string<uuid>
Example: 019b21d9-c5d9-777d-80bd-d67c664bc6d9
WarehouseID
Идентификатор склада.
Type: string<uuid>
Example: 019b21d9-c5d9-777d-80bd-d67c664bc6d9
BulkStockItem
Элемент массового обновления остатков — новое количество товара на складе.
|
Name |
Description |
|
quantity |
Type: integer Новое количество товара на складе (абсолютное значение). Min value: |
|
variant_id |
Type: VariantID Идентификатор товара. Example: |
|
warehouse_id |
Type: WarehouseID Идентификатор склада. Example: |
Example
{
"variant_id": "019b21d9-c5d9-777d-80bd-d67c664bc6d9",
"warehouse_id": "019b21d9-c5d9-777d-80bd-d67c664bc6d9",
"quantity": 10
}
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: |
|
message |
Type: string Example: |
|
trace_id |
Type: string Уникальный идентификатор запроса для отладки. Example: |
Example
{
"code": "VALIDATION_ERROR",
"message": "Invalid input",
"trace_id": "00000000000000000000000000000000"
}
BulkOperationItemError
Ошибка обработки одного элемента массовой операции.
|
Name |
Description |
|
code |
Type: string Код ошибки элемента:
Example: |
|
message |
Type: string Человекочитаемое описание ошибки. Example: |
|
variant_id |
Type: VariantID Идентификатор товара. Example: |
|
warehouse_id |
Type: WarehouseID Идентификатор склада. Example: |
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: |
|
message |
Type: string Example: |
|
trace_id |
Type: string Уникальный идентификатор запроса для отладки. Example: |
500 Internal Server Error
Внутренняя ошибка сервера.
Body
application/json
{
"code": "VALIDATION_ERROR",
"message": "Invalid input",
"trace_id": "00000000000000000000000000000000"
}
|
Name |
Description |
|
code |
Type: string Example: |
|
message |
Type: string Example: |
|
trace_id |
Type: string Уникальный идентификатор запроса для отладки. Example: |