Calcular frete no checkout
Consulte preços e prazos a partir do CEP do cliente.
Faça a chamada no navegador
A cotação aceita chave pública e oferece CORS. Substitua o marcador pela chave da loja e obtenha os itens do carrinho real.
export async function cotarFrete(destinationCep, items) {
const response = await fetch('https://api.meuecommerce.com.br/v1/rates', {
method: 'POST',
headers: {
Authorization: 'Bearer pk_SUA_CHAVE',
'Content-Type': 'application/json',
},
body: JSON.stringify({ destinationCep, items }),
});
const data = await response.json();
if (!response.ok) {
throw new Error(data.error?.message ?? 'Não foi possível cotar o frete.');
}
return data;
}
const quote = await cotarFrete('20040002', [{
name: 'Camiseta de algodão', quantity: 1,
unitPriceBRL: 89.90, weightKg: 0.3,
}]);
if (!quote.rates.length) {
// Mostre uma mensagem de indisponibilidade. Examine quote.reason.
} else {
// Mostre label, price e deliveryDays para cada serviço.
}Estados da interface
Mostre o carregamento enquanto a consulta estiver em andamento. Desabilite envios repetidos, valide o CEP e ignore uma resposta antiga se o cliente já alterou o endereço ou o carrinho.
Recalcule ao mudar quantidade, itens ou destino. Uma lista vazia não equivale a frete grátis. Para formatar preços, use Intl.NumberFormat('pt-BR', { style: 'currency', currency: 'BRL' }).
Finalização do pedido
A cotação apresenta opções; ela não cria um pedido nem adiciona automaticamente uma taxa à sua plataforma. Integre a opção selecionada ao mecanismo de checkout da aplicação e valide preço e serviço no backend antes de concluir a compra. Não confie em um total enviado pelo navegador.