Загрузка (обновление) остатков
POST /v1/product/stock/update
POST
/v1/product/stock/updateЕсли в одном запросе передано несколько записей с одинаковой парой product_id и location_id, при обработке учитывается последняя запись, предыдущие игнорируются.
В каждом элементе обязательно указать product_id или offer_id (достаточно одного поля; оба вместе не обязательны).
Тело запроса
items
array
Список остатков товаров. Максимальное количество элементов в одном запросе — 200.
Идентификаторы offer_id и product_id используются с приоритезацией.
Если заполнены оба идентификатора, то используется только offer_id.
Обязательно передать хотя бы одно из полей product_id или offer_id; оба вместе не обязательны.
Показать свойстваСкрыть свойства
product_id
string
Идентификатор товара. Обязателен, если не передан offer_id; достаточно указать одно из полей product_id или offer_id.
offer_id
string
Артикул продавца. Обязателен, если не передан product_id; достаточно указать одно из полей product_id или offer_id.
location_id
string
Идентификатор склада.
count
integer
Количество на складе.
Успешный ответ
200A successful response. application/json
object
processed
integer
Количество успешно обработанных элементов.
failed
array
Элементы, по которым возникла ошибка.
Ошибка обновления по конкретному элементу остатков.
Идентификаторы offer_id и product_id используются с приоритезацией.
Если заполнены оба идентификатора, то используется только offer_id.
Показать свойстваСкрыть свойства
product_id
string
Идентификатор товара.
offer_id
string
Артикул продавца.
location_id
string
Идентификатор склада.
error_message
string
Текст ошибки элемента (compat). Предпочтительно использовать
errors.errors
array
Структурированные ошибки элемента батча. Коды: ProductStockUpdateValidationErrorCode.
Ошибка валидации/бизнеса поля для scope «ProductStockUpdate». Допустимые field: stocks[].product_id, offer_id, location_id, count. Для бизнес-правил витрины: code=STOREFRONT_RULE_VIOLATION.
Показать свойстваСкрыть свойства
field
string
required Путь к полю. Ожидаемые: stocks[].product_id, offer_id, location_id, count.
code
string
required Коды ошибок ручки (scope ProductStockUpdate). Допустимые field: stocks[].product_id, offer_id, location_id, count.
- REQUIRED: Поле отсутствует или пустое, но обязательно
- INVALID_TYPE: Неверный JSON-тип
- INVALID_FORMAT: Общий сбой формата значения
- REQUIRED_ONE_OF: Нужен хотя бы один из набора полей
- NEGATIVE_VALUE: Отрицательное значение недопустимо
- MIN_VALUE: Значение ниже минимума
- MAX_VALUE: Значение выше максимума
- TOO_MANY_ITEMS: Превышен maxItems / лимит пакета
- NOT_FOUND: Сущность не найдена (уточняется полем field)
- STOREFRONT_RULE_VIOLATION: Запрос синтаксически валиден, но отклонён бизнес-правилом витрины (детали в message)
Допустимые значения
REQUIREDINVALID_TYPEINVALID_FORMATREQUIRED_ONE_OFNEGATIVE_VALUEMIN_VALUEMAX_VALUETOO_MANY_ITEMSNOT_FOUNDSTOREFRONT_RULE_VIOLATION
message
string
required Текст для клиента. Для STOREFRONT_RULE_VIOLATION — описание правила.
Ошибки
400Некорректный запрос application/json
object
error_type
string
ERROR_TYPE_BAD_REQUEST — HTTP 400 (request-level); ERROR_TYPE_UNAUTHORIZED — 401; ERROR_TYPE_RATE_LIMIT — 429; ERROR_TYPE_INTERNAL — 500. Поэлементные/бизнес-ошибки сущности — в HTTP 200 errors/failed, не здесь.
Допустимые значения
ERROR_TYPE_UNSPECIFIEDERROR_TYPE_UNAUTHORIZEDERROR_TYPE_RATE_LIMITERROR_TYPE_INTERNALERROR_TYPE_BAD_REQUEST
code
string
код ошибки
message
string
сообщение
details
object
401Ошибка авторизации application/json
object
error_type
string
ERROR_TYPE_BAD_REQUEST — HTTP 400 (request-level); ERROR_TYPE_UNAUTHORIZED — 401; ERROR_TYPE_RATE_LIMIT — 429; ERROR_TYPE_INTERNAL — 500. Поэлементные/бизнес-ошибки сущности — в HTTP 200 errors/failed, не здесь.
Допустимые значения
ERROR_TYPE_UNSPECIFIEDERROR_TYPE_UNAUTHORIZEDERROR_TYPE_RATE_LIMITERROR_TYPE_INTERNALERROR_TYPE_BAD_REQUEST
code
string
код ошибки
message
string
сообщение
details
object
429Превышен лимит запросов application/json
object
error_type
string
ERROR_TYPE_BAD_REQUEST — HTTP 400 (request-level); ERROR_TYPE_UNAUTHORIZED — 401; ERROR_TYPE_RATE_LIMIT — 429; ERROR_TYPE_INTERNAL — 500. Поэлементные/бизнес-ошибки сущности — в HTTP 200 errors/failed, не здесь.
Допустимые значения
ERROR_TYPE_UNSPECIFIEDERROR_TYPE_UNAUTHORIZEDERROR_TYPE_RATE_LIMITERROR_TYPE_INTERNALERROR_TYPE_BAD_REQUEST
code
string
код ошибки
message
string
сообщение
details
object
500Внутренняя ошибка сервера application/json
object
error_type
string
ERROR_TYPE_BAD_REQUEST — HTTP 400 (request-level); ERROR_TYPE_UNAUTHORIZED — 401; ERROR_TYPE_RATE_LIMIT — 429; ERROR_TYPE_INTERNAL — 500. Поэлементные/бизнес-ошибки сущности — в HTTP 200 errors/failed, не здесь.
Допустимые значения
ERROR_TYPE_UNSPECIFIEDERROR_TYPE_UNAUTHORIZEDERROR_TYPE_RATE_LIMITERROR_TYPE_INTERNALERROR_TYPE_BAD_REQUEST
code
string
код ошибки
message
string
сообщение
details
object
defaultОшибка (неожиданная или прочие) application/json
object
error_type
string
ERROR_TYPE_BAD_REQUEST — HTTP 400 (request-level); ERROR_TYPE_UNAUTHORIZED — 401; ERROR_TYPE_RATE_LIMIT — 429; ERROR_TYPE_INTERNAL — 500. Поэлементные/бизнес-ошибки сущности — в HTTP 200 errors/failed, не здесь.
Допустимые значения
ERROR_TYPE_UNSPECIFIEDERROR_TYPE_UNAUTHORIZEDERROR_TYPE_RATE_LIMITERROR_TYPE_INTERNALERROR_TYPE_BAD_REQUEST
code
string
код ошибки
message
string
сообщение
details
object
POST/v1/product/stock/update
1curl https://api.omninet.ru/v1/product/stock/update \2 --request POST \3 --header 'Content-Type: application/json' \4 --data '{5 "items": [6 {7 "product_id": "string",8 "offer_id": "string",9 "location_id": "string",10 "count": 011 }12 ]13}'{
"processed": 0,
"failed": [
{
"product_id": "string",
"offer_id": "string",
"location_id": "string",
"error_message": "string",
"errors": [
{
"field": "count",
"code": "NEGATIVE_VALUE",
"message": "Остаток не может быть отрицательным"
}
]
}
]
}A successful response.