Новость на модерации
Содержание статьи
Lamoda B2B Platform предоставляет возможность получения информации о товарных запасах на складе Lamoda, актуальных на момент выполнения запроса. Это критически важно для FBO-модели, где весь сток хранится на стороне Lamoda.
Важно: При создании заказа Lamoda автоматически проверяет доступность товаров на складе. Если товара нет в наличии, он перейдёт в статусcanceled. Регулярная синхронизация остатков помогает избежать таких ситуаций.
Метод получения остатков
GET /api/v1/stock/goodsВозвращает список товаров с количеством на складе Lamoda.
Параметры запроса
| Параметр | Тип | Обязательный | По умолчанию | Описание |
page
|
integer | Нет | 1 | Номер страницы (начиная с 1) |
limit
|
integer | Нет | 25 | Количество SKU на странице (макс. 100) |
withZeroQuantity
|
0 или 1 | Нет | 1 | Включать товары с нулевым остатком: 1 — да, 0 — нет |
updatedAt
|
string | Нет | — |
Получить только изменения после указанной даты. Формат: YYYY-MM-DD+hh:mm:ss
|
sku[]
|
array | Нет | — | Фильтр по конкретным артикулам |
Примеры запросов
Получение полного стока
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"
Пример ответа
{
"_links": {
"self": { "href": "/api/v1/stock/goods?page=1&limit=25" },
"next": { "href": "/api/v1/stock/goods?page=2&limit=25" }
},
"_embedded": {
"goods": [
{
"sku": "SELLER-SKU-001",
"ean": "4600000000001",
"quantity": 15,
"reserved": 3,
"available": 12,
"updatedAt": "2025-01-20T14:30:00+03:00"
},
{
"sku": "SELLER-SKU-002",
"ean": "4600000000002",
"quantity": 0,
"reserved": 0,
"available": 0,
"updatedAt": "2025-01-19T09:15:00+03:00"
}
]
},
"page": 1,
"limit": 25,
"pages": 10,
"total": 245
}
Описание полей ответа
| Поле | Тип | Описание |
sku
|
string | Артикул товара (supplier SKU) |
ean
|
string | Штрих-код товара |
quantity
|
integer | Общее количество на складе |
reserved
|
integer | Зарезервировано под неподтверждённые заказы |
available
|
integer | Доступно для продажи (quantity - reserved) |
updatedAt
|
datetime | Дата последнего изменения остатка |
Стратегии синхронизации остатков
Полная синхронизация
Рекомендуется выполнять 1-2 раза в сутки для полной сверки:
# Получаем все страницы
page = 1
all_stock = []
while True:
response = get_stock(page=page, limit=100, withZeroQuantity=1)
all_stock.extend(response['_embedded']['goods'])
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']['goods']:
update_local_stock(item['sku'], item['available'])
# Сохраняем новое время синхронизации
last_sync = datetime.now().strftime("%Y-%m-%d+%H:%M:%S")
Совет: Параметр updatedAt фильтрует строго "больше" указанной даты. Сохраняйте точное время последнего запроса для корректной дельты.
Что НЕ отображается в стоке
В ответе метода GET /api/v1/stock/goods не отображаются:
- Излишки — товары, прибывшие сверх заявленного в поставке количества (до оформления документов)
- Брак — товары, не прошедшие контроль качества
- Товары на проверке — возвраты в процессе проверки качества
Информация по излишкам и браку доступна в Личном кабинете B2B Platform и в отчёте о приёмке поставки.
Связь с поставками FBO
Остатки обновляются автоматически при:
| Событие | Изменение остатка |
Поставка получила статус Received
|
+quantity (принятое количество) |
| Заказ создан | reserved +1 |
| Заказ отменён | reserved -1 |
| Заказ отгружен | quantity -1, reserved -1 |
| Возврат принят на склад | +quantity (после проверки качества) |
Обработка ошибок
| Код | Описание | Решение |
| 401 | Unauthorized | Обновите access_token |
| 400 | Invalid parameter | Проверьте формат параметров (особенно updatedAt) |
| 429 | Too Many Requests | Снизьте частоту запросов |
| 500 | Internal Server Error | Повторите запрос через 30 секунд |
Best practices
- Кэшируйте локально — храните остатки в своей базе и обновляйте через дельту
- Используйте withZeroQuantity=0 — для экономии трафика при больших каталогах
- Пагинация — всегда проходите все страницы при полной синхронизации
- Обрабатывайте reserved — для расчёта реально доступного количества
- Мониторьте updatedAt — отслеживайте "застарелые" позиции без обновлений
См. также
Помогла эта информация?
Спасибо за отзыв