Correios Offline - imagem: Dana Hoff/Corbis

Um dos grandes problemas da integração do Magento com os Correios sempre foi a estabilidade dos servidores da grande instituição de entregas brasileira. Sim, há uma ironia na frase, pois parece que eles sempre arrumam um jeito de complicar a vida dos lojistas. Por incrível que pareça, se no último ano diminuíram bastante as queixas em relação ao servidor fora do ar, isso foi inversamente proporcional ao aumento na reclamação de pacotes que somem, produtos que atrasam, desinformação e assim por diante.

Não sou desenvolvedor por profissão mas recentemente, até mesmo por conta do livro Módulos para Magento, me vi obrigado a me debruçar sobre o Magento e aprender coisas que relutava desde 2008, quando conheci a plataforma. Um dos primeiros módulos que construí foi justamente um de Correios Offline para Magento.

A ideia é simples: a base do módulo foi feita em cima daquela desenvolvida pelo Pedro Teixeira, disponível gratuitamente desde 2008. Esse módulo segue cuidando da parte que eu chamo de online, isto é, o cliente está na loja virtual, digita o CEP e o Magento faz a cotação consultando diretamente o webservice dos Correios.

Com base nisso, montei um esquema para armazenar as cotações. O raciocínio é bem simples:

  • o CEP de origem é fixo, aquele da empresa, informada em Sistema > Configurações
  • o Brasil é dividido em 124 zonas, com suas faixas de CEP; dentro de cada faixa, o valor do envio é igual, independente do CEP
  • o Correio trabalha com preços a cada quilo e portanto, temos 30 pesos possíveis, de 1 a 30 kg
  • o prazo de envio é sempre estimado, pois varia conforme as condições reais, como dificuldades de acesso e violência na região
  • o cliente terá uma gama de serviços disponíveis, como PAC e Sedex, além de Sedex 10, Sedex Hoje, etc, se tiver contrato

Então, pra que se possa construir uma tabela de fretes e armazená-la no banco de dados da própria loja, basta fazer uma consulta por zona e peso, obtendo os valores para os serviços disponíveis. Por exemplo, a primeira consulta é para um CEP da zona 1, SP – Capital, com peso 1 kg. Ao buscar um CEP que esteja dentro dessa zona, ele retornará os valores para PAC e Sedex, caso a empresa não tenha contrato, para pacotes enviados a partir do CEP de origem.

Esses valores são armazenados em linhas no banco de dados, uma para cada serviço x faixa de CEP x peso. O mesmo processo é repetido por 124 x 30 vezes e continua atual enquanto os Correios não reajustarem seus valores – quando basta pedir para atualizar a tabela, repetindo o processo completo.

Se o lojista escolher o método offline, quando o cliente digitar o CEP, ao invés de buscar no webservice dos Correios, o método buscará os métodos e valores disponíveis no banco de dados local, retornando o valor para cada método armazenado disponível. Há ainda a possibilidade de um método híbrido: se em 10 segundos o webservice dos Correios não responder, ele automaticamente exibe os valores offline.

Como vocês vêem, não é difícil de se construir e é um bom exercício para quem quer praticar a construção de módulos. Se no entanto, você não é desenvolvedor e ficou interessado no módulo de Correios Offline para sua loja virtual, a Diamix está vendendo já com a instalação por R$ 380,00. Só conversar com eles. Ah, esse módulo está disponível apenas para Magento 1.


André Gugliotti

André Gugliotti é uma das referências em Magento no Brasil, autor dos livros "Lojas Virtuais com Magento", "Temas em Magento" e "Módulos para Magento". Nesse blog, ele fala sobre e-commerce e marketing digital, ensinando como montar e gerenciar sua loja virtual.

Deixe uma resposta