Solução para cálculo de frete com múltiplos volumes dos Correios

Entra dia e sai dia e a cada pesquisa no Google, mais e mais desenvolvedores procuram soluções em como conseguir calcular o frete dos Correios para uma loja virtual quando temos mais de um produto no carrinho de compras.

Aqui na dothCom já tentamos de tudo quanto é jeito.

Somamos todas as dimensões antes de enviar, calculamos o frete de cada produto e depois somamos, enviamos apenas os dados do maior produto do carrinho, enfim… olhamos quase tudo o que já foi postado na internet e testamos por aqui.

Várias pessoas falam que é impossível calcular o frete para múltiplos volumes e que o Correios não dá suporte para isto.

Estes dias a Agroline Produtos Veterinários, um cliente nosso, abriu um chamado pra informar que a loja não estava vendendo muito pouco e que o valor do frete estava ficando muito mais alto que a simulação que ele fazia nos Corrreios. O site calculava um PAC de R$ 114,00 e o site dos Correios informava um PAC de R$ 17,40.

Pouca diferença né!!

Tivemos que parar tudo que estávamos fazendo aqui e começamos e pensar em como conseguir solucionar este problema.

Peguei uma folha de papel em branco, lápis e borrada e comecei a rabiscar fórmulas de possíveis soluções (me lembrou das aulas de matemática do ginásio).

Depois de quase uma hora encontrei uma solução que parecia ser infalível e comecei a fazer testes com alguns carrinhos montados e o cálculo que tinha elaborado.

Em resumo, resolvi baseado em 3 etapas:

  1. Calcula o cm³ de cada produto do carrinho.
  2. Soma todos os volumes.
  3. Calcula a raiz cúbica do somatório dos volumes

Obs.: Considerar arredondamentos dos cálculos da porcentagem para cima e considerar mínimo e máximo dos correios.

Bom, pra quem precisa de maiores explicações para o que foi feito, vou explicar abaixo cada etapa o que nós fizemos.

1ª Etapa – Calcula o cm³ de cada produto do carrinho

Como para o Correios no final de tudo ele vai calcular um volume em cm³ do que o carrinho vai passar pra ele, resolvi calcular o volume de CADA produto que estava no carrinho.

Se para um único produto tiver mais que um em quantidade, precisa multiplicar o volume dele por esta quantidade do mesmo produto.

2ª Etapa – Soma todos os volumes

Depois que você conseguiu calcular o volume de todos os produtos que estavam no carrinho, basta somá-los que você vai encontrar o volume total que o seu carrinho de compras ocupa para ser despachado.

3ª Etapa – Calcula raiz cúbica dos somatórios dos volumes

Se você analisar o que o Correios nos pede para calcular o volume final, são necessários Comprimento, Largura e Altura (3 valores).

Quando a gente envia estes dados, ele multiplica os 3 e consegue o volume para, junto do peso total, calcular o frete.

O que eu fiz aqui foi aplicar a raiz cubica em cima deste valor para obter um resultado que se eu multiplica-se ele três vezes, iria encontrar o volume total do carrinho.

Vou contar que tem script pronto na internet para fazer o cálculo da raiz que você precisar.

Outro detalhe da documentação dos correios é que cada dimensão possui valores mínimos e máximos.

Para envios normais (PAC, SEDEX E E-SEDEX), as dimensões não podem passar de 105 centímetros e os mínimos são C=16  L=11  A=2.

Assim, basta você enviar para os correios o resultado da raíz cúbica no comprimento, largura e volume.

Observações:

– Sua lógica precisa considerar sempre os valores máximos e mínimos que o Correios estabelece senão você vai ter problemas.

– Se o seu cliente (loja online) coloca os produtos em uma caixa que sobra espaço, provavelmente ele vai pagar mais caro junto aos Correios pois vai pagar pelo volume vazio que ele está postando.

– Existem ainda várias implicações que podemos pensar que não vou abordar neste post como por exemplo se o carrinho do usuário tiver muitos produtos e passar das medidas máximas. Em tese dá pra enviar. Basta separar em caixas menores.

Bom… é isso.

Já faz uma semana que o script está rolando em nossa Plataforma de E-commerce DOTHSHOP que a Agroline utiliza e até então tudo está funcionando perfeitamente.

O loja passou a vender mais do que antes, pois o valor do cálculo do frete junto ao Correios acabou ficando muito mais atrativo para os clientes do site.

Se alguém tiver alguma dúvida ou sugerir melhorias na lógica, faz um comentário mais abaixo.

Quem puder, compartilhe nas redes abaixo.

Fui…





Sobre o Autor
Gustavo Mattos Engenheiro da Computação e CEO da empresa dothCom.
Posts Relacionados
Comentários