Lamoda отправляет партнёру вебхуки при изменении статусов заказов, товаров и поставок, а также при некоторых других событиях. На этой странице — все типы событий, их структура и триггеры.
Общая структура
Все партнёрские вебхуки статусов приходят в единой оболочке:
{
"type": "statusChanged",
"trackingId": "117391950",
"data": { ... }
}
type— тип события (см. таблицу ниже);trackingId— номер заказа партнёра;data— полезная нагрузка события (состав зависит от типа); вdata.id— идентификатор заказа. У событий заказа вdataприсутствуетsequenceNumber— версия статуса; используйте его, чтобы отбрасывать устаревшие уведомления, пришедшие не по порядку.
Типы событий
Тип (type) | Триггер | Модели |
|---|---|---|
statusChanged | Изменился статус заказа целиком | Любая (по заказу) |
itemStatusChanged | Изменился статус товара в заказе | Любая (по заказу) |
fulfilmentShipmentStatusChanged | Изменился статус поставки FBO | FBO |
fulfilmentShipmentValidationRest | Результат валидации поставки FBO | FBO |
supplierReturnCancelProcessed | Обработана отмена поставки на возврат | FBO |
ℹ️ Колонка «Модели» — ориентир. События статусов заказа (statusChanged, itemStatusChanged) приходят на любой партнёрский заказ независимо от бизнес-модели; какие именно статусы вы получаете, определяет подписка. fulfilmentShipment* и supplierReturnCancelProcessed относятся к FBO (поставки и поставки на возврат). |
Для работы в Беларуси есть отдельные события о передаче права собственности (purchaseOrderDirectFlowCreated, purchaseOrderReverseFlowCreated) — см. статью «Нотификации для работы в Беларуси».
В следующих разделах детально структуры данных, которые приходят по перечисленным выше типам событий.
statusChanged — статус заказа
Отправляется при изменении статуса заказа целиком (например, New to be confirmed → Confirmed → Shipped → Delivered).
| ℹ️ ЗАКАЗ И ТОВАР — РАЗНЫЕ СОБЫТИЯ Если изменился статус отдельного товара, но статус заказа остался прежним (например, невыкупленный товар вернулся, а заказ уже Delivered), придёт только itemStatusChanged, а statusChanged — нет. И наоборот, при смене статуса заказа целиком партнёру могут прийти оба события — они различаются полем type (statusChanged и itemStatusChanged) и несут одинаковый sequenceNumber (версию статуса заказа). |
Основные поля data:
| Поле | Тип | Описание |
|---|---|---|
id | string | Идентификатор заказа (например, CL20018856) |
status | string | Статус заказа (Confirmed, Shipped, Delivered, …) |
sequenceNumber | integer | Версия статуса — для упорядочивания событий |
paymentMethod | string | Способ оплаты (например, COD) |
fullSum | string | Итоговая сумма заказа |
currency | string | Валюта (rub и др.) |
items[] | array | Состав заказа (см. полную структуру ниже) |
deliveryMethod | object | Способ и параметры доставки |
customer | object | Данные получателя |
shippingAddress | object | Адрес доставки |
Полная структура data
| Поле | Тип | Описание |
|---|---|---|
id | string | Идентификатор заказа |
status | string | Статус заказа |
sequenceNumber | integer | Версия статуса заказа |
paymentMethod | string | Способ оплаты |
paymentDate | string | Дата оплаты |
shippingType | string | Тип отгрузки (fulfilment и др.) |
platform | string | Площадка (marketplace и др.) |
itemQuantity | integer | Количество товаров |
externalTrackingNumber | array | Внешние трек-номера |
externalOrderNumber | string | Внешний номер заказа |
comment | string | Комментарий |
confirmationFailedCode | string | Код причины несостоявшегося подтверждения |
confirmationFailedReason | string | Причина несостоявшегося подтверждения |
rejectPrice | integer | Стоимость отказа |
deliveryPrice | string | Стоимость доставки |
basePrice | integer | Базовая стоимость (минорные единицы) |
salePrice | integer | Цена со скидкой |
paidPrice | integer | Оплачено покупателем |
partnerAgreedPrice | integer | Согласованная с партнёром цена |
couponDiscount | integer | Скидка по купону |
loyaltyDiscount | integer | Скидка по лояльности |
partnerAgreedDiscount | integer | Согласованная с партнёром скидка |
otherDiscounts | integer | Прочие скидки |
totalDiscount | integer | Итоговая скидка |
fullSum | string | Итоговая сумма |
currency | string | Валюта |
createdAt | string | Дата создания заказа |
updatedAt | string | Дата обновления |
date | string | Дата формирования события |
dates | object | Ключевые даты (shipped, delivered) |
tracking | object | Данные трекинга |
items[] | array | Состав заказа |
deliveryMethod | object | Способ доставки |
customer | object | Данные получателя |
shippingAddress | object | Адрес доставки |
Структура items[] (товар в заказе)
| Поле | Тип | Описание |
|---|---|---|
id | string | Идентификатор позиции (например, IX432-001) |
sku | string | SKU товара |
size | string | Размер |
description | string | Описание |
status | string | Статус позиции |
finalERPStatus | string | Финальный ERP-статус (например, sold) |
statusChangeReason | string | Причина смены статуса |
datamatrix | string | Код маркировки Data Matrix |
datamatrixCode | string | Код маркировки |
basePrice | string | Базовая цена |
salePrice | string | Цена со скидкой |
paidPrice | string | Оплачено |
partnerAgreedPrice | string | Согласованная цена |
couponDiscount | string | Скидка по купону |
loyaltyDiscount | string | Скидка по лояльности |
partnerAgreedDiscount | string | Согласованная скидка |
otherDiscounts | string | Прочие скидки |
totalDiscount | string | Итоговая скидка |
discrepancyAct | string | Акт о расхождениях |
Структура deliveryMethod (доставка)
| Поле | Тип | Описание |
|---|---|---|
deliveryDate | string | Дата доставки |
deliveryDateMin / deliveryDateMax | integer | Границы срока доставки |
deliveryIntervalId | integer | Идентификатор интервала |
deliveryIntervalFrom / deliveryIntervalTo | string | Интервал доставки (время) |
hasIntervals | boolean | Есть ли интервалы |
deliveryPrice | string | Стоимость доставки |
standardDeliveryPrice | string | Стандартная стоимость |
isDeliveryPriceCustom | boolean | Кастомная стоимость доставки |
shippingMethodName | string | Название способа доставки |
shippingMethodCode | string | Код способа доставки |
shippingMethodTypeCode | string | Тип способа доставки |
serviceLevelTypeCode | string | Код уровня сервиса |
serviceLevelTypeName | string | Название уровня сервиса (например, «С примеркой») |
cutOff | string | Крайний срок сборки/отгрузки |
storageDays | integer | Дни хранения |
isEditable | boolean | Можно ли редактировать |
itemStatusChanged — статус товара
Отправляется при изменении статуса отдельной позиции заказа. Структура data — та же модель заказа, что и у statusChanged (см. выше); отличается лишь тем, что актуальное изменение — в items[].status. Оболочка та же (type, trackingId, sequenceNumber, data).
fulfilmentShipmentStatusChanged — статус поставки FBO
Отправляется при смене статуса поставки FBO (приёмки товара на склад Lamoda). Используйте для трекинга поставок без постоянного поллинга. Для FBS-отгрузок это событие не приходит — их статус отслеживайте поллингом (см. статью «Синхронизация и события»).
Структура data здесь другая, не как у заказа — это данные поставки. trackingId события — код поставки.
Основные поля data:
| Поле | Тип | Описание |
|---|---|---|
shipmentId | string | Идентификатор поставки |
status | string | Статус поставки |
date | string | Дата поставки |
itemsQuantity | integer | Количество товаров |
accepted | integer | Принято к учёту |
items[] | array | Состав с деталями приёмки (см. кат) |
Полная структура data
| Поле | Тип | Описание |
|---|---|---|
id | string | Код поставки (совпадает с trackingId) |
shipmentId | string | Идентификатор поставки |
status | string | Статус |
date | string | Дата поставки (Y-m-d) |
updatedAt | string | Дата обновления |
itemsQuantity | integer | Количество товаров |
priceSum | number | Сумма по позициям |
accepted | integer | Принято к учёту |
receipt | integer | Физически получено |
missing | integer | Недостача |
surplus | integer | Излишки |
unknownSurplus | integer | Неопознанные излишки |
damaged | integer | Брак |
items[] | array | Состав поставки (см. ниже) |
pallets[] | array | Грузовые места |
Структура items[] (товар в поставке)
| Поле | Тип | Описание |
|---|---|---|
sku | string | SKU товара |
ean | string | Штрихкод EAN |
quantity | integer | Количество |
price | number | Цена |
accepted | integer | Принято к учёту |
receipt | integer | Физически получено |
missing | integer | Недостача |
surplus | integer | Излишки |
damaged | integer | Брак |
datamatrixes[] | array | Коды маркировки |
fulfilmentShipmentValidationRest — валидация поставки FBO
Отправляется с результатом проверки поставки FBO. trackingId — код поставки.
Структура data:
| Поле | Тип | Описание |
|---|---|---|
id | string | Код поставки/отгрузки |
validationError | boolean | true — при валидации найдена ошибка |
supplierReturnCancelProcessed — обработка отмены поставки на возврат
Отправляется, когда обработана отмена поставки на возврат (возврат товара со склада Lamoda обратно партнёру в FBO). Событие сообщает результат вашего запроса на отмену: удалось ли отменить и, если нет, почему.
trackingId события — код поставки на возврат.
Структура data:
| Поле | Тип | Описание |
|---|---|---|
orderNr | string | Номер возврата на стороне партнёра (supplierOrderNr) |
lamodaOrderNr | string | Код поставки на возврат на стороне Lamoda |
isCancelled | boolean | Отмена выполнена успешно |
errorCode | string | Код ошибки — заполняется, если склад уже начал/завершил обработку и отмена невозможна |
errorMessage | string | Описание ошибки (при неуспехе) |
См. также
Помогла эта информация?
Спасибо за отзыв