previewOrder
Previsualiza un cálculo de pedido sin crearlo. 🔐 Este método requiere autorización.
Descripción
Este método calcula y previsualiza un pedido, incluyendo totales de productos, descuentos aplicados y la suma final, sin crear realmente el pedido en el sistema. Devuelve una Promesa que se resuelve en un objeto IPreviewOrderEntity.
Orders.previewOrder(
body*,
body.products,
products.productId,
products.quantity,
body.couponCode,
body.additionalDiscountsMarkers,
body.bonusAmount,
langCode
);
Esquema de parámetros
Esquema
body(required): ICreateOrderPreview
Cuerpo de la previsualización del pedido
body.products: IPreviewOrderProduct[]
Array de productos a previsualizar.
products.productId: number
Identificador 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[]
Array de marcadores de descuentos adicionales.
body.bonusAmount: number
Monto de bonificación a aplicar.
langCode: string
Código de idioma. Predeterminado: "en_US"
ejemplo: "en_US"
Ejemplos
Ejemplo mínimo
const body = { "formIdentifier": "orderForm", "paymentAccountIdentifier": "cash", "formData": { { "marker": "order_name", "type": "string", "value": "Ivan" } }, "products": [ { "productId": 2957, "quantity": 2 } ]};
const response = await Orders.previewOrder("my_order", body);
Ejemplo de respuesta
{
"formIdentifier": "orderForm",
"paymentAccountIdentifier": "cash",
"formData": [
{
"marker": "order_name",
"value": "Ivan",
"type": "string"
}
],
"products": [
{
"productId": 2957,
"quantity": 2
}
],
"currency": "usd",
"totalSum": 300
}
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 bonificación, o null cuando no se utilizan bonificaciones.
bonus.availableBalance: number
Saldo de bonificación del usuario disponible en el momento del cálculo.
ejemplo: 0
bonus.bonusApplied: number
Monto de bonificación realmente aplicado a este pedido.
ejemplo: 0
bonus.maxBonusDiscount: number
Monto máximo de bonificación permitido para gastar en este pedido.
ejemplo: 0
bonus.minBonusAmount: number | null
Saldo mínimo de bonificación requerido para usar bonificaciones, o null si no hay umbral.
ejemplo: null
bonus.minOrderAmountForBonus: number | null
Monto mínimo del pedido requerido para aplicar bonificaciones, o null si no hay umbral.
ejemplo: null
discountConfig.coupon: unknown | null
Cupón resuelto, o null cuando 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.
settings.allowGiftStacking: boolean
Si se pueden combinar múltiples descuentos de regalo.
ejemplo: false
settings.allowStacking: boolean
Si se pueden combinar múltiples descuentos no de regalo.
ejemplo: false
settings.maxDiscountValue: number | null
Límite máximo en el valor total del descuento, o null si no tiene límite.
ejemplo: null
discountConfig.additionalDiscountsMarkers: string[]
Marcadores de descuentos extra solicitados por el cliente (omitidos en las respuestas de previsualización).
discountConfig.bonusApplied: number
Monto de bonificación aplicado al pedido (omitido en las respuestas de previsualización).
ejemplo: 0
discountConfig.excludedGiftProductIds: string[]
IDs de productos excluidos de la selección de regalos (omitidos en las respuestas de previsualización).
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[]
Array de elementos de previsualización del pedido.
orderPreview.id: number
Identificador 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
Si el producto se entrega como un regalo.
ejemplo: false
bonusApplied: number
Bonificación aplicada al pedido.
totalDue: number
Total a pagar después de bonificaciones.