API de preview de pedido

POST /v1/orders/preview: valida líneas, precios y flete nacional antes de crear.

Relacionado: Crear pedido · Modelo de respuesta

Cuerpo de la solicitud

CampoObligatorioDescripción
channelSí1688 | taobao
receiverSíDirección nacional de entrada: name, mobile, province, city, address; 1688 sin address_id también requiere district
lines[]Síid + spec_id + quantity (offer_id / mi_id still work) por línea
response_formatNostandard (predeterminado) o upstream

Taobao: Gateway ejecuta auto batch-check de mi_id + traffic sku_id, luego llama al render upstream. Use un id / mi_id fresco como lines[].id — cambia periódicamente y no debe cachearse a largo plazo.

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.

Ejemplo

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
    }
  ]
}

Respuesta

StandardOrderPreviewResult; consulta modelos de respuesta de pedido. Ejemplo JSON: Formato de respuesta.

Los importes están en fen CNY. total siempre contiene merchandise, shipping y payment. Un cero conocido se representa con un objeto Money con amount:0; null solo se usa cuando el importe es realmente desconocido.

Antes de crear el pedido, exige success === true. Gateway valida un total pagadero positivo, grupos de vendedores, todas las líneas solicitadas, ausencia de líneas no disponibles y, para 1688, un modo de operación con op_support:true. Un resultado interpretable pero incompleto devuelve HTTP 200 con success:false y un code como LINE_UNAVAILABLE, UNSUPPORTED_TRADE_MODE o PREVIEW_INCOMPLETE.

Por compatibilidad, los errores explícitos de 1688 sobre SKU, stock, MOQ o restricciones del marketplace conservan el error envelope HTTP 502. response_format:"upstream" mantiene la semántica original y puede devolver HTTP 200 con un fallo de negocio upstream; inspecciona el payload upstream.

La preview del pedido es de solo lectura. Tanto en modo self como warehouse, Gateway usa el token de canal aplicable a la App y llama directamente a la API preview/render del marketplace. En modo warehouse, el token procede de warehouse_channel_tokens; preview no se reenvía a /procurement/preview. Create, detail, pay, cancel y logistics siguen enrutándose al warehouse.

Get Support

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

Email support