Módulo de Frete para Magento com Tracking (versão 4.0)

Nessa nova versão reestruturei todos os arquivos, corrigi problemas identificados nas versões anteriores e também implementei novas funcionalidades.

Como o módulo foi totalmente reestruturado ele não sobrescreverá a versão antiga do mesmo, ou seja, ele pode ser instalado em paralelo e se você quiser apenas a versão mais nova instalada, terá de desinstalar a versão antiga.

As principais correções foram:

  • Nova forma de passar o volume para os Correios;
  • Problema do getBody() tratado;
  • Problema com o ereg() corrigido;
  • Problema de “The locale ‘root’ is no known locale” corrigido;
  • Correção do tracking;

E as principais novas funcionalidades foram:

  • Sedex a Cobrar implementado;
  • Instalação automática dos atributos de volume;
  • Log de erros;
  • Configuração do formato de peso;
  • Novas mensagens de erro;

Com isso o módulo ficou muito mais maduro e pronto para ser usado em qualquer loja virtual que utilize Magento.

O módulo encontra-se disponível para download no Magento Connect pela URL:

http://www.magentocommerce.com/magento-connect/pedroteixeira-correios.html

Se você quiser baixar os arquivos e instalar manualmente, clique aqui.

Algumas considerações importantes

Como expliquei, o novo módulo está em uma estrutura de arquivos totalmente diferente da versão antiga, ou seja, instalando a versão 4.0 a versão antiga continuará rodando em paralelo.

Para excluir a versão antiga você deve apagar o diretório /app/code/community/Correio e o arquivo /app/etc/modules/Correio_Shipping.xml.

Na correção dos problemas de tracking que foram identificados na versão anterior, encontrei dois erros do core do Magento que comprometem um bom funcionamento da funcionalidade, não se trata de uma correção para o bom funcionamento do meu módulo, e sim uma correção de um bug do Magento.

Se você quer utilizar o tracking será necessário realizar as seguintes alterações:

No arquivo /app/design/frontend/base/default/template/sales/order/view.phtml você deve substituir a linha:

<span class="separator">|</span> <a href="#" id="linkId" onclick="popWin('<?php echo $this->helper('shipping')->getTrackingPopUpUrlByOrderId($_order->getId()) ?>','trackorder','width=800,height=600,resizable=yes,scrollbars=yes')" title="<?php echo $this->__('Track your order') ?>"><?php echo $this->__('Track your order') ?></a>

Por:

<span class="separator">|</span> <a href="#" id="linkId" onclick="popWin('<?php echo $this->helper('shipping')->getTrackingPopUpUrlByOrderId($_order) ?>','trackorder','width=800,height=600,resizable=yes,scrollbars=yes')" title="<?php echo $this->__('Track your order') ?>"><?php echo $this->__('Track your order') ?></a>

E no arquivo /app/design/frontend/base/default/template/shipping/tracking/popup.phtml você deve substituir a linha:

<?php $_detailTime = (isset($_detail['deliverytime']) ? $this->formatDeliveryTime($_detail['deliverytime'], $_detailDate) : '') ?>

Por:

<?php $_detailTime = (isset($_detail['deliverytime']) ? $this->formatDeliveryTime($_detail['deliverytime'], $_detail['deliverydate']) : '') ?>

Com isso o tracking funcionará sem problemas e todos os seus clientes poderão rastrear seus pedidos em tempo real direto com os Correios.

Toda vez que os Correios voltam um erro, esse erro é acompanhado de um código, segue lista de códigos de erros dos Correios:

  • 0 Processamento com sucesso
  • -1 Código de serviço inválido
  • -2 CEP de origem inválido
  • -3 CEP de destino inválido
  • -4 Peso excedido
  • -5 O Valor Declarado não deve exceder R$ 10.000,00
  • -6 Serviço indisponível para o trecho informado
  • -7 O Valor Declarado é obrigatório para este serviço
  • -8 Este serviço não aceita Mão Própria
  • -9 Este serviço não aceita Aviso de Recebimento
  • -10 Precificação indisponível para o trecho informado
  • -11 Para definição do preço deverão ser informados, também, o comprimento, a largura e altura do objeto em centímetros (cm).
  • -12 Comprimento inválido.
  • -13 Largura inválida.
  • -14 Altura inválida.
  • -15 O comprimento não pode ser maior que 60 cm.
  • -16 A largura não pode ser maior que 60 cm.
  • -17 A altura não pode ser maior que 60 cm.
  • -18 A altura não pode ser inferior a 2 cm.
  • -19 A altura não pode ser maior que o comprimento.
  • -20 A largura não pode ser inferior a 5 cm.
  • -21 A largura não pode ser menor que 11cm, quando o comprimento for menor que 25cm.
  • -22 O comprimento não pode ser inferior a 16 cm.
  • -23 A soma resultante do comprimento + largura + altura não deve superar a 150 cm.
  • -24 Comprimento inválido.
  • -25 Diâmetro inválido
  • -26 Informe o comprimento.
  • -27 Informe o diâmetro.
  • -28 O comprimento não pode ser maior que 90 cm.
  • -29 O diâmetro não pode ser maior que 90 cm.
  • -30 O comprimento não pode ser inferior a 18 cm.
  • -31 O diâmetro não pode ser inferior a 5 cm.
  • -32 A soma resultante do comprimento + o dobro do diâmetro não deve superar a 104 cm.
  • -33 Sistema temporariamente fora do ar. Favor tentar mais tarde.
  • -34 Código Administrativo ou Senha inválidos.
  • -35 Senha incorreta.
  • -36 Cliente não possui contrato vigente com os Correios.
  • -37 Cliente não possui serviço ativo em seu contrato.
  • -38 Serviço indisponível para este código administrativo.
  • -888 Erro ao calcular a tarifa
  • 7 Serviço indisponível, tente mais tarde
  • 99 Outros erros diversos do .Net

Como sempre disponibilizo meu blog para dúvidas, sugestões e críticas.

Boas vendas para todos!

comments powered by Disqus