previewOrder
معاينة حساب الطلب دون إنشائه. 🔐 تتطلب هذه الطريقة التفويض.
الوصف
تحسب هذه الطريقة وتعرض معاينة لطلب - بما في ذلك إجمالي المنتجات، والخصومات المطبقة، والمجموع النهائي - دون إنشاء الطلب فعليًا في النظام. تعيد Promise التي تحل إلى كائن IPreviewOrderEntity.
Orders.previewOrder(
body*,
langCode
);
مخطط المعلمات
المخطط
body(required): ICreateOrderPreview
نص جسم معاينة الطلب
body.products: IPreviewOrderProduct[]
مصفوفة من المنتجات للمعاينة.
products.productId: number
معرف المنتج.
مثال: 1
products.quantity: 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": 2957, "quantity": 2 } ]};
const response = await Orders.previewOrder(body);
مثال على الاستجابة
{
"totalSum": 300,
"totalSumWithDiscount": 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"
},
"bonus": {
"availableBalance": 0,
"maxBonusDiscount": 0,
"minBonusAmount": null,
"minOrderAmountForBonus": null,
"bonusApplied": 0
}
},
"currency": "USD",
"orderPreview": [
{
"id": 2957,
"isGift": false,
"price": 150,
"discountPrice": null,
"quantity": 2
}
]
}
مخطط الاستجابة
المخطط: IOrderPreviewResponse
totalSum: number
إجمالي مبلغ الطلب قبل الخصومات.
مثال: 300
totalSumWithDiscount: number
إجمالي مبلغ الطلب بعد الخصومات.
مثال: 250
discountConfig: IOrderDiscountConfig
تكوين الخصم المطبق على الطلب.
discountConfig.bonus: IOrderDiscountBonus | null
نتيجة حساب المكافأة، null عندما لا يتم استخدام المكافآت، أو يتم حذفها تمامًا عندما لا يحتوي الطلب على سياق مكافأة.
discountConfig.coupon: unknown | null
القسيمة المحلولة، أو null عندما لا يتم تطبيق أي قسيمة.
discountConfig.orderDiscounts: unknown[]
خصومات على مستوى الطلب تم مطابقتها وتطبيقها.
discountConfig.productDiscounts: unknown[]
خصومات على مستوى المنتج تم مطابقتها وتطبيقها.
discountConfig.settings: IOrderDiscountSettings
إعدادات التكديس والحد المستخدمة أثناء الحساب.
discountConfig.additionalDiscountsMarkers: string[]
علامات الخصومات الإضافية المطلوبة من العميل (تم حذفها في استجابات المعاينة).
discountConfig.bonusApplied: number
مبلغ المكافأة المطبق على الطلب (تم حذفه في استجابات المعاينة).
مثال: 0
discountConfig.excludedGiftProductIds: string[]
معرفات المنتجات المستبعدة من اختيار الهدايا (تم حذفها في استجابات المعاينة).
discountConfig.totalDue: number
إجمالي المبلغ المستحق بعد الخصومات والمكافآت (تم حذفه في استجابات المعاينة).
مثال: 300
discountConfig.totalRaw: number
إجمالي المبلغ قبل الخصومات (تم حذفه في استجابات المعاينة).
مثال: 300
discountConfig.totalSumWithDiscount: number
إجمالي المبلغ بعد الخصومات ولكن قبل المكافآت (تم حذفه في استجابات المعاينة).
مثال: 300
currency: string
عملة الطلب.
مثال: "USD"
orderPreview: IOrderPreviewItem[]
مصفوفة من عناصر معاينة الطلب.
orderPreview.id: number
معرف المنتج.
مثال: 2954
orderPreview.price: number
سعر الوحدة للمنتج قبل الخصومات.
مثال: 51
orderPreview.quantity: number
كمية المنتج.
مثال: 1
orderPreview.discountPrice: number | null
سعر الوحدة بعد الخصومات، أو null عندما لا يتم تطبيق أي خصم.
مثال: null
orderPreview.isGift: boolean
ما إذا كان المنتج يتم تسليمه كهدية.
مثال: false
bonusApplied: number
المكافأة المطبقة على الطلب.
totalDue: number
الإجمالي المستحق بعد المكافآت.