createOrder
Creating an order in the order storage. 🔐 This method requires authorization.
Description
The method will add the default language to the request body. If you want to change the language, just pass it with the second argument. It creates an order in the specified order storage. It returns a Promise that resolves to an IBaseOrdersEntity object.
Orders.createOrder(
marker*,
body*,
langCode
);
Parameters schema
Schema
marker(required): string
Textual identifier of the order storage object
example: "order_storage_1"
body(required): IOrderData
Object for creating an order
example:
{
"formIdentifier": "bar-orders-form",
"paymentAccountIdentifier": "usd-payment",
"formData": {
"marker": "name_1",
"value": "Name",
"type": "string"
},
"products": [
{
"productId": 1,
"quantity": 2
}
]
}
body.formIdentifier(required): string
Text identifier of the form object linked to the order repository.
example: "bar-orders-form"
body.paymentAccountIdentifier(required): string
Text identifier of the payment object linked to the order repository.
example: "payment-1"
body.formData(required): IOrdersFormData | IOrdersFormData[]
Form data linked to the order repository.
example:
[
{
"marker": "name_1",
"value": "Name",
"type": "string"
}
]
formData.marker(required): string
Marker of form field.
example: "name_1"
formData.type(required): string
Type of value.
example: "string"
formData.value(required): string
Value.
example: "Name"
body.products(required): IOrderProductData[]
An array of ordered products.
example: []
products.productId(required): number
Product identifier.
example: 1
products.quantity(required): number
Quantity of the product.
example: 2
products.signedPrice: string
The signed price of the product is obtained along with the product data when signPrice is set.
example: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
body.couponCode: string
Coupon code.
body.additionalDiscountsMarkers: string[]
Array of additional discount markers.
body.bonusAmount: number
Bonus amount to apply.
langCode: string
Language code. Default: "en_US"
example: "en_US"
Examples
Minimal example
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);
Example response
{
"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"
}
Response schema
Schema: IBaseOrdersEntity
id: number
Object identifier.
example: 1
formIdentifier: string
Text identifier of the form.
example: "bar-orders-form"
paymentAccountIdentifier: string
Text identifier of the order payment.
example: "payment-1"
formData: IOrdersFormData[]
Data submitted by the form linked to the order store.
example:
[
{
"marker": "name_1",
"value": "Name",
"type": "string"
}
]
formData.marker: string
Marker of form field.
example: "name_1"
formData.type: string
Type of value.
example: "string"
formData.value: string
Value.
example: "Name"
products: IOrderProductsData[]
Array of products added to order.
example:
[
{
"id": 2957,
"title": "Cosmo",
"sku": null,
"previewImage": null,
"price": 150,
"quantity": 2
}
]
products.productId: number
Product identifier.
example: 1
products.quantity: number
Quantity of the product.
example: 2
currency: string
Currency used to pay for the order.
example: "USD"
totalSum: string
Total order amount.
example: "150"
createdDate: string
Order creation date.
example: "2023-10-01T12:00:00Z"
statusIdentifier: string
Text identifier of order status object (if not set, default status will be assigned).
example: "status-1"
couponCode: string
**
discountConfig: IOrderDiscountConfig
Resolved discount configuration applied to the order.
discountConfig.bonus: IOrderDiscountBonus | null
Bonus calculation result, null when bonuses are not used, or omitted entirely when the order has no bonus context.
discountConfig.coupon: unknown | null
Resolved coupon, or null when no coupon is applied.
discountConfig.orderDiscounts: unknown[]
Order-level discounts that were matched and applied.
discountConfig.productDiscounts: unknown[]
Product-level discounts that were matched and applied.
discountConfig.settings: IOrderDiscountSettings
Stacking and cap settings used during calculation.
discountConfig.additionalDiscountsMarkers: string[]
Markers of extra discounts requested by the client (omitted in preview responses).
discountConfig.bonusApplied: number
Bonus amount applied to the order (omitted in preview responses).
example: 0
discountConfig.excludedGiftProductIds: string[]
Product ids excluded from gift selection (omitted in preview responses).
discountConfig.totalDue: number
Total amount due after discounts and bonuses (omitted in preview responses).
example: 300
discountConfig.totalRaw: number
Total amount before discounts (omitted in preview responses).
example: 300
discountConfig.totalSumWithDiscount: number
Total amount after discounts but before bonuses (omitted in preview responses).
example: 300
bonusAmount: number
Bonus amount applied to the order.
bonusApplied: number
Bonus applied to the order.
totalDue: number
Total due after bonuses.
Usage examples
Step-by-step walkthroughs in the documentation:
- Order pay — place an order as an authenticated user and pay for it.
- Tickets order — order event tickets end-to-end.
- Guest order — place an order as a guest without registration.
Try it live
Run this method interactively in the JS SDK sandbox — connect your Project URL and App Token on first visit, then open:
- Order pay — place an order as an authenticated user and pay for it.
- Tickets order — order event tickets end-to-end.
- Guest order — place an order as a guest without registration.