Часть руководства «Переход на Lamoda Seller API v2».
Эта глава описывает переход заказных и FBS-сценариев с B2B REST v1 и Seller JSON-RPC на Seller API v2.
Новый порядок работы с FBS-заказом
- Получить заказы:
GET /v2/orders?sellerId=.... - Получить детали заказа:
GET /v2/orders/{orderId}?sellerId=.... ⚠️ В path идёт полеidиз списка заказов, а не групповойorderId— поorderIdбудет 404. - Получить историю заказа и позиций:
GET /v2/orders/{orderId}/status-history,GET /v2/orders/{orderId}/item-statuses. - Создать сборку:
POST /v2/orders/{orderId}/assembly. - Сгенерировать паковые штрихкоды:
POST /v2/orders/{orderId}/packs?sellerId=.... - Сформировать этикетки.
- Создать или получить FBS-отгрузку.
- Менять статус заказа/позиции только если это разрешено сценарием обработки конкретного заказа.
Получение заказов
| Было | Стало | Важное отличие |
|---|---|---|
GET /api/v1/orders | GET /v2/orders | Фильтры стали явными query-параметрами: statusGroup, orderId, externalOrderId, country, даты создания/обновления. Все доступные параметры фильтрации теперь задокументированы. |
GET /api/v1/orders/{orderNr} | GET /v2/orders/{orderId} | Детали включают позиции и deliveryMethod. |
GET /api/v1/orders/{orderNr}/statuses | GET /v2/orders/{orderId}/status-history | История статусов заказа. |
JSON-RPC order-item-statuses.list | GET /v2/orders/{orderId}/item-statuses | История статусов позиций заказа. |
JSON-RPC order/delivery-note.download | GET /v2/orders/{orderId}/invoice | Возвращает ссылку на накладную. |
Методы чтения и изменения customer и shipping address относятся к устаревшей модели сотрудничества. Они станут deprecated и позже будут выключены.
Изменение статусов заказа и позиции
Методы:
{
"sellerId": "242541217",
"status": "CANCELED",
"reason": "Нет остатка для отгрузки"
}
Важные правила:
reasonобязателен дляCANCELEDиNOT_DELIVERED;- для остальных статусов
reasonпередавать нельзя; - по схеме тела запроса
reason— строка; допустимость значения и причины проверяется на стороне Lamoda в рамках сценария обработки заказа; - допустимость перехода проверяется на стороне Lamoda и зависит от сценария обработки заказа;
- не используйте полный список статусов из ответа заказа как список статусов, которые можно отправить в запросе изменения.
По спецификации v2:
| Сценарий обработки | Допустимые статусы для отправки |
|---|---|
| FBS crossdocking EDM | CANCELED, RETURNED |
| FBS KZ | CANCELED, READY_FOR_SHIPMENT, SHIPPED |
Паковые коды и сборка заказа
Сгенерировать паковые коды
POST /api/v2/orders/{orderId}/packs?sellerId=242541217
Content-Type: application/json
{
"count": 2
}
Метод заменяет старый POST /api/v1/orders/{sellerOrderNr}/pack-numbers.
Ответ содержит массив data[].packNumber. Это штрихкоды упаковок. Они используются в методах этикеток упаковок и при получении PDF-этикетки конкретного пака.
{
"data": [
{"packNumber": "FBS3NA3KF8C3"},
{"packNumber": "FBS9XK2QW8L4"}
]
}
Создать сборку
POST /api/v2/orders/{orderId}/assembly
Content-Type: application/json
{
"sellerId": "242541217",
"packs": [
{
"itemIds": ["ITEM-001", "ITEM-002"]
}
]
}
Сборка сохраняет состав товаров в паках и переводит заказ в состояние ожидания отгрузки. В теле запроса сборки передаются только packs[].itemIds; packNumber в схеме assembly не передается. Если интеграции нужно связать packNumber с конкретным набором позиций, храните эту связь у себя в момент сборки заказа или получайте ее из последующих контейнерных/отгрузочных данных, где она доступна.
Важно различать поля:
itemIds— идентификаторы позиций из деталей заказаGET /v2/orders/{orderId};packNumber— штрихкод упаковки изPOST /v2/orders/{orderId}/packs, используется вlabels/order-packsиGET /v2/orders/{orderId}/packs/{packNumber}/label;packId— поле упаковки в запросе/ответе FBS-отгрузки. Если ваш процесс использует сгенерированныйpackNumberкак код упаковки для отгрузки, сохраните это соответствие явно; не подставляйте старыйsellerOrderNrили произвольный WMS id без сверки с операционным потоком.
Старый общий POST /api/v1/orders/collect нужно заменить операцией конкретного заказа.
Сквозной порядок для FBS:
- Из
GET /v2/orders/{orderId}возьмитеitems[].id. - Отправьте
POST /v2/orders/{orderId}/assemblyсpacks[].itemIds— распределение позиций по упаковкам. - Сгенерируйте нужное количество
packNumberчерезPOST /v2/orders/{orderId}/packs. - Сохраните у себя связь между выбранным
packNumberи наборомitemIds, если она нужна WMS или печати. - Для этикетки упаковки передайте
packNumberвPOST /v2/labels/order-packsили вGET /v2/orders/{orderId}/packs/{packNumber}/label. - Для FBS-отгрузки передайте
packIdвPOST /v2/fbs/shipments; если в вашем процессеpackIdравен сгенерированномуpackNumber, используйте сохраненную связь явно.
Этикетки
| Что нужно получить | Метод v1 | Метод v2 | Что передать |
|---|---|---|---|
| Этикетки товаров | POST /v1/label/items | POST /v2/labels/order-items | sellerId, labelFormat, items[] — до 100 идентификаторов позиций из деталей заказа v2. |
| Этикетки упаковок | POST /v1/label/packs | POST /v2/labels/order-packs | sellerId, labelFormat, packs[] — до 100 packNumber. |
| Этикетки паллет | POST /v1/label/pallets | POST /v2/labels/pallets | sellerId, labelFormat, palletBarcodes[]. |
| PDF-этикетка одной упаковки заказа | GET /v1/reports/label/stream | GET /v2/orders/{orderId}/packs/{packNumber}/label | sellerId, labelFormat. |
Пример товарных этикеток:
{
"sellerId": "12345",
"labelFormat": "M",
"items": [
"RU250216-884060-001-1",
"RU250216-884061-002-1"
]
}
Ответ содержит fileUrl и список исключенных сущностей (excludedItems, excludedPacks, excludedPallets). Если часть этикеток не сформирована, интеграция должна показать это пользователю или отправить на повторную обработку.
FBS-отгрузки
| Было | Стало | Комментарий |
|---|---|---|
GET /api/v1/shipments | GET /v2/fbs/shipments | Список отгрузок с фильтрами status, from, to, search, page, limit. |
| Метода не было | POST /v2/fbs/shipments | Создание отгрузки по паллетам, пакам и позициям. Создаёт id паллет и паков. |
POST /api/v1/shipments/out | POST /v2/fbs/prepared-shipments | Используйте, если отгрузка подготовлена вручную (есть идентификаторы паллет, паков и позиций) и нужно передать shipmentId, shippedAt, размеры/вес. |
GET /api/v1/shipments/{shipmentId} | GET /v2/fbs/shipments/{shipmentId} | Детали FBS-отгрузки. |
GET /api/v1/goods | GET /v2/fbs/shipments/{shipmentId}/items | Товары в отгрузке; можно фильтровать по containerBarcode. |
GET /api/v1/container/{barcode} | GET /v2/fbs/order-containers/{containerBarcode} | Контейнеры, в которые упакован заказ (паллеты и паки). |
Пример создания FBS-отгрузки:
{
"sellerId": "123",
"pallets": [
{
"packs": [
{
"packId": "PACK-123",
"items": [
{"unitload": "UNITLOAD-123"}
]
}
]
}
]
}
Обязательные поля обычной FBS-отгрузки:
sellerId— из конфигурации интеграции;pallets[].packs[]— упаковки внутри паллеты;packs[].packId— код упаковки для отгрузки; чаще всего это сохраненный код упаковки из процесса сборки/WMS, а при использовании паковых кодов Lamoda — сохраненныйpackNumber;packs[].items[].unitload— идентификатор единицы товара: значениеitems[].idиз деталей заказа (GET /v2/orders/{orderId}; в v1 поле называлосьitemNr).
Для подготовленной вручную отгрузки используйте POST /v2/fbs/prepared-shipments. В этом сценарии обязательно передаются shipmentId, shippedAt, sellerId и pallets; внутри паков можно передать вес, габариты и состав позиций.
{
"sellerId": "123",
"shipmentId": "JLX0000000200",
"shippedAt": "2026-04-20",
"docNumber": "DOC-001",
"pallets": [
{
"palletId": "PALLET-001",
"packs": [
{
"packId": "PACK-001",
"weight": "1.5",
"length": "30",
"width": "20",
"height": "10",
"items": [
{
"orderId": "ORDER-001",
"sku": "SKU-001",
"unitload": "UNITLOAD-001"
}
]
}
]
}
]
}
POST /api/v1/shipments/out/{code}/events относится к старому FBS-контракту. Метод станет deprecated и позже будет выключен.
FBS-заявки на доставку и возврат
Новые методы:
Они работают с заявками на доставку/возврат (DELIVERY, RETURN) и статусами ACTIVE, CANCELLED, PAID_CANCELLED, RECOVERED, PAID_RECOVERED. Это не замена CRUD партнерских ПВЗ из B2B REST v1.
Через API можно получить список заявок и отменить заявку. Для отмены используется отдельная схема тела запроса:
{
"seller_id": 12345,
"status": "CANCELLED"
}
seller_id здесь отличается от общего sellerId: это поле описано в спецификации как integer. Другие статусы из списка являются статусами чтения и фильтрации, а не допустимыми целями для POST /v2/fbs/pickup-requests/{requestId}/status.
Методы v1, которые станут deprecated
Эти методы заказов и доставки станут deprecated и позже будут выключены:
- создание заказа продавцом;
- изменение номера заказа партнера;
- добавление товара в заказ;
- чтение и изменение customer;
- чтение и изменение shipping address;
- подбор и установка delivery methods;
- адресные справочники city/street/building;
- pickup points;
- отдельный метод shipment events для подтверждения или отмены FBS-отгрузки.
См. также
Помогла эта информация?
Спасибо за отзыв