createOrder
Créer une commande dans le stockage des commandes. 🔐 Cette méthode nécessite l'autorisation.
Description
La méthode ajoutera la langue par défaut au corps de la requête. Si vous souhaitez changer la langue, il vous suffit de la passer en tant que deuxième argument. Elle crée une commande dans le stockage des commandes spécifié. Elle renvoie une Promesse qui se résout en un objet IBaseOrdersEntity.
Orders.createOrder(
marker*,
body*,
langCode
);
Schéma des paramètres
Schéma
marker(obligatoire): string
Identifiant textuel de l'objet de stockage des commandes
exemple : "order_storage_1"
body(obligatoire): IOrderData
Objet pour créer une commande
exemple :
{
"formIdentifier": "bar-orders-form",
"paymentAccountIdentifier": "usd-payment",
"formData": {
"marker": "name_1",
"value": "Name",
"type": "string"
},
"products": [
{
"productId": 1,
"quantity": 2
}
]
}
body.formIdentifier(obligatoire): string
Identifiant textuel de l'objet de formulaire lié au dépôt de commandes.
exemple : "bar-orders-form"
body.paymentAccountIdentifier(obligatoire): string
Identifiant textuel de l'objet de paiement lié au dépôt de commandes.
exemple : "payment-1"
body.formData(obligatoire): IOrdersFormData | IOrdersFormData[]
Données de formulaire liées au dépôt de commandes.
exemple :
[
{
"marker": "name_1",
"value": "Name",
"type": "string"
}
]
formData.marker(obligatoire): string
Marqueur du champ de formulaire.
exemple : "name_1"
formData.type(obligatoire): string
Type de valeur.
exemple : "string"
formData.value(obligatoire): string
Valeur.
exemple : "Nom"
body.products(obligatoire): IOrderProductData[]
Un tableau de produits commandés.
exemple : []
products.productId(obligatoire): number
Identifiant du produit.
exemple : 1
products.quantity(obligatoire): number
Quantité du produit.
exemple : 2
products.signedPrice: string
Le prix signé du produit est obtenu avec les données du produit lorsque signPrice est défini.
exemple : "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
body.couponCode: string
Code de coupon.
body.additionalDiscountsMarkers: string[]
Tableau de marqueurs de remises supplémentaires.
body.bonusAmount: number
Montant du bonus à appliquer.
langCode: string
Code de langue. Par défaut : "en_US"
exemple : "en_US"
🔒
signedPriceest le jeton signé qui porte le prix verrouillé — renvoyez-le lorsque vous créez une commande. Voir Prix fixe du produit (signedPrice).
Exemples
Exemple minimal
const body = { "formIdentifier": "orderForm", "paymentAccountIdentifier": "cash", "formData": { { "marker": "order_name", "type": "string", "value": "Ivan" } }, "products": [ { "productId": 2, "quantity": 2 } ]};
const response = await Orders.createOrder("my-order", body);
Exemple avec un prix fixe (signedPrice)
Récupérez les produits avec signPrice défini sur votre marqueur de stockage de commandes, puis renvoyez chaque jeton signedPrice retourné dans la commande afin que le prix verrouillé soit respecté :
const { items } = await Products.getProducts([], "en_US", { signPrice: "my-order"});
const body = { "formIdentifier": "orderForm", "paymentAccountIdentifier": "cash", "formData": [], "products": [ { "productId": items[0].id, "quantity": 2, "signedPrice": items[0].signedPrice } ]};
const response = await Orders.createOrder("my-order", body);
Exemple de réponse
{
"id": 681,
"formIdentifier": "orderForm",
"paymentAccountIdentifier": "cash",
"formData": [
{
"marker": "order_name",
"value": "Ivan",
"type": "string"
}
],
"products": [
{
"productId": 2957,
"quantity": 2
}
],
"currency": "USD",
"totalSum": 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"
},
"additionalDiscountsMarkers": [],
"totalRaw": 300,
"totalSumWithDiscount": 285,
"excludedGiftProductIds": [],
"bonus": {
"availableBalance": 0,
"maxBonusDiscount": 0,
"minBonusAmount": null,
"minOrderAmountForBonus": null,
"bonusApplied": 0
},
"bonusApplied": 0,
"totalDue": 285
},
"statusIdentifier": "inProgress",
"statusLocalizeInfos": {
"title": "In progress"
},
"createdDate": "2026-06-12T18:05:22.470Z"
}
Schéma de réponse
Schéma : IBaseOrdersEntity
id: number
Identifiant de l'objet.
exemple : 1
formIdentifier: string
Identifiant textuel du formulaire.
exemple : "bar-orders-form"
paymentAccountIdentifier: string
Identifiant textuel du paiement de la commande.
exemple : "payment-1"
formData: IOrdersFormData[]
Données soumises par le formulaire lié au dépôt de commandes.
exemple :
[
{
"marker": "name_1",
"value": "Name",
"type": "string"
}
]
formData.marker: string
Marqueur du champ de formulaire.
exemple : "name_1"
formData.type: string
Type de valeur.
exemple : "string"
formData.value: string
Valeur.
exemple : "Nom"
products: IOrderProductsData[]
Tableau de produits ajoutés à la commande.
exemple :
[
{
"id": 2957,
"title": "Cosmo",
"sku": null,
"previewImage": null,
"price": 150,
"quantity": 2
}
]
products.productId: number
Identifiant du produit.
exemple : 1
products.quantity: number
Quantité du produit.
exemple : 2
currency: string
Devise utilisée pour payer la commande.
exemple : "USD"
totalSum: string
Montant total de la commande.
exemple : "150"
createdDate: string
Date de création de la commande.
exemple : "2023-10-01T12:00:00Z"
statusIdentifier: string
Identifiant textuel de l'objet d'état de la commande (si non défini, l'état par défaut sera attribué).
exemple : "status-1"
couponCode: string
**
discountConfig: IOrderDiscountConfig
Configuration de remise résolue appliquée à la commande.
discountConfig.bonus: IOrderDiscountBonus | null
Résultat du calcul de bonus, null lorsque les bonus ne sont pas utilisés, ou omis entièrement lorsque la commande n'a pas de contexte de bonus.
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é appariées et appliquées.
discountConfig.productDiscounts: unknown[]
Remises au niveau du produit qui ont été appariées et appliquées.
discountConfig.settings: IOrderDiscountSettings
Paramètres d'accumulation et de plafond utilisés lors du calcul.
discountConfig.additionalDiscountsMarkers: string[]
Marqueurs de remises supplémentaires demandées par le client (omis dans les réponses d'aperçu).
discountConfig.bonusApplied: number
Montant du bonus appliqué à la commande (omis dans les réponses d'aperçu).
exemple : 0
discountConfig.excludedGiftProductIds: string[]
Identifiants de 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
bonusAmount: number
Montant du bonus appliqué à la commande.
bonusApplied: number
Bonus appliqué à la commande.
totalDue: number
Total dû après bonus.
Exemples d'utilisation
Guides étape par étape dans la documentation :
- Paiement de commande — passez une commande en tant qu'utilisateur authentifié et payez-la.
- Commande de billets — commandez des billets d'événements de bout en bout.
- Commande invité — passez une commande en tant qu'invité sans inscription.
Essayez-le en direct
Exécutez cette méthode de manière interactive dans le bac à sable JS SDK — connectez votre URL de projet et votre jeton d'application lors de votre première visite, puis ouvrez :
- Paiement de commande — passez une commande en tant qu'utilisateur authentifié et payez-la.
- Commande de billets — commandez des billets d'événements de bout en bout.
- Commande invité — passez une commande en tant qu'invité sans inscription.