انتقل إلى المحتوى الرئيسي

createOrder

إنشاء طلب في تخزين الطلبات. 🔐 تتطلب هذه الطريقة التفويض.

الوصف

ستضيف الطريقة اللغة الافتراضية إلى جسم الطلب. إذا كنت ترغب في تغيير اللغة، فقط مررها كوسيط ثانٍ. تقوم بإنشاء طلب في تخزين الطلبات المحدد. تعيد Promise التي تحل إلى كائن IBaseOrdersEntity.

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

);

مخطط المعلمات

المخطط

marker(required): string
معرف نصي لكائن تخزين الطلب
مثال: "order_storage_1"

body(required): IOrderData
كائن لإنشاء طلب
مثال:

{
"formIdentifier": "bar-orders-form",
"paymentAccountIdentifier": "usd-payment",
"formData": {
"marker": "name_1",
"value": "Name",
"type": "string"
},
"products": [
{
"productId": 1,
"quantity": 2
}
]
}

body.formIdentifier(required): string
معرف نصي لكائن النموذج المرتبط بمستودع الطلب.
مثال: "bar-orders-form"

body.paymentAccountIdentifier(required): string
معرف نصي لكائن الدفع المرتبط بمستودع الطلب.
مثال: "payment-1"

body.formData(required): IOrdersFormData | IOrdersFormData[]
بيانات النموذج المرتبطة بمستودع الطلب.
مثال:

[
{
"marker": "name_1",
"value": "Name",
"type": "string"
}
]

formData.marker(required): string
علامة حقل النموذج.
مثال: "name_1"

formData.type(required): string
نوع القيمة.
مثال: "string"

formData.value(required): string
القيمة.
مثال: "Name"

body.products(required): IOrderProductData[]
مصفوفة من المنتجات المطلوبة.
مثال: []

products.productId(required): number
معرف المنتج.
مثال: 1

products.quantity(required): number
كمية المنتج.
مثال: 2

body.couponCode: string
رمز القسيمة.

body.additionalDiscountsMarkers: string[]
مصفوفة من علامات الخصم الإضافية.

body.bonusAmount: number
مبلغ المكافأة للتطبيق.

langCode: string
رمز اللغة. الافتراضي: "en_US"
مثال: "en_US"

جربها مباشرة

قم بتشغيل هذه الطريقة بشكل تفاعلي في JS SDK sandbox — قم بتوصيل عنوان مشروعك ورمز التطبيق عند الزيارة الأولى، ثم افتح:


أمثلة

مثال بسيط



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);

مثال على الاستجابة

{
"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"
}

مخطط الاستجابة

المخطط: IBaseOrdersEntity

id: number
معرف الكائن.
مثال: 1

formIdentifier: string
معرف نصي للنموذج.
مثال: "bar-orders-form"

paymentAccountIdentifier: string
معرف نصي لدفع الطلب.
مثال: "payment-1"

formData: IOrdersFormData[]
البيانات المقدمة من النموذج المرتبط بمستودع الطلب.
مثال:

[
{
"marker": "name_1",
"value": "Name",
"type": "string"
}
]

formData.marker: string
علامة حقل النموذج.
مثال: "name_1"

formData.type: string
نوع القيمة.
مثال: "string"

formData.value: string
القيمة.
مثال: "Name"

products: IOrderProductsData[]
مصفوفة من المنتجات المضافة إلى الطلب.
مثال:

[
{
"id": 2957,
"title": "Cosmo",
"sku": null,
"previewImage": null,
"price": 150,
"quantity": 2
}
]

products.productId: number
معرف المنتج.
مثال: 1

products.quantity: number
كمية المنتج.
مثال: 2

currency: string
العملة المستخدمة لدفع الطلب.
مثال: "USD"

totalSum: number
إجمالي مبلغ الطلب.
مثال: NaN

createdDate: string
تاريخ إنشاء الطلب.
مثال: "2023-10-01T12:00:00Z"

statusIdentifier: string
معرف نصي لكائن حالة الطلب (إذا لم يتم تعيينه، سيتم تعيين حالة افتراضية).
مثال: "status-1"

couponCode: string
**

discountConfig: IOrderDiscountConfig
تكوين الخصم المحسوب المطبق على الطلب.

discountConfig.bonus: IOrderDiscountBonus | null
نتيجة حساب المكافأة، أو null عند عدم استخدام المكافآت.

bonus.availableBalance: number
رصيد المكافأة المتاحة للمستخدم في لحظة الحساب.
مثال: 0

bonus.bonusApplied: number
مبلغ المكافأة المطبق فعليًا على هذا الطلب.
مثال: 0

bonus.maxBonusDiscount: number
أقصى مبلغ مكافأة مسموح به لإنفاقه على هذا الطلب.
مثال: 0

bonus.minBonusAmount: number | null
أدنى رصيد مكافأة مطلوب لاستخدام المكافآت، أو null إذا لم يكن هناك حد.
مثال: null

bonus.minOrderAmountForBonus: number | null
أدنى إجمالي طلب مطلوب لتطبيق المكافآت، أو null إذا لم يكن هناك حد.
مثال: null

discountConfig.coupon: unknown | null
القسيمة المحسوبة، أو null عند عدم تطبيق أي قسيمة.

discountConfig.orderDiscounts: unknown[]
خصومات على مستوى الطلب التي تم مطابقتها وتطبيقها.

discountConfig.productDiscounts: unknown[]
خصومات على مستوى المنتج التي تم مطابقتها وتطبيقها.

discountConfig.settings: IOrderDiscountSettings
إعدادات التكديس والحد المستخدمة أثناء الحساب.

settings.allowGiftStacking: boolean
ما إذا كان يمكن دمج خصومات الهدايا المتعددة.
مثال: false

settings.allowStacking: boolean
ما إذا كان يمكن دمج خصومات غير الهدايا المتعددة.
مثال: false

settings.maxDiscountValue: number | null
حد أقصى على إجمالي قيمة الخصم، أو null إذا لم يكن هناك حد.
مثال: null

discountConfig.additionalDiscountsMarkers: string[]
علامات الخصومات الإضافية المطلوبة من العميل (تم حذفها في استجابات المعاينة).

discountConfig.bonusApplied: number
مبلغ المكافأة المطبق على الطلب (تم حذفه في استجابات المعاينة).
مثال: 0

discountConfig.excludedGiftProductIds: string[]
معرفات المنتجات المستبعدة من اختيار الهدايا (تم حذفها في استجابات المعاينة).

discountConfig.totalDue: number
إجمالي المبلغ المستحق بعد الخصومات والمكافآت (تم حذفه في استجابات المعاينة).
مثال: 300

discountConfig.totalRaw: number
إجمالي المبلغ قبل الخصومات (تم حذفه في استجابات المعاينة).
مثال: 300

discountConfig.totalSumWithDiscount: number
إجمالي المبلغ بعد الخصومات ولكن قبل المكافآت (تم حذفه في استجابات المعاينة).
مثال: 300

bonusAmount: number
مبلغ المكافأة المطبق على الطلب.

bonusApplied: number
المكافأة المطبقة على الطلب.

totalDue: number
الإجمالي المستحق بعد المكافآت.