
Logística no e-commerce: integrando transportadoras
Frete é o maior motivo de abandono de carrinho no Brasil. Não é o preço do produto, não é a falta de PIX, não é o site lento — é o momento em que o cliente chega ao checkout, vê o valor do frete e fecha a janela. Pesquisas do setor de e-commerce brasileiro mostram que frete percebido como caro é responsável por 40 a 60% dos abandonos em categorias de ticket médio.
A logística eficiente no e-commerce tem três pilares: cotação precisa na hora certa, geração automática de etiqueta sem retrabalho manual e rastreamento transparente para o cliente. Cada um desses pilares tem uma camada técnica específica que precisa funcionar de forma integrada.
Calculadora de Frete: API dos Correios na Prática
Os Correios são a transportadora padrão para a maioria dos e-commerces brasileiros, especialmente para regiões fora dos grandes centros. A API dos Correios passou por uma reformulação em 2023, substituindo o antigo webservice SOAP pelo novo sistema REST via API Gateway dos Correios.
A integração envolve autenticação por contrato (para quem tem contrato corporativo com preços negociados) ou pela API pública (preços de balcão). Para lojas em crescimento, negociar um contrato com os Correios ou usar um agregador de fretes é quase sempre mais vantajoso que a API pública.
interface CotacaoParams {
cepOrigem: string; // Deve ter contrato no CEP de origem
cepDestino: string;
peso: number; // Em gramas
comprimento: number; // Em cm
altura: number; // Em cm
largura: number; // Em cm
valorDeclarado?: number;
avisoRecebimento?: boolean;
}
async function cotarCorreios(params: CotacaoParams): Promise<Cotacao[]> {
const servicos = ["03298", "03220", "03158"]; // SEDEX, PAC, SEDEX 10
const resultados = await Promise.allSettled(
servicos.map((codigoServico) =>
fetch("https://api.correios.com.br/preco/v1/nacional/contrato", {
method: "POST",
headers: {
Authorization: `Bearer ${await getToken()}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
...params,
codigoServico,
nuContrato: process.env.CORREIOS_CONTRATO,
}),
}).then((r) => r.json())
)
);
return resultados
.filter((r) => r.status === "fulfilled")
.map((r) => ({
transportadora: "Correios",
servico: r.value.descricao,
prazo: r.value.prazoEntrega,
valor: parseFloat(r.value.pcFinal),
}));
}
Pontos de atenção na integração com Correios: a API tem instabilidade histórica — implemente retry com backoff exponencial e cache de cotações (cotações com os mesmos parâmetros tendem a ser estáveis por horas). CEPs não atendidos retornam erro específico que precisa ser tratado graciosamente — não mostre "Erro interno" ao cliente quando o CEP simplesmente não tem cobertura.
Melhor Envio: Multi-carrier com Uma API Só
O Melhor Envio é um hub logístico que agrega Correios, Jadlog, Total Express, JadLog, Latam Cargo e outras transportadoras em uma única API. Para e-commerces que querem comparar fretes de múltiplas transportadoras sem integrar cada uma individualmente, é a solução mais prática.
A API do Melhor Envio permite:
- Cotar frete em múltiplas transportadoras simultaneamente
- Gerar etiqueta unificada (o hub compra o frete de quem você escolher)
- Rastrear pedidos de todas as transportadoras num único endpoint
- Gerenciar crédito de frete centralizado
O modelo de negócio é de marketplace de fretes: o Melhor Envio negocia volumes com transportadoras e repassa descontos ao lojista. Em muitos casos, o preço via Melhor Envio é inferior ao contrato direto dos Correios para lojas com volume médio.
| Transportadora | Pontos fortes | Limitações |
|---|---|---|
| Correios (PAC/SEDEX) | Cobertura nacional total | Prazo variável; instabilidade de API |
| Jadlog | Boa cobertura em capitais; preço competitivo | Cobertura interior limitada |
| Total Express | Rápido em São Paulo e Sudeste | Cobertura regional |
| Azul Cargo | Velocidade; boa cobertura por rotas aéreas | Custo mais alto |
| Latam Cargo | Agilidade para capitais com aeroporto | Limitado a localidades com voo |
A decisão de usar hub (Melhor Envio, Frenet, Total Frete) versus APIs diretas depende do volume e da necessidade de customização. Hubs são mais simples de integrar e manter; APIs diretas dão mais controle sobre SLAs, disputas e integrações específicas.
Geração de Etiqueta Automatizada
Geração manual de etiqueta é inviável acima de 30-40 pedidos por dia. O processo automatizado funciona assim: ao confirmar o pagamento, o sistema gera automaticamente a etiqueta da transportadora escolhida (via regra de roteamento — peso, CEP destino, prazo prometido, custo) e disponibiliza o PDF para impressão na área de separação.
async function gerarEtiqueta(pedido: Pedido): Promise<Etiqueta> {
// 1. Selecionar transportadora por regra de negócio
const transportadora = selecionarTransportadora({
cepDestino: pedido.endereco.cep,
peso: pedido.pesoBruto,
prazoComprometido: pedido.prazoEntregaPromessa,
valorFrete: pedido.valorFreteCobrado,
});
// 2. Criar shipment no hub/API da transportadora
const shipment = await melhorEnvio.criarEnvio({
from: {
name: "Minha Loja LTDA",
postal_code: "01310100",
address: "Av. Paulista, 1000",
city: "São Paulo",
state_abbr: "SP",
},
to: {
name: pedido.cliente.nome,
postal_code: pedido.endereco.cep,
address: pedido.endereco.logradouro,
number: pedido.endereco.numero,
city: pedido.endereco.cidade,
state_abbr: pedido.endereco.uf,
},
products: pedido.itens.map((item) => ({
name: item.nome,
quantity: item.quantidade,
unitary_value: item.valorUnitario,
weight: item.peso,
})),
service: transportadora.codigoServico,
options: { insurance_value: pedido.valorTotal },
});
// 3. Comprar o envio e obter etiqueta
await melhorEnvio.comprarEnvio(shipment.id);
const etiqueta = await melhorEnvio.gerarEtiqueta(shipment.id);
await db.pedidos.atualizarRastreio(pedido.id, {
transportadora: transportadora.nome,
codigoRastreio: shipment.tracking,
etiquetaPdf: etiqueta.url,
});
return etiqueta;
}
O roteamento inteligente de transportadoras é um diferencial operacional: automatizar a escolha da transportadora por custo mínimo, prazo máximo prometido e cobertura disponível reduz custo logístico sem degradar a experiência.
Rastreamento Unificado e Notificação ao Cliente
O rastreamento é a etapa mais visível da logística para o cliente — e também a mais negligenciada tecnicamente. O cliente acompanha o status do pedido com mais ansiedade do que qualquer outra etapa. Uma experiência de rastreamento pobre (link que vai para o site da transportadora sem contexto, status em jargão técnico, nenhuma notificação proativa) é uma oportunidade perdida de fidelização.
Rastreamento unificado centraliza os eventos de todas as transportadoras em um modelo de dados consistente. Em vez de exibir "OEC DISTRIBUIÇÃO" (jargão dos Correios para tentativa de entrega), você exibe "Saiu para entrega hoje — previsão até 18h". A transformação dos eventos brutos em linguagem humana é um diferencial de UX substancial.
Notificação proativa por WhatsApp ou e-mail nos momentos críticos (pedido enviado, saiu para entrega, entregue, tentativa falhou) reduz o volume de tickets de suporte "Onde está meu pedido?" — que respondem por 40-60% do atendimento de e-commerces sem rastreamento proativo.
Conclusão com CTA
Logística eficiente é construída em camadas: cotação precisa que não surpreende o cliente no checkout, geração automática de etiqueta que elimina o gargalo operacional, rastreamento unificado que transforma jargão de transportadora em comunicação clara, e notificação proativa que reduz ansiedade e tickets de suporte.
Cada camada tem suas complexidades técnicas — APIs instáveis, modelos de dados divergentes entre transportadoras, regras de roteamento que mudam com o crescimento do negócio. Na SystemForge, desenvolvemos módulos de logística integrados ao e-commerce que cobrem todo o fluxo, desde a cotação no checkout até a entrega confirmada. Fale com nossa equipe para entender como podemos melhorar a operação logística da sua loja.
Quer criar seu E-commerce?
Desenvolvemos lojas virtuais completas, do catálogo ao checkout.
Saiba mais →Precisa de ajuda?


