previewOrder
Calcula una vista previa de un pedido sin crearlo. La autorización es opcional. Sin ella, la vista previa no incluye datos de bonos: discountConfig.bonus es null, bonusApplied es 0 y cualquier bonusAmount se ignora. Para un usuario autorizado, la vista previa incluye su saldo de bonos.
Descripción
Calcula un pedido sin crearlo: totales de productos, descuentos y bonificaciones aplicados y el importe a pagar. Se resuelve en un IOrderPreviewResponse.
El cuerpo solo admite products y, opcionalmente, couponCode, additionalDiscountsMarkers y bonusAmount; no se necesita ningún formulario ni cuenta de pago. products es obligatorio y no debe estar vacío; de lo contrario, la API responde con un error 400.
.previewOrder(
,
);
Esquema de parámetros
Esquema
body(requerido): ICreateOrderPreview
Parámetros de la vista previa del pedido.
body.products: IPreviewOrderProduct[]
Productos que se incluyen en la vista previa.
products.productId: number
ID del producto.
ejemplo: 1
products.quantity: number
Cantidad del producto.
ejemplo: 2
body.couponCode: string
Código de cupón a aplicar.
body.additionalDiscountsMarkers: string[]
Marcadores de los descuentos adicionales que se aplican.
body.bonusAmount: number
Cantidad de bonificación a aplicar.
langCode: cadena
Código de idioma. Predeterminado: el langCode pasado a defineOneEntry ("en_US" si no se pasó ninguno).
ejemplo: "en_US"
Ejemplos
Ejemplo mínimo
const body = { { , } ]};
const response = await Orders.previewOrder(body);
Ejemplo de respuesta
{
"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
}
]
}
Esquema de respuesta
Esquema: IOrderPreviewResponse
totalSum: number
Monto total del pedido antes de descuentos.
ejemplo: 300
totalSumWithDiscount: number
Monto total del pedido después de descuentos.
ejemplo: 250
discountConfig: IOrderDiscountConfig
Configuración de descuentos aplicada al pedido.
discountConfig.bonus: IOrderDiscountBonus | null
Resultado del cálculo de bonificaciones: null si no se usan bonificaciones; se omite si el pedido no tiene contexto de bonificación.
discountConfig.coupon: unknown | null
Cupón aplicado, o null si no se aplica ningún cupón.
discountConfig.orderDiscounts: unknown[]
Descuentos a nivel de pedido que fueron coincidentes y aplicados.
discountConfig.productDiscounts: unknown[]
Descuentos a nivel de producto que fueron coincidentes y aplicados.
discountConfig.settings: IOrderDiscountSettings
Configuraciones de apilamiento y límite utilizadas durante el cálculo.
discountConfig.additionalDiscountsMarkers: string[]
Marcadores de descuentos adicionales solicitados por el cliente. Se omite en las respuestas de vista previa.
discountConfig.bonusApplied: number
Importe de bonificación aplicado al pedido. Se omite en las respuestas de vista previa.
ejemplo: 0
discountConfig.excludedGiftProductIds: string[]
IDs de productos excluidos de la selección de regalos. Se omite en las respuestas de vista previa.
discountConfig.totalDue: number
Monto total a pagar después de descuentos y bonificaciones (omitido en las respuestas de previsualización).
ejemplo: 300
discountConfig.totalRaw: number
Monto total antes de descuentos (omitido en las respuestas de previsualización).
ejemplo: 300
discountConfig.totalSumWithDiscount: number
Monto total después de descuentos pero antes de bonificaciones (omitido en las respuestas de previsualización).
ejemplo: 300
currency: string
Moneda del pedido.
ejemplo: "USD"
orderPreview: IOrderPreviewItem[]
Vista previa de los elementos del pedido.
orderPreview.id: number
ID del producto.
ejemplo: 2954
orderPreview.price: number
Precio unitario del producto antes de descuentos.
ejemplo: 51
orderPreview.quantity: number
Cantidad del producto.
ejemplo: 1
orderPreview.discountPrice: number | null
Precio unitario después de descuentos, o null cuando no se aplica ningún descuento.
ejemplo: null
orderPreview.isGift: boolean
Indica si el producto es un regalo.
ejemplo: false
bonusApplied: number
Importe de bonificación aplicado al pedido.
totalDue: number
Total a pagar después de bonificaciones.