Обмен данными · Руководства
Остатки и склады
Как устроен учёт остатков в SelSup, как получить остатки склада и изменить их по SKU, артикулу или штрихкоду.
Остатки товаров в SelSup привязаны к SKU — единице складского учёта. Нескольким товарам можно назначить один SKU, чтобы учитывать их общий остаток.
WMS, ERP и складские интеграции1
Остатки в SelSup
Каждому товару в SelSup присваивается SKU. Если разные карточки относятся к одному товару на складе, им можно указать одинаковый SKU. Идентификатор товара передаётся в productId, идентификатор SKU — в skuId.
SelSup поддерживает два способа учёта остатков. При поштучном учёте каждой единице товара присваивается уникальный код. По нему можно найти товар на складе и посмотреть историю именно этой единицы. Стикер с кодом можно наклеить в удобном для сканирования месте, в том числе при работе с маркированными товарами.
При количественном учёте указывается, сколько товара с определённым SKU находится в ячейке. Отдельный уникальный код для каждой штуки не нужен.
Связанные методы API
GET/api/product/findПолучить skuId у товараGET/api/warehouse/listПолучить склады
2
Получение остатков склада
Чтобы получить все остатки склада, вызовите GET /api/wms/stock/all и передайте идентификатор склада в warehouseId. В ответ придёт JSON-массив.
В каждом элементе skuId содержит идентификатор SKU, sku.product — основной товар этого SKU, cell — ячейку хранения, modifyDate — время последнего изменения. Поле quantity содержит количество доступного остатка, calculatedQuantity — количество рассчитанного остатка.
curl 'https://api.selsup.ru/api/wms/stock/all?warehouseId=10129' \
--header 'Authorization: YOUR_API_TOKEN'
[
{
"sku": {
"product": {
"id": 1422612,
"skuId": 1044318
}
},
"skuId": 1044318,
"cell": {
"id": 66,
"warehouseId": 10129,
"fullName": "А.1.1.1"
},
"modifyDate": "2026-11-01T12:00:00+03:00",
"quantity": 24,
"calculatedQuantity": 0
}
]
3
Изменение остатков по SKU SelSup
Для изменения остатков используйте PUT /api/wms/stock. В skuId передайте идентификатор SKU из ответа /api/product/find, в serviceWarehouseId — идентификатор склада SelSup. В теле запроса передаётся массив изменений.
Поле stock задаёт новое количество. Обычно withReservedStock передают со значением true, чтобы учесть резерв в SelSup.
Передавайте updateInService=false, если достаточно изменить остаток в SelSup. При true метод также синхронно обновляет остатки на маркетплейсах, поэтому ответ может занять больше времени.
[
{
"stock": 5,
"serviceWarehouseId": "1234",
"updateInService": false,
"withReservedStock": true,
"skuId": 1044318
}
]
Связанные методы API
PUT/api/wms/stockОбновить по skuId
4
Изменение остатков по артикулу или штрихкоду
Используйте PUT /api/wms/stock/{service}. Вместо {service} укажите сервис, по идентификатору которого SelSup должен найти товар. Например, для обновления по артикулу 1С используется /api/wms/stock/1C.
В serviceProductId передайте идентификатор товара во внешнем сервисе, в serviceWarehouseId — идентификатор склада этого сервиса из настроек связей со складами SelSup.
Для поиска по штрихкоду передайте barcode вместо serviceProductId. В примере ниже склад SelSup определяется по связи со складом Ozon.
[
{
"stock": 5,
"serviceProductId": "ITEM-001",
"serviceWarehouseId": "1C-WH-01",
"updateInService": false,
"withReservedStock": true
}
]
[
{
"stock": 5,
"barcode": "4601234567890",
"serviceWarehouseId": "OZON-WH-01",
"updateInService": false,
"withReservedStock": true
}
]
5
Проверка обновления остатков
- 1
Проверьте товар и склад
Перед массовым обновлением отправьте одну позицию. Убедитесь, что skuId или внешний идентификатор относится к нужному товару, а serviceWarehouseId — к нужному складу.
- 2
Обработайте результат
Метод возвращает результат для каждой позиции. Если позиция не обновилась, проверьте сообщение об ошибке, идентификатор товара и связь складов.
- 3
Сверьте остатки
После обновления повторно запросите остатки склада и проверьте изменённые позиции. Если количество меняют и SelSup, и внешняя система, определите, какая из них должна передавать итоговый остаток.