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
| Campo | Obligatorio | Descripción |
|---|---|---|
channel | Sí | 1688 | taobao |
receiver | Sí | 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_format | No | standard (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[] | 1688 | Taobao |
|---|---|---|
id (preferred) | search/detail id (offerId) | search/detail id (mi_id) |
offer_id | Compatible alias of id | Compatible alias of id |
mi_id | — | Compatible Taobao alias of id |
spec_id | variants[].sku_id | variants[].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