Aller au contenu principal

previewOrder

Prévisualise le calcul d'une commande sans la créer. L'autorisation est facultative. Sans elle, l'aperçu ne contient pas de données de bonus : discountConfig.bonus vaut null, bonusApplied vaut 0 et tout bonusAmount est ignoré. Pour un utilisateur autorisé, l'aperçu inclut son solde de bonus.

Description​

Calcule une commande sans la créer : totaux des produits, remises et bonus appliqués, et montant dû. Renvoie un IOrderPreviewResponse.

Le corps ne prend que products et, facultativement, couponCode, additionalDiscountsMarkers et bonusAmount ; aucun formulaire ni compte de paiement n'est nécessaire. products est obligatoire et ne doit pas être vide ; sinon l'API répond par une erreur 400.

.previewOrder(

,

);

Schéma des paramètres​

Schema

body(obligatoire): ICreateOrderPreview
Paramètres d'aperçu de la commande.

body.products: IPreviewOrderProduct[]
Produits à inclure dans l'aperçu.

products.productId: number
ID du produit.
exemple : 1

products.quantity: number
Quantité du produit.
exemple : 2

body.couponCode: string
Code de coupon à appliquer.

body.additionalDiscountsMarkers: string[]
Marqueurs des remises supplémentaires à appliquer.

body.bonusAmount: number
Montant du bonus à appliquer.

langCode: string
Code de langue. Par défaut : le langCode passé à defineOneEntry ("en_US" s'il n'y en a pas).
exemple : "en_US"

Exemples​

Exemple minimal​


const body = {
{
,
}
]
};

const response = await Orders.previewOrder(body);

Exemple de réponse​

{
"totalSum": 300,
"totalSumWithDiscount": 285,
"bonusApplied": 0,
"totalDue": 285,
"discountConfig": {
"orderDiscounts": [
{
"id": 2,
"identifier": "personal_discount",
"type": "PERSONAL_DISCOUNT",
"localizeInfos": {
"title": "Personal discount"
},
"startDate": "2026-04-21T18:26:19.815Z",
"endDate": "2028-03-21T19:26:24.741Z",
"discountValue": {
"value": 15,
"maxAmount": null,
"discountType": "FIXED_AMOUNT",
"applicability": "TO_ORDER"
},
"exclusions": null,
"position": 1,
"conditionLogic": "AND",
"gifts": [],
"userGroups": null,
"userExclusions": null,
"conditions": [],
"coupon": null
}
],
"productDiscounts": [],
"coupon": null,
"settings": {
"allowStacking": true,
"maxDiscountValue": 50,
"allowGiftStacking": false,
"maxBonusPaymentPercent": null,
"minBonusAmount": null,
"minOrderAmountForBonus": null,
"giftRefundPolicy": "KEEP_GIFT"
},
"bonus": {
"availableBalance": 0,
"maxBonusDiscount": 0,
"minBonusAmount": null,
"minOrderAmountForBonus": null,
"bonusApplied": 0
}
},
"currency": "USD",
"orderPreview": [
{
"id": 2957,
"isGift": false,
"price": 150,
"discountPrice": null,
"quantity": 2
}
]
}

Schéma de réponse​

Schéma : IOrderPreviewResponse

totalSum: number
Montant total de la commande avant remises.
exemple : 300

totalSumWithDiscount: number
Montant total de la commande après remises.
exemple : 250

discountConfig: IOrderDiscountConfig
Configuration des remises appliquées à la commande.

discountConfig.bonus: IOrderDiscountBonus | null
Résultat du calcul des bonus : null lorsque les bonus ne sont pas utilisés ; omis lorsque la commande n'a pas de contexte de bonus.

discountConfig.coupon: unknown | null
Coupon appliqué, ou null si aucun coupon n'est appliqué.

discountConfig.orderDiscounts: unknown[]
Remises au niveau de la commande qui ont été trouvées et appliquées.

discountConfig.productDiscounts: unknown[]
Remises au niveau du produit qui ont été trouvées et appliquées.

discountConfig.settings: IOrderDiscountSettings
Paramètres d'accumulation et de plafond utilisés lors du calcul.

discountConfig.additionalDiscountsMarkers: string[]
Marqueurs des remises supplémentaires demandées par le client. Omis dans les réponses d'aperçu.

discountConfig.bonusApplied: number
Montant de bonus appliqué à la commande. Omis dans les réponses d'aperçu.
exemple : 0

discountConfig.excludedGiftProductIds: string[]
ID des produits exclus de la sélection de cadeaux. Omis dans les réponses d'aperçu.

discountConfig.totalDue: number
Montant total dû après remises et bonus (omis dans les réponses d'aperçu).
exemple : 300

discountConfig.totalRaw: number
Montant total avant remises (omis dans les réponses d'aperçu).
exemple : 300

discountConfig.totalSumWithDiscount: number
Montant total après remises mais avant bonus (omis dans les réponses d'aperçu).
exemple : 300

currency: string
Devise de la commande.
exemple : "USD"

orderPreview: IOrderPreviewItem[]
Aperçu des articles de la commande.

orderPreview.id: number
ID du produit.
exemple : 2954

orderPreview.price: number
Prix unitaire du produit avant remises.
exemple : 51

orderPreview.quantity: number
Quantité du produit.
exemple : 1

orderPreview.discountPrice: number | null
Prix unitaire après remises, ou null lorsque aucune remise ne s'applique.
exemple : null

orderPreview.isGift: boolean
Indique si le produit est un cadeau.
exemple : false

bonusApplied: number
Montant de bonus appliqué à la commande.

totalDue: number
Total dû après bonus.