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"
أمثلة
مثال بسيط
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
الإجمالي المستحق بعد المكافآت.