ПВЗ
Ветка delivery_type PICKUP_POINT - выдача в пункте выдачи.
Сценарий 1: Доставка в ПВЗ СДЭК
Покупатель на витрине выбирает пункт СДЭК. В карточке заказа служба — delivery.provider_id: "CDEK", пункт — delivery.provider_location_id.
Заказ ORD-DBS-2026-302 приходит в NEW с delivery_type: "PICKUP_POINT". Мерчант подтверждает его, собирает на своём складе и передаёт в СДЭК. До пункта посылку везёт СДЭК, это вне API. Статусы в API ставит мерчант.
Допустимы два пути статусов:
NEW→CONFIRMED→PACKED→DELIVERING→READY_FOR_PICKUP→DELIVEREDилиCANCELLED(не забрал или отказался).NEW→CONFIRMED→PACKED→DELIVERINGилиREADY_FOR_PICKUP→DELIVEREDилиCANCELLED(не забрал или отказался).
Из PACKED можно перейти в DELIVERING (посылка едет в пункт), а затем в READY_FOR_PICKUP. Можно поставить READY_FOR_PICKUP сразу из PACKED. Когда покупатель забрал заказ, статус — DELIVERED. Если не забрал или отказался — CANCELLED.
Диаграмма последовательности
Пошаговое описание
- Опрос новых заказов. POST
/v1/order/dbs/listсfilter.status: ["NEW"]иlimit.cursor— для следующей страницы. В будущем опрос изменений статусов — POST/v1/order/dbs/status/list. - Карточка заказа. Тот же
/v1/order/dbs/list. Вdeliveryобязателен толькоdelivery_type: "PICKUP_POINT". Пункт СДЭК —provider_id: "CDEK"иprovider_location_id. Оба поля в схеме не обязательны. Если витрина их прислала, это выбранный пункт СДЭК.address_tailдля ПВЗ не обязателен. - Подтверждение. POST
/v1/order/dbs/status/update→CONFIRMED,changed_by: "MERCHANT",changed_at(RFC3339). - Слот, если его надо сдвинуть. Покупатель уже выбрал окно на витрине. POST
/v1/order/dbs/timeslot/set— только когда новую дату согласовали с покупателем. Для ПВЗ шаг обычно не нужен. - Экземпляр, если он нужен. POST
/v1/order/dbs/exemplar/setдоPACKED, например приrequirements.requires_imei: true. - Упаковка. POST
/v1/order/dbs/status/update→PACKED. Заказ собран на складе мерчанта и готов к передаче в СДЭК. - Код вручения, если он используется. POST
/v1/order/dbs/handover-code/set. По договорённости витрины и мерчанта код можно передать покупателю или витрине. Пункт СДЭК этот код из API сам не получает. - В пути в пункт СДЭК. POST
/v1/order/dbs/status/update→DELIVERING. Посылку везёт СДЭК, это вне API. Шаг можно пропустить. - Ждёт покупателя в пункте. POST
/v1/order/dbs/status/update→READY_FOR_PICKUP. Статус ставят изDELIVERINGили сразу изPACKED. - Выдан. POST
/v1/order/dbs/status/update→DELIVERED, когда покупатель забрал заказ в пункте. - Не забрал или отказался. POST
/v1/order/dbs/status/update→CANCELLEDизREADY_FOR_PICKUP. По второму пути отмена возможна и изDELIVERING.
Склад, с которого собирают заказ, — location_id в карточке. Пункт СДЭК — provider_location_id.
JSON — карточка заказа в пункт СДЭК
POST /v1/order/dbs/list. Обязательны filter и limit.
{
"cursor": "",
"limit": 100,
"filter": {
"status": ["NEW"]
}
}
{
"orders": [{
"merchant_order_id": "ORD-DBS-2026-302",
"client_order_id": "CLT-80002",
"location_id": "wh-msk-dbs-01",
"status": "NEW",
"customer": {
"name": "Иван Петров",
"phone": "+79001112233"
},
"delivery": {
"delivery_type": "PICKUP_POINT",
"provider_id": "CDEK",
"provider_location_id": "CDEK-MSK-0142"
},
"product_name": "Наушники",
"prices": [{
"price_type": "CUSTOMER_FINAL_PRICE",
"value": 1299000
}],
"delivery_date": {
"delivery_date_begin": "2026-06-16T10:00:00+03:00",
"delivery_date_end": "2026-06-18T21:00:00+03:00"
},
"created_at": "2026-06-14T11:00:00+03:00"
}],
"next_cursor": "",
"total": 1
}
location_id — склад сборки. provider_location_id — пункт СДЭК, куда поедет заказ.
JSON — статусы
Обязательны merchant_order_id, status, changed_at, changed_by.
Подтверждение:
{
"merchant_order_id": "ORD-DBS-2026-302",
"status": "CONFIRMED",
"changed_at": "2026-06-14T12:00:00+03:00",
"changed_by": "MERCHANT"
}
Упакован:
{
"merchant_order_id": "ORD-DBS-2026-302",
"status": "PACKED",
"changed_at": "2026-06-14T15:00:00+03:00",
"changed_by": "MERCHANT"
}
Едет в пункт:
{
"merchant_order_id": "ORD-DBS-2026-302",
"status": "DELIVERING",
"changed_at": "2026-06-14T16:00:00+03:00",
"changed_by": "MERCHANT"
}
Ждёт в пункте. Этот же вызов ставят сразу после PACKED, если шаг DELIVERING пропущен:
{
"merchant_order_id": "ORD-DBS-2026-302",
"status": "READY_FOR_PICKUP",
"changed_at": "2026-06-15T10:00:00+03:00",
"changed_by": "MERCHANT"
}
Выдан:
{
"merchant_order_id": "ORD-DBS-2026-302",
"status": "DELIVERED",
"changed_at": "2026-06-16T18:20:00+03:00",
"changed_by": "MERCHANT"
}
Не забрал или отказался:
{
"merchant_order_id": "ORD-DBS-2026-302",
"status": "CANCELLED",
"changed_at": "2026-06-20T21:00:00+03:00",
"changed_by": "MERCHANT"
}