Сквозной сценарий · Руководства
Остатки и склады
Модель SKU, получение складских остатков, обновление по идентификаторам SelSup и внешним артикулам и безопасная сверка.
Остаток хранится на уровне SKU и склада. Один SKU может объединять несколько товаров, поэтому productId и skuId нельзя подменять друг другом.
WMS, ERP и складские интеграции01
Понять сущности остатков
SKU является единицей складского учёта. Товар с конкретным размером или вариантом связан с SKU, а остаток SKU размещается на складе или в ячейке.
quantity отражает записанное количество, calculatedQuantity может учитывать внутренние расчёты, а availableQuantity — доступный результат. Используйте поле, соответствующее вашей задаче, а не первое числовое значение.
SelSup поддерживает количественный учёт и поштучный учёт уникальных единиц. Не смешивайте эти схемы в одной операции обновления.
Связанные методы API
GET/api/product/findПолучить skuId у товараGET/api/warehouse/listПолучить склады
02
Получить остатки склада
Для полной сверки выбирайте остатки по warehouseId. Сохраняйте skuId, идентификатор склада, ячейку, время изменения и все количественные поля ответа.
Полная выгрузка может быть большой. Не запускайте её при каждом изменении — используйте её как начальную загрузку и периодическую контрольную сверку.
curl 'https://api.selsup.ru/api/wms/stock/all?warehouseId=10129' \
--header 'Authorization: YOUR_API_TOKEN'
03
Обновить остаток по сущностям SelSup
Используйте skuId из поиска товаров и идентификатор связи склада, требуемый текущим контрактом. Перед массовой отправкой проверьте одну тестовую позицию.
updateInService=false позволяет отделить запись остатка в SelSup от синхронной отправки на маркетплейс. Если требуется обновление площадок, учитывайте длительность и частичные ошибки отдельно.
withReservedStock определяет учёт резервов. Зафиксируйте единое правило для всей интеграции, иначе разные потоки будут перезаписывать остаток с разной семантикой.
[
{
"stock": 5,
"serviceWarehouseId": "1234",
"updateInService": false,
"withReservedStock": true,
"skuId": 1044318
}
]
Связанные методы API
PUT/api/wms/stockОбновить по skuId
04
Обновить по артикулу или штрих-коду
В варианте с service SelSup ищет связанный товар по идентификатору выбранного сервиса или штрих-коду. serviceWarehouseId должен относиться к тому же сервису.
Не отправляйте одновременно barcode и несколько внешних артикулов без явного правила приоритета. Неоднозначные соответствия выносите в отчёт, а не обновляйте все найденные товары.
[
{
"stock": 5,
"barcode": "4601234567890",
"serviceWarehouseId": "OZON-WH-01",
"updateInService": false,
"withReservedStock": true
}
]
05
Сверка и защита от гонок
- 1
Назначьте владельца остатка
Определите, какая система является источником истины и какие события могут изменять количество в SelSup.
- 2
Сериализуйте обновления SKU
Не отправляйте конкурентные значения одного skuId и склада; используйте очередь с ключом SKU+warehouse.
- 3
Сверяйте после пакета
Повторно прочитайте изменённые SKU и сравните ожидаемое значение с availableQuantity по вашей формуле резервов.
- 4
Отделяйте ошибки сопоставления
Неизвестный skuId, склад или неоднозначный штрих-код требуют исправления справочника, а не бесконечного повтора.