Skip to main content

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*, body.formIdentifier*, body.paymentAccountIdentifier*, body.formData*, formData.marker*, formData.type*, formData.value*, body.products*, products.productId*, products.quantity*, body.couponCode, body.additionalDiscountsMarkers, body.bonusAmount, 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

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": 551,
"formIdentifier": "orderForm",
"paymentAccountIdentifier": "cash",
"formData": [
{
"marker": "order_name",
"value": "Ivan",
"type": "string"
}
],
"products": [
{
"productId": 2957,
"quantity": 2
}
],
"currency": "",
"totalSum": 300,
"bonusApplied": 0,
"totalDue": 300,
"discountConfig": {
"orderDiscounts": [],
"productDiscounts": [],
"coupon": null,
"settings": {
"allowStacking": false,
"maxDiscountValue": null,
"allowGiftStacking": false,
"maxBonusPaymentPercent": null,
"minBonusAmount": null,
"minOrderAmountForBonus": null,
"giftRefundPolicy": "KEEP_GIFT"
},
"additionalDiscountsMarkers": [],
"totalRaw": 300,
"totalSumWithDiscount": 300,
"excludedGiftProductIds": [],
"bonus": {
"availableBalance": 0,
"maxBonusDiscount": 0,
"minBonusAmount": null,
"minOrderAmountForBonus": null,
"bonusApplied": 0
},
"bonusApplied": 0,
"totalDue": 300
},
"createdDate": "2026-04-15T14:20:29.645Z"
}

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: number
Total order amount.
example: NaN

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, or null when bonuses are not used.

bonus.availableBalance: number
User bonus balance available at the moment of calculation.
example: 0

bonus.bonusApplied: number
Bonus amount actually applied to this order.
example: 0

bonus.maxBonusDiscount: number
Maximum bonus amount allowed to be spent on this order.
example: 0

bonus.minBonusAmount: number | null
Minimum bonus balance required to use bonuses, or null if no threshold.
example: null

bonus.minOrderAmountForBonus: number | null
Minimum order total required to apply bonuses, or null if no threshold.
example: null

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.

settings.allowGiftStacking: boolean
Whether multiple gift discounts can be combined.
example: false

settings.allowStacking: boolean
Whether multiple non-gift discounts can be combined.
example: false

settings.maxDiscountValue: number | null
Hard cap on total discount value, or null if uncapped.
example: null

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.