Остатки хранятся по размерам, а не по товарам. Физический остаток — это то, что лежит на полке; доступный — физический минус резервы под неотгруженные заказы. Покупатель на витрине видит доступный, кладовщик работает с физическим, и путать их нельзя. Общее для всего раздела, кроме списка складов: раздел «Склад» может быть недоступен по тарифу — тогда любой из этих эндпоинтов ответит 403 {"error":"Раздел недоступен на вашем тарифе","section":"warehouse"}, а без определённого бренда в контексте — 400 {"error":"Бренд не определён"}. Это не повторяется в каждом эндпоинте отдельно.
Передаётся итоговое количество, а не дельта. Режим physical означает, что вы сообщаете физическое наличие на полке, и платформа сама вычтет из него уже собранные, но не отгруженные заказы.
Параметры пути
Параметр
Тип
Обязателен
Описание
id
number
да
Идентификатор склада.
Тело запроса
Параметр
Тип
Обязателен
Описание
items
array
нет
Список из объектов с полями productSizeId/productVariantId и quantity. Обязателен, если не передаёте одну позицию плоско (см. ниже).
productSizeId
number
нет
Альтернатива items для одной позиции: id легаси-размера прямо в теле, без массива.
productVariantId
number
нет
То же самое для товара на системе атрибутов (без легаси-размера) — вариант вместо productSizeId, плоско или внутри items[].
quantity
number
нет
Количество для той же плоской формы — вместе с productSizeId/productVariantId.
mode
string
нет
physical — вы сообщаете наличие на полке; без него значение записывается как есть и не опускается ниже нуля.physical
Единицы товара, закреплённые за заказами, с признаком срока годности.
Доступ:Ключ интеграцииСессия сотрудникаПраво:view_stock или manage_stock
Резерв до оплаты живёт ограниченное время — по умолчанию тридцать минут — и снимается сам, если заказ не оплатили. После оплаты становится бессрочным и снимается только при отгрузке.
Параметры запроса
Параметр
Тип
Обязателен
Описание
status
string
нетпо умолчанию active
Какие резервы показать.active · expired · released · all
{"error":"Недостаточно остатка sizeId=<N> на складе <ID>: есть <X>, нужно <Y>"}
На складе-источнике не хватает товара.
Сообщение содержит фактический и требуемый остаток — по нему видно, чего не хватило.
400
{"error":"Склад не найден или деактивирован"}code: WAREHOUSE_NOT_FOUND
Один из складов не существует или деактивирован. Отдельная ошибка от «Некорректные склады» — та про совпадающие/отсутствующие id, эта про реально несуществующие.