Остатки FBO
Lamoda B2B Platform Partner API предоставляет возможность получения информации о товарных запасах на складе Lamoda, актуальных на момент выполнения запроса. Это критически важно для FBO-модели, где весь сток хранится на стороне Lamoda.
Важно: При создании заказа Lamoda автоматически проверяет доступность товаров на складе. Если товара нет в наличии, он перейдёт в статусcanceled. Регулярная синхронизация остатков помогает избежать таких ситуаций.
Метод получения остатков
Возвращает список товаров с количеством на складе Lamoda.
Параметры запроса
| Параметр | Тип | Обязательный | По умолчанию | Описание |
page
|
integer | Нет | 1 | Номер страницы (начиная с 1) |
limit
|
integer | Нет | 25 | Количество SKU на странице (макс. 100) |
withZeroQuantity
|
0 или 1 | Нет | 1 | Включать товары с нулевым остатком: 1 — да, 0 — нет |
partnerCode
|
string | Нет | — | Код партнёра (только заглавные A-Z) |
updatedAt
|
string | Нет | — |
Получить только изменения после указанной даты. Формат: YYYY-MM-DD+hh:mm:ss
|
sku[]
|
array | Нет | — | Фильтр по конкретным артикулам (до 100 SKU) |
Примеры запросов
Получение полного стока
curl -X GET "https://api-b2b.lamoda.ru/api/v1/stock/goods?page=1&limit=50" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Получение стока без нулевых позиций
curl -X GET "https://api-b2b.lamoda.ru/api/v1/stock/goods?withZeroQuantity=0&limit=100" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Получение стока по конкретным SKU
curl -X GET "https://api-b2b.lamoda.ru/api/v1/stock/goods?sku[]=SELLER-SKU-001&sku[]=SELLER-SKU-002" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Получение дельты (изменений с определённого момента)
curl -X GET "https://api-b2b.lamoda.ru/api/v1/stock/goods?updatedAt=2025-01-15+10:00:00" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Получение стока для конкретного партнёра
curl -X GET "https://api-b2b.lamoda.ru/api/v1/stock/goods?partnerCode=PARTNER" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Пример ответа
{
"_links": {
"self": { "href": "GET /api/v1/stock/goods?page=1&limit=25" },
"next": { "href": "GET /api/v1/stock/goods?page=2&limit=25" }
},
"_embedded": {
"stockStates": [
{
"sku": "SELLER-SKU-001",
"quantity": 15
},
{
"sku": "SELLER-SKU-002",
"quantity": 0
}
]
},
"page": 1,
"limit": 25,
"pages": 10,
"total": 245
}
Важно: Wrapper в ответе — _embedded.stockStates (не _embedded.goods).
Описание полей ответа
| Поле | Тип | Описание |
sku
|
string | Артикул товара (supplier SKU) |
quantity
|
integer | Количество на складе |
Про резервы и доступность
API возвращает базовые поля sku и quantity. Резервы (reserved) и доступное количество (available) вычисляются динамически:
- reserved — количество товаров в неподтверждённых заказах (статусы
initialиnew) - available = quantity - reserved
Для партнёров с флагом isNewFashion резервы не вычисляются, возвращается только quantity.
Стратегии синхронизации остатков
Полная синхронизация
Рекомендуется выполнять 1-2 раза в сутки для полной сверки:
# Получаем все страницы
page = 1
all_stock = []
while True:
response = get_stock(page=page, limit=100, withZeroQuantity=1)
all_stock.extend(response['_embedded']['stockStates'])
if page >= response['pages']:
break
page += 1
# Обновляем локальную базу
sync_local_database(all_stock)
Инкрементальная синхронизация (дельта)
Для частых обновлений (каждые 15-30 минут) используйте параметр updatedAt:
# Сохраняем время последней синхронизации
last_sync = "2025-01-20+14:00:00"
# Получаем только изменения
response = get_stock(updatedAt=last_sync, withZeroQuantity=1)
# Обновляем изменённые позиции
for item in response['_embedded']['stockStates']:
update_local_stock(item['sku'], item['quantity'])
# Сохраняем новое время синхронизации
last_sync = datetime.now().strftime("%Y-%m-%d+%H:%M:%S")
Рекомендация: Параметр updatedAt фильтрует строго "больше" указанной даты. Сохраняйте точное время последнего запроса для корректной дельты.
Что НЕ отображается в стоке
В ответе метода GET /api/v1/stock/goods не отображаются:
- Излишки — товары, прибывшие сверх заявленного в поставке количества (до оформления документов)
- Брак — товары, не прошедшие контроль качества
- Товары на проверке — возвраты в процессе проверки качества
Информация по излишкам и браку доступна в Личном кабинете Lamoda B2B Platform Partner API и в отчёте о приёмке поставки.
Связь с поставками FBO
Остатки обновляются автоматически при:
| Событие | Изменение остатка |
Поставка получила статус Received
|
+quantity (принятое количество) |
Поставка получила статус Closed
|
Окончательная фиксация после проверки качества |
| Заказ создан | reserved +1 (динамически) |
| Заказ отменён | reserved -1 (динамически) |
| Заказ отгружен | quantity -1, reserved -1 |
| Возврат принят на склад | +quantity (после проверки качества) |
Обработка ошибок
| Код | Описание | Решение |
| 400 | Invalid parameter / Too many SKUs |
Проверьте формат updatedAt (YYYY-MM-DD+hh:mm:ss) и лимит SKU (≤100)
|
| 400 | Invalid partner code |
Проверьте partnerCode — только заглавные буквы A-Z
|
Общие HTTP-ошибки (401, 403, 429, 500) и рекомендации по обработке: Справочник кодов ошибок.
Лучшие практики
- Кэшируйте локально — храните остатки в своей базе и обновляйте через дельту
- Используйте withZeroQuantity=0 — для экономии трафика при больших каталогах
- Пагинация — всегда проходите все страницы при полной синхронизации
- Мониторьте updatedAt — отслеживайте "застарелые" позиции без обновлений
- Обрабатывайте sku[] — при передаче sku[] пагинация игнорируется, все результаты в одном ответе
См. также
Помогла эта информация?
Спасибо за отзыв