API предварительного расчета заказа

POST /v1/orders/preview — проверяет lines, prices и внутренний freight перед create.

Связано: создать заказ · модель ответа

Request body

ПолеОбязательноОписание
channelДа1688 | taobao
receiverДаВнутренний inbound address: name, mobile, province, city, address; для 1688 без address_id также нужен district
lines[]Даid + spec_id + quantity (offer_id / mi_id still work) для каждой строки
response_formatНетstandard (по умолчанию) или upstream

Taobao: Gateway автоматически выполняет batch-check mi_id + traffic sku_id, затем вызывает upstream render. Use a fresh id / mi_id as lines[].id — it rotates periodically.

Line mapping

Prefer lines[].id = search/detail id. offer_id and mi_id remain compatible.

lines[]1688Taobao
id (preferred)search/detail id (offerId)search/detail id (mi_id)
offer_idCompatible alias of idCompatible alias of id
mi_id—Compatible Taobao alias of id
spec_idvariants[].sku_idvariants[].sku_id (or mpSkuId)

If both id and offer_id are sent, offer_id wins. Otherwise id (then mi_id) is copied to offer_id. Do not pass Taobao source_product_id. Taobao id / mi_id rotates periodically.

Пример

POST /v1/orders/preview
{
  "channel": "1688",
  "receiver": {
    "name": "张三",
    "mobile": "15251667788",
    "province": "浙江省",
    "city": "杭州市",
    "district": "滨江区",
    "address": "网商路699号"
  },
  "lines": [
    {
      "id": "554456348334",
      "spec_id": "b266e0726506185beaf205cbae88530d",
      "quantity": 5
    }
  ]
}

Taobao example

POST /v1/orders/preview
{
  "channel": "taobao",
  "receiver": {
    "name": "张三",
    "mobile": "15251667788",
    "province": "浙江省",
    "city": "杭州市",
    "district": "滨江区",
    "address": "网商路699号"
  },
  "lines": [
    {
      "id": "0000iIpSgysC-ca00kbG-Y-LXZu7WojtOJ5cnKTyzoID9UM",
      "spec_id": "6079564221554",
      "quantity": 5
    }
  ]
}

Ответ

StandardOrderPreviewResult — см. модели ответов заказов. JSON example: формат ответа.

Суммы указаны в фэнях CNY. total всегда содержит merchandise, shipping и payment. Известный ноль передаётся объектом Money с amount:0; null используется только когда сумма действительно неизвестна.

Перед созданием заказа требуйте success === true. Gateway проверяет положительную сумму к оплате, группы продавцов, все запрошенные позиции, отсутствие недоступных позиций и, для 1688, способ сделки с op_support:true. Разбираемый, но неполный результат возвращается как HTTP 200 с success:false и кодом LINE_UNAVAILABLE, UNSUPPORTED_TRADE_MODE или PREVIEW_INCOMPLETE.

Для совместимости явные ошибки 1688 по SKU, запасам, MOQ и ограничениям площадки по-прежнему возвращаются в стандартном error envelope с HTTP 502. response_format:"upstream" сохраняет исходную семантику, поэтому HTTP 200 может содержать бизнес-ошибку upstream; проверяйте upstream payload.

Предпросмотр заказа — операция только для чтения. И в self-, и в warehouse-режиме Gateway использует токен канала приложения и напрямую вызывает marketplace preview/render API. В warehouse-режиме токен берётся из warehouse_channel_tokens; preview не пересылается в warehouse /procurement/preview. Операции create, detail, pay, cancel и logistics по-прежнему направляются через warehouse.

Get Support

Need integration help? Contact Developer Support at support@hiobuy.com · Response within 1–2 business days

Email support