previewOrder
Pré-visualize o cálculo de um pedido sem criá-lo. A autorização é opcional. Sem ela, a prévia não tem dados de bônus: discountConfig.bonus é null, bonusApplied é 0 e qualquer bonusAmount é ignorado. Para um usuário autorizado, a prévia inclui o saldo de bônus dele.
Descrição
Calcula um pedido sem criá-lo: totais dos produtos, descontos e bônus aplicados e o valor a pagar. Resolve para um IOrderPreviewResponse.
O corpo aceita apenas products e, opcionalmente, couponCode, additionalDiscountsMarkers e bonusAmount; não são necessários formulário nem conta de pagamento. products é obrigatório e não pode estar vazio; caso contrário, a API responde com um erro 400.
.previewOrder(
,
);
Esquema de parâmetros
Esquema
body(obrigatório): ICreateOrderPreview
Parâmetros da prévia do pedido.
body.products: IPreviewOrderProduct[]
Produtos a incluir na prévia.
products.productId: number
ID do produto.
exemplo: 1
products.quantity: number
Quantidade do produto.
exemplo: 2
body.couponCode: string
Códigos de cupom a serem aplicados.
body.additionalDiscountsMarkers: string[]
Marcadores de descontos adicionais a aplicar.
body.bonusAmount: number
Valor do bônus a ser aplicado.
langCode: string
Código do idioma. Padrão: o langCode passado para defineOneEntry ("en_US" se nenhum for passado).
exemplo: "en_US"
Exemplos
Exemplo mínimo
const body = { { , } ]};
const response = await Orders.previewOrder(body);
Exemplo de resposta
{
"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 resposta
Esquema: IOrderPreviewResponse
totalSum: number
Valor total do pedido antes dos descontos.
exemplo: 300
totalSumWithDiscount: number
Valor total do pedido após os descontos.
exemplo: 250
discountConfig: IOrderDiscountConfig
Configuração de desconto aplicada ao pedido.
discountConfig.bonus: IOrderDiscountBonus | null
Resultado do cálculo de bônus: null quando os bônus não são usados; omitido quando o pedido não tem contexto de bônus.
discountConfig.coupon: unknown | null
Cupom aplicado, ou null quando nenhum cupom é aplicado.
discountConfig.orderDiscounts: unknown[]
Descontos em nível de pedido que foram correspondidos e aplicados.
discountConfig.productDiscounts: unknown[]
Descontos em nível de produto que foram correspondidos e aplicados.
discountConfig.settings: IOrderDiscountSettings
Configurações de empilhamento e limite usadas durante o cálculo.
discountConfig.additionalDiscountsMarkers: string[]
Marcadores de descontos adicionais solicitados pelo cliente. Omitidos nas respostas de prévia.
discountConfig.bonusApplied: number
Valor de bônus aplicado ao pedido. Omitido nas respostas de prévia.
exemplo: 0
discountConfig.excludedGiftProductIds: string[]
IDs de produtos excluídos da seleção de brindes. Omitidos nas respostas de prévia.
discountConfig.totalDue: number
Valor total devido após descontos e bônus (omitido nas respostas de visualização).
exemplo: 300
discountConfig.totalRaw: number
Valor total antes dos descontos (omitido nas respostas de visualização).
exemplo: 300
discountConfig.totalSumWithDiscount: number
Valor total após descontos, mas antes dos bônus (omitido nas respostas de visualização).
exemplo: 300
currency: string
Moeda do pedido.
exemplo: "USD"
orderPreview: IOrderPreviewItem[]
Prévia dos itens do pedido.
orderPreview.id: number
ID do produto.
exemplo: 2954
orderPreview.price: number
Preço unitário do produto antes dos descontos.
exemplo: 51
orderPreview.quantity: number
Quantidade do produto.
exemplo: 1
orderPreview.discountPrice: number | null
Preço unitário após descontos, ou nulo quando nenhum desconto se aplica.
exemplo: null
orderPreview.isGift: boolean
Se o produto é um brinde.
exemplo: false
bonusApplied: number
Valor de bônus aplicado ao pedido.
totalDue: number
Total devido após bônus.