Frete e entrega
Visão geral das rotas da vitrine para cotar frete, prometer entrega, retirar em loja e rastrear pacotes.
Do carrinho à porta do cliente, a loja precisa responder perguntas diferentes: "quanto custa o frete?", "quando chega?", "posso retirar na loja?", "onde está meu pacote?". Esta seção documenta as rotas públicas da vitrine que respondem a essas perguntas. Elas servem à página do produto, ao carrinho e ao checkout, e também a integrações que montam o próprio checkout.
Como funciona
- Na página do produto
Mostre o prazo com Data de entrega e, para vários produtos de uma listagem, a promessa em lote. A estimativa rápida de frete por CEP está em Estimativa de frete.
- No carrinho
Barra de frete grátis e pedido mínimo com Pedido mínimo e frete grátis. A cotação completa do carrinho está em Cotar frete.
- No checkout
O cliente escolhe um método da cotação, ou retirar em loja, ou ainda agendar uma janela de entrega.
- Depois da compra
O cliente acompanha o pacote por Rastreio público, e a loja mostra o link da transportadora com Transportadoras.
Conceitos-chave
Método de envio
Um método de envio é uma forma de entregar ("Entrega Padrão", "Motoboy", "Correios SEDEX"). Tem nome, prazo, regra de preço e pode ser da loja inteira ou de um seller só. O preço pode ser manual (tabela por área e faixa) ou em tempo real (consultado à transportadora). Veja Métodos de envio.
Área de tarifa e CEP
A área de tarifa liga um conjunto de destinos (faixas de CEP, estados, cidades, bairros) ao preço e prazo de um método. É por ela que o mesmo método custa diferente em São Paulo e no Amazonas, ou nem é oferecido.
Cotação por seller
Num marketplace, cada seller entrega os próprios itens. A cotação é feita por seller e depois consolidada: em Cotar frete o carrinho recebe só os métodos que todos os sellers oferecem, com o custo somado; a variante por seller devolve cada grupo separado.
Retirada em loja (BOPIS)
Buy online, pick up in store: o cliente compra pela internet e retira num ponto da loja. Veja Pontos de retirada.
Endpoints
| Método | Rota | O que faz | Auth | Página |
|---|---|---|---|---|
| GET | /api/v1/storefront/shipping/methods | Lista os métodos ativos | Pública | Métodos de envio |
| POST | /api/v1/storefront/shipping/calculate | Cotação consolidada do carrinho | Pública | Cotar frete |
| POST | /api/v1/storefront/shipping/calculate-by-vendor | Cotação separada por seller | Pública | Cotar frete |
| POST | /api/v1/storefront/shipping/estimate | Estimativa rápida por CEP | Pública | Estimativa de frete |
| POST | /api/v1/storefront/shipping/effective-min-order | Pedido mínimo efetivo | Pública | Pedido mínimo e frete grátis |
| GET | /api/v1/storefront/shipping/free-shipping-status | Progresso para o frete grátis | Pública | Pedido mínimo e frete grátis |
| GET | /api/v1/storefront/delivery-estimate | Data estimada de um produto | Pública + módulo | Data de entrega |
| POST | /api/v1/storefront/delivery-promise | Promessa de entrega em lote | Pública + módulo | Data de entrega |
| GET | /api/v1/storefront/pickup-points | Pontos de retirada | Pública | Pontos de retirada |
| GET | /api/v1/storefront/carriers | Transportadoras ativas | Pública | Transportadoras |
| GET | /api/v1/storefront/carriers/{code}/tracking-url | Link de rastreio da transportadora | Pública | Transportadoras |
| GET | /api/v1/storefront/tracking/{token} | Rastreio público | Pública | Rastreio público |
| GET | /api/v1/storefront/delivery/slots | Janelas de entrega livres | Cliente | Janelas de entrega |
| POST | /api/v1/storefront/delivery/book | Reserva uma janela | Cliente | Janelas de entrega |
| GET | /api/v1/storefront/delivery/schedule/{orderID} | Janela reservada de um pedido | Cliente | Janelas de entrega |
Erros comuns
- Mandar peso e medidas esperando que a cotação os use. Em
calculateecalculate-by-vendoreles são ignorados; vale o cadastro do produto. Sóestimateaceita os valores enviados. - CEP inválido.
00000000,99999999, letras ou menos de 8 dígitos respondem400 invalid_postal_code. - Produto sem UUID válido.
product_idque não é UUID ou que não existe no catálogo responde500, não400. - Esperar o mesmo método para todos os sellers. No carrinho com dois sellers, um método que só um deles oferece não aparece na cotação consolidada.
- Mostrar a data de entrega sem checar o módulo.
delivery-estimateedelivery-promiseexigem o módulodelivery-window. - Tratar rastreio não encontrado como erro HTTP. A rota pública responde
200comfound: false.