Chuyển đến nội dung chính

previewOrder

Xem trước một phép tính đơn hàng mà không cần tạo nó. 🔐 Phương pháp này yêu cầu ủy quyền.

Mô tả

Phương pháp này tính toán và xem trước một đơn hàng - bao gồm tổng sản phẩm, các khoản giảm giá đã áp dụng và tổng số cuối cùng - mà không thực sự tạo đơn hàng trong hệ thống. Nó trả về một Promise mà khi hoàn thành sẽ trả về một đối tượng IPreviewOrderEntity.

Orders.previewOrder(

body*, langCode

);

Sơ đồ tham số

Sơ đồ

body(bắt buộc): ICreateOrderPreview
Nội dung xem trước đơn hàng

body.products: IPreviewOrderProduct[]
Mảng các sản phẩm để xem trước.

products.productId: number
Định danh sản phẩm.
ví dụ: 1

products.quantity: number
Số lượng sản phẩm.
ví dụ: 2

body.couponCode: string
Mã giảm giá để áp dụng.

body.additionalDiscountsMarkers: string[]
Mảng các dấu hiệu giảm giá bổ sung.

body.bonusAmount: number
Số tiền thưởng để áp dụng.

langCode: string
Mã ngôn ngữ. Mặc định: "en_US"
ví dụ: "en_US"

Ví dụ

Ví dụ tối thiểu


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

Ví dụ phản hồi

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

Sơ đồ phản hồi

Sơ đồ: IOrderPreviewResponse

totalSum: number
Tổng số tiền đơn hàng trước khi giảm giá.
ví dụ: 300

totalSumWithDiscount: number
Tổng số tiền đơn hàng sau khi giảm giá.
ví dụ: 250

discountConfig: IOrderDiscountConfig
Cấu hình giảm giá áp dụng cho đơn hàng.

discountConfig.bonus: IOrderDiscountBonus | null
Kết quả tính toán tiền thưởng, null khi không sử dụng tiền thưởng, hoặc bị bỏ qua hoàn toàn khi đơn hàng không có ngữ cảnh tiền thưởng.

discountConfig.coupon: unknown | null
Mã giảm giá đã được giải quyết, hoặc null khi không có mã giảm giá nào được áp dụng.

discountConfig.orderDiscounts: unknown[]
Các khoản giảm giá cấp đơn hàng đã được khớp và áp dụng.

discountConfig.productDiscounts: unknown[]
Các khoản giảm giá cấp sản phẩm đã được khớp và áp dụng.

discountConfig.settings: IOrderDiscountSettings
Cấu hình xếp chồng và giới hạn được sử dụng trong quá trình tính toán.

discountConfig.additionalDiscountsMarkers: string[]
Các dấu hiệu của các khoản giảm giá bổ sung được yêu cầu bởi khách hàng (bị bỏ qua trong các phản hồi xem trước).

discountConfig.bonusApplied: number
Số tiền thưởng đã áp dụng cho đơn hàng (bị bỏ qua trong các phản hồi xem trước).
ví dụ: 0

discountConfig.excludedGiftProductIds: string[]
Các ID sản phẩm bị loại trừ khỏi lựa chọn quà tặng (bị bỏ qua trong các phản hồi xem trước).

discountConfig.totalDue: number
Tổng số tiền phải trả sau khi giảm giá và tiền thưởng (bị bỏ qua trong các phản hồi xem trước).
ví dụ: 300

discountConfig.totalRaw: number
Tổng số tiền trước khi giảm giá (bị bỏ qua trong các phản hồi xem trước).
ví dụ: 300

discountConfig.totalSumWithDiscount: number
Tổng số tiền sau khi giảm giá nhưng trước khi áp dụng tiền thưởng (bị bỏ qua trong các phản hồi xem trước).
ví dụ: 300

currency: string
Tiền tệ của đơn hàng.
ví dụ: "USD"

orderPreview: IOrderPreviewItem[]
Mảng các mục xem trước đơn hàng.

orderPreview.id: number
Định danh sản phẩm.
ví dụ: 2954

orderPreview.price: number
Giá đơn vị sản phẩm trước khi giảm giá.
ví dụ: 51

orderPreview.quantity: number
Số lượng sản phẩm.
ví dụ: 1

orderPreview.discountPrice: number | null
Giá đơn vị sau khi giảm giá, hoặc null khi không có giảm giá nào áp dụng.
ví dụ: null

orderPreview.isGift: boolean
Liệu sản phẩm có được giao như một món quà hay không.
ví dụ: false

bonusApplied: number
Số tiền thưởng đã áp dụng cho đơn hàng.

totalDue: number
Tổng số tiền phải trả sau khi áp dụng tiền thưởng.