Lewati ke konten utama

previewOrder

Pratinjau perhitungan pesanan tanpa membuatnya. 🔐 Metode ini memerlukan otorisasi.

Deskripsi

Metode ini menghitung dan mempratinjau sebuah pesanan - termasuk total produk, diskon yang diterapkan, dan jumlah akhir - tanpa benar-benar membuat pesanan di sistem. Ini mengembalikan Promise yang menyelesaikan menjadi objek IPreviewOrderEntity.

Orders.previewOrder(

body*, langCode

);

Skema parameter

Skema

body(diperlukan): ICreateOrderPreview
Badan pratinjau pesanan

body.products: IPreviewOrderProduct[]
Array produk untuk dipratinjau.

products.productId: number
Identifikasi produk.
contoh: 1

products.quantity: number
Jumlah produk.
contoh: 2

body.couponCode: string
Kode kupon yang diterapkan.

body.additionalDiscountsMarkers: string[]
Array penanda diskon tambahan.

body.bonusAmount: number
Jumlah bonus yang diterapkan.

langCode: string
Kode bahasa. Default: "en_US"
contoh: "en_US"

Contoh

Contoh minimal


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

Contoh respons

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

Skema respons

Skema: IOrderPreviewResponse

totalSum: number
Jumlah total pesanan sebelum diskon.
contoh: 300

totalSumWithDiscount: number
Jumlah total pesanan setelah diskon.
contoh: 250

discountConfig: IOrderDiscountConfig
Konfigurasi diskon yang diterapkan pada pesanan.

discountConfig.bonus: IOrderDiscountBonus | null
Hasil perhitungan bonus, null ketika bonus tidak digunakan, atau dihilangkan sepenuhnya ketika pesanan tidak memiliki konteks bonus.

discountConfig.coupon: unknown | null
Kupon yang diselesaikan, atau null ketika tidak ada kupon yang diterapkan.

discountConfig.orderDiscounts: unknown[]
Diskon tingkat pesanan yang dicocokkan dan diterapkan.

discountConfig.productDiscounts: unknown[]
Diskon tingkat produk yang dicocokkan dan diterapkan.

discountConfig.settings: IOrderDiscountSettings
Pengaturan penumpukan dan batas yang digunakan selama perhitungan.

discountConfig.additionalDiscountsMarkers: string[]
Penanda diskon tambahan yang diminta oleh klien (dihilangkan dalam respons pratinjau).

discountConfig.bonusApplied: number
Jumlah bonus yang diterapkan pada pesanan (dihilangkan dalam respons pratinjau).
contoh: 0

discountConfig.excludedGiftProductIds: string[]
ID produk yang dikecualikan dari pemilihan hadiah (dihilangkan dalam respons pratinjau).

discountConfig.totalDue: number
Jumlah total yang harus dibayar setelah diskon dan bonus (dihilangkan dalam respons pratinjau).
contoh: 300

discountConfig.totalRaw: number
Jumlah total sebelum diskon (dihilangkan dalam respons pratinjau).
contoh: 300

discountConfig.totalSumWithDiscount: number
Jumlah total setelah diskon tetapi sebelum bonus (dihilangkan dalam respons pratinjau).
contoh: 300

currency: string
Mata uang pesanan.
contoh: "USD"

orderPreview: IOrderPreviewItem[]
Array item pratinjau pesanan.

orderPreview.id: number
Identifikasi produk.
contoh: 2954

orderPreview.price: number
Harga unit produk sebelum diskon.
contoh: 51

orderPreview.quantity: number
Jumlah produk.
contoh: 1

orderPreview.discountPrice: number | null
Harga unit setelah diskon, atau null ketika tidak ada diskon yang diterapkan.
contoh: null

orderPreview.isGift: boolean
Apakah produk dikirim sebagai hadiah.
contoh: false

bonusApplied: number
Bonus yang diterapkan pada pesanan.

totalDue: number
Jumlah total yang harus dibayar setelah bonus.