Aller au contenu principal

previewOrder

Aperçu d'un calcul de commande sans la créer. 🔐 Cette méthode nécessite l'autorisation.

Description

Cette méthode calcule et prévisualise une commande - y compris les totaux des produits, les remises appliquées et le montant final - sans réellement créer la commande dans le système. Elle renvoie une promesse qui se résout en un objet IPreviewOrderEntity.

Orders.previewOrder(

body*, body.products, products.productId, products.quantity, body.couponCode, body.additionalDiscountsMarkers, body.bonusAmount, langCode

);

Paramètres du schéma

Schéma

body(obligatoire): ICreateOrderPreview
Corps de l'aperçu de la commande

body.products: IPreviewOrderProduct[]
Tableau de produits à prévisualiser.

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

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

body.couponCode: string
Code de coupon à appliquer.

body.additionalDiscountsMarkers: string[]
Tableau de marqueurs de remise supplémentaires.

body.bonusAmount: number
Montant de bonus à appliquer.

langCode: string
Code de langue. Par défaut : "en_US"
exemple : "en_US"

Exemples

Exemple minimal


const body = {
"formIdentifier": "orderForm",
"paymentAccountIdentifier": "cash",
"formData": {
{
"marker": "order_name",
"type": "string",
"value": "Ivan"
}
},
"products": [
{
"productId": 2957,
"quantity": 2
}
]
};

const response = await Orders.previewOrder("my_order", body);

Exemple de réponse

{
"formIdentifier": "orderForm",
"paymentAccountIdentifier": "cash",
"formData": [
{
"marker": "order_name",
"value": "Ivan",
"type": "string"
}
],
"products": [
{
"productId": 2957,
"quantity": 2
}
],
"currency": "usd",
"totalSum": 300
}

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 de remise appliquée à la commande.

discountConfig.bonus: IOrderDiscountBonus | null
Résultat du calcul de bonus, ou null lorsque les bonus ne sont pas utilisés.

bonus.availableBalance: number
Solde de bonus de l'utilisateur disponible au moment du calcul.
exemple : 0

bonus.bonusApplied: number
Montant de bonus effectivement appliqué à cette commande.
exemple : 0

bonus.maxBonusDiscount: number
Montant maximum de bonus autorisé à être dépensé sur cette commande.
exemple : 0

bonus.minBonusAmount: number | null
Montant minimum de bonus requis pour utiliser des bonus, ou null s'il n'y a pas de seuil.
exemple : null

bonus.minOrderAmountForBonus: number | null
Montant total minimum de la commande requis pour appliquer des bonus, ou null s'il n'y a pas de seuil.
exemple : null

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

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

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

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

settings.allowGiftStacking: boolean
Indique si plusieurs remises cadeaux peuvent être combinées.
exemple : false

settings.allowStacking: boolean
Indique si plusieurs remises non-cadeaux peuvent être combinées.
exemple : false

settings.maxDiscountValue: number | null
Plafond strict sur la valeur totale de la remise, ou null si sans plafond.
exemple : null

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

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

discountConfig.excludedGiftProductIds: string[]
Identifiants de produits exclus de la sélection de cadeaux (omises dans les réponses d'aperçu).

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

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

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

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

orderPreview: IOrderPreviewItem[]
Tableau d'éléments d'aperçu de commande.

orderPreview.id: number
Identifiant 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 livré en tant que cadeau.
exemple : false

bonusApplied: number
Bonus appliqué à la commande.

totalDue: number
Total dû après bonus.