Logo

Simulation API

POST /v1/orders-api/vtex/cart/simulation/

Simula um carrinho VTEX e executa o motor de roteamento de pedidos. Retorna a resposta original da simulação VTEX junto com as opções de frete geradas pelo router, mantendo ambos os resultados separados.

Headers

HeaderTipoObrigatórioDescrição
x-trinio-merchant-idstringSimMerchant ID (ULID)

Request Body

{
  "cartSimulation": {
    "items": [
      { "id": "1234", "quantity": "1", "seller": "1" },
      { "id": "5678", "quantity": "2", "seller": "1" }
    ],
    "postalCode": "22071060",
    "country": "BRA"
  },
  "leanShipping": false
}
CampoTipoObrigatórioDescrição
cartSimulation.itemsarraySimProdutos a simular
cartSimulation.items[].idstringSimSKU ID
cartSimulation.items[].quantitystringSimQuantidade
cartSimulation.items[].sellerstringSimSeller ID
cartSimulation.postalCodestringSimCEP de entrega
cartSimulation.countrystringSimCódigo do país (ex: BRA)
leanShippingboolNãoQuando true, pula a geração de opções de entrega single-package no router. Default: false

Response

{
  "cartSimulation": {
    "items": ["..."],
    "postalCode": "22071060",
    "country": "BRA",
    "logisticsInfo": ["..."],
    "totals": ["..."],
    "pickupPoints": [],
    "messages": []
  },
  "shippingMethods": [
    {
      "index": 0,
      "label": "Normal",
      "shippingType": "DELIVERY",
      "totalPrice": 2500,
      "deliveryTime": "5bd",
      "estimatedDeliveryDate": "2026-02-27T00:00:00+00:00",
      "selected": false,
      "hasMultiplePackages": false,
      "packages": [
        {
          "itemIds": ["1234", "5678"],
          "label": "Normal",
          "value": 2500,
          "deliveryTime": "5bd",
          "estimatedDeliveryDate": "2026-02-27T00:00:00+00:00",
          "sla": {
            "id": "Normal",
            "name": "Normal",
            "deliveryChannel": "delivery",
            "price": 2500,
            "shippingEstimate": "5bd",
            "shippingEstimateDate": "2026-02-27T00:00:00+00:00"
          }
        }
      ]
    }
  ]
}

Campos da Response

cartSimulation

Resposta original da simulação VTEX, sem modificações. Contém toda a informação logística retornada pela API /api/checkout/pub/orderForms/simulation da VTEX.

shippingMethods

Opções de frete geradas pelo motor de roteamento. Cada opção representa uma estratégia completa de fulfillment.

CampoTipoDescrição
indexintÍndice da opção de frete
labelstringLabel de exibição para o cliente
shippingTypestringDELIVERY, PICKUP ou SCHEDULED
totalPriceintCusto total do frete em centavos (ex: 2500 = R$25,00)
deliveryTimestringTempo estimado de entrega (5bd = 5 dias úteis, 1d = 1 dia)
estimatedDeliveryDatestringData estimada de entrega (ISO 8601)
selectedboolSe esta opção está selecionada
hasMultiplePackagesboolSe o pedido é dividido em múltiplos pacotes
packagesarrayLista de pacotes nesta opção de frete

packages[]

CampoTipoDescrição
itemIdsarraySKU IDs incluídos neste pacote
labelstringLabel do pacote
valueintCusto do frete deste pacote em centavos
deliveryTimestringEstimativa de entrega deste pacote
estimatedDeliveryDatestringData estimada de entrega deste pacote
slaobjectObjeto SLA original da VTEX com todos os campos (id, name, deliveryChannel, price, etc.)

Tipos de Frete (shippingType)

ValorDescrição
DELIVERYEntrega padrão no endereço
PICKUPRetirada em ponto de coleta
SCHEDULEDEntrega agendada (com janelas de entrega disponíveis)

Notas

  • cartSimulation nunca é modificada pelo motor de roteamento. É retornada exatamente como recebida da VTEX.
  • shippingMethods pode ser vazio ([]) se o router não conseguir gerar opções.
  • Regras de roteamento são aplicadas por merchant. Se um merchant possui regras customizadas (ex: shipping cap), elas são aplicadas apenas aos shippingMethods.

Exemplo: cURL

curl -s -X POST https://prod.trinio.ai/v1/orders-api/vtex/cart/simulation/ \
  -H "Content-Type: application/json" \
  -H "x-trinio-merchant-id: <YOUR_MERCHANT_ID>" \
  -d '{
    "cartSimulation": {
      "items": [
        {"id": "1234", "quantity": "1", "seller": "1"},
        {"id": "5678", "quantity": "2", "seller": "1"}
      ],
      "postalCode": "22071060",
      "country": "BRA"
    },
    "leanShipping": false
  }' | jq .

Erros

StatusDescrição
400Body inválido ou campos obrigatórios ausentes
500Falha na simulação VTEX ou erro no motor de roteamento