Загрузка (обновление) остатков
MVPPOST /v1/product/stock/update
/v1/product/stock/updateЕсли в одном запросе передано несколько записей с одинаковым product_id, при обработке учитывается последняя переданная запись.
Если указаны оба идентификатора, приоритет имеет product_id. В запросе необходимо указать product_id или offer_id. Для некоторых витрин требуется передавать оба поля.
Обновление в стандарте синхронно, но можно получать результат обновления через stock/info.
Тело запроса
Список остатков товаров. Максимальное количество элементов в одном запросе — 200.
Заполняется либо offer_id, либо product_id. Если заполнены оба идентификатора, то используется только product_id. Витрина может потребовать передавать оба параметра offer_id и product_id.
Показать свойстваСкрыть свойства
Идентификатор товара.
Артикул продавца.
Идентификатор склада.
Количество на складе.
Успешный ответ
200A successful response. application/json
Количество успешно обработанных элементов.
Элементы, по которым возникла ошибка.
Ошибка обновления по конкретному элементу остатков.
Если вернулись оба поля product_id и offer_id, приоритетным считается product_id.
Показать свойстваСкрыть свойства
Идентификатор товара.
Артикул продавца.
Идентификатор склада.
Текст ошибки элемента (compat). Предпочтительно использовать errors.
Структурированные ошибки элемента батча. Коды: ProductStockUpdateValidationErrorCode.
Ошибка валидации/бизнеса поля для scope «ProductStockUpdate». Допустимые field: items[].product_id, offer_id, location_id, count. Для бизнес-правил витрины: code=STOREFRONT_RULE_VIOLATION.
Показать свойстваСкрыть свойства
Путь к полю. Ожидаемые: items[].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: Превышен лимит элементов
NOT_FOUND: Сущность не найдена (уточняется полем field)
STOREFRONT_RULE_VIOLATION: Отклонено бизнес-правилом витрины (детали в message)
Текст для клиента. Для STOREFRONT_RULE_VIOLATION — описание правила.
Ошибки
400Некорректный запрос application/json
Класс транспортной ошибки запроса (HTTP 4xx/5xx).
Поэлементные и бизнес-ошибки сущности приходят в HTTP 200 в errors/failed, не в этом поле.
ERROR_TYPE_UNSPECIFIED: не используетсяERROR_TYPE_UNAUTHORIZED: HTTP 401ERROR_TYPE_RATE_LIMIT: HTTP 429ERROR_TYPE_INTERNAL: HTTP 500ERROR_TYPE_BAD_REQUEST: HTTP 400 (уровень запроса)
Машинный код ошибки. Уточняет error_type.
Человекочитаемое сообщение об ошибке.
401Ошибка авторизации application/json
Класс транспортной ошибки запроса (HTTP 4xx/5xx).
Поэлементные и бизнес-ошибки сущности приходят в HTTP 200 в errors/failed, не в этом поле.
ERROR_TYPE_UNSPECIFIED: не используетсяERROR_TYPE_UNAUTHORIZED: HTTP 401ERROR_TYPE_RATE_LIMIT: HTTP 429ERROR_TYPE_INTERNAL: HTTP 500ERROR_TYPE_BAD_REQUEST: HTTP 400 (уровень запроса)
Машинный код ошибки. Уточняет error_type.
Человекочитаемое сообщение об ошибке.
429Превышен лимит запросов application/json
Класс транспортной ошибки запроса (HTTP 4xx/5xx).
Поэлементные и бизнес-ошибки сущности приходят в HTTP 200 в errors/failed, не в этом поле.
ERROR_TYPE_UNSPECIFIED: не используетсяERROR_TYPE_UNAUTHORIZED: HTTP 401ERROR_TYPE_RATE_LIMIT: HTTP 429ERROR_TYPE_INTERNAL: HTTP 500ERROR_TYPE_BAD_REQUEST: HTTP 400 (уровень запроса)
Машинный код ошибки. Уточняет error_type.
Человекочитаемое сообщение об ошибке.
500Внутренняя ошибка сервера application/json
Класс транспортной ошибки запроса (HTTP 4xx/5xx).
Поэлементные и бизнес-ошибки сущности приходят в HTTP 200 в errors/failed, не в этом поле.
ERROR_TYPE_UNSPECIFIED: не используетсяERROR_TYPE_UNAUTHORIZED: HTTP 401ERROR_TYPE_RATE_LIMIT: HTTP 429ERROR_TYPE_INTERNAL: HTTP 500ERROR_TYPE_BAD_REQUEST: HTTP 400 (уровень запроса)
Машинный код ошибки. Уточняет error_type.
Человекочитаемое сообщение об ошибке.