API de prévisualisation de commande
POST /v1/orders/preview — valide les lignes, les prix et le fret domestique avant création.
Lié : Créer une commande · Modèle de réponse
Corps de requête
| Champ | Obligatoire | Description |
|---|---|---|
channel | Oui | 1688 | taobao |
receiver | Oui | Adresse domestique d’entrée : name, mobile, province, city, address ; 1688 sans address_id nécessite aussi district |
lines[] | Oui | id + spec_id + quantity (offer_id / mi_id still work) par ligne |
response_format | Non | standard (par défaut) ou upstream |
Taobao : la passerelle effectue automatiquement un batch-check de mi_id + sku_id traffic, puis appelle le render upstream. Utilisez un id / mi_id frais comme lines[].id — il change périodiquement et ne doit pas être mis en cache longtemps.
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.
Exemple
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
}
]
}Réponse
StandardOrderPreviewResult — voir modèles de réponse commande. Exemple JSON : Format de réponse.
Les montants sont en fen CNY. total contient toujours merchandise, shipping et payment. Un zéro connu est représenté par un objet Money avec amount:0; null est réservé aux montants réellement inconnus.
Avant de créer la commande, exigez success === true. Gateway vérifie un total payable positif, les groupes vendeurs, toutes les lignes demandées, l’absence de lignes indisponibles et, pour 1688, un mode de transaction avec op_support:true. Un résultat interprétable mais incomplet renvoie HTTP 200 avec success:false et un code tel que LINE_UNAVAILABLE, UNSUPPORTED_TRADE_MODE ou PREVIEW_INCOMPLETE.
Pour compatibilité, les erreurs explicites 1688 de SKU, stock, MOQ ou restriction marketplace conservent l’enveloppe d’erreur HTTP 502. response_format:"upstream" conserve la sémantique brute et peut renvoyer HTTP 200 avec un échec métier upstream ; inspectez le payload upstream.
La prévisualisation de commande est une opération en lecture seule. En modes self et warehouse, Gateway utilise le token de canal applicable à l’App et appelle directement l’API preview/render de la marketplace. En mode warehouse, ce token vient de warehouse_channel_tokens ; preview n’est pas transmis à /procurement/preview. Les opérations create, detail, pay, cancel et logistics restent routées vers le warehouse.
Get Support
Need integration help? Contact Developer Support at support@hiobuy.com · Response within 1–2 business days