Meios de Envio - imagem: Martin Barraud/OJO ImagesPara fazer o download da planilha de modelo para o Matrix Rate, vá até o final do post

Em 2012, eu compartilhei aqui no blog a planilha modelo que eu utilizo para cadastro das faixas de CEP, a ser importada no Matrix Rates, módulo para Magento da Web Shop Apps. Esse módulo permite que se importe no Magento uma planilha com diferentes faixas de peso, CEP e forma de entrega e é bem utilizado para quem tem transportadoras entre as opções disponíveis para entrega na loja virtual.

Depois da experiência do primeiro post, resolvi dar uma melhorada visual na planilha e também nas instruções, para facilitar a vida dos profissionais, e agora reedito o post inicial, com um melhor passo-a-passo e as principais dúvidas já solucionadas.

O primeiro passo é solicitar um arquivo com as regiões, pesos e valores praticados por sua transportadora, a partir do seu CEP. Esse arquivo normalmente é uma tabela e contém todos os estados em que ela atua, com os valores por peso para capital e interior.

Preparando a planilha de formas de entrega

Com esse arquivo, você pode partir para a planilha. Como você já sabe, no Brasil, os CEPs são organizados por zonas (124 zonas), com faixas de CEPs em sua maioria coincidentes com os estados – divididos entre Capital e Interior. Nessa nova planilha, já foi eliminada a zona 76, em Roraima, mantendo apenas a zona 75, com todos os CEPs para aquele estado. Você deve preencher cada uma das linhas desejadas com base no arquivo que sua transportadora lhe forneceu, conforme o modelo abaixo:

País Estado Cidade Zip/Postal Code From Zip/Postal Code To Weight From Weight To Preço Entrega Delivery Type
* * * 01000000 10999999 0 10 5 São Paulo – capital
* * * 11000000 19999999 0 10 7 São Paulo – interior
* * * 01000000 10999999 10 20 8 São Paulo – capital
* * * 11000000 19999999 10 20 12 São Paulo – interior
* * * 01000000 10999999 20 30 10 São Paulo – capital
* * * 11000000 19999999 20 30 15 São Paulo – interior
* * * 01000000 10999999 30 50 20 São Paulo – capital
* * * 11000000 19999999 30 50 30 São Paulo – interior

Você ainda pode acrescentar diferentes formas de entrega, se quiser complicar um pouco mais, passando para um esquema de faixa de CEP x peso x forma de entrega. Cinco exemplos de formas de entrega para SP – Capital seriam:

  • São Paulo – Capital – Motoboy
  • São Paulo – Capital – Transportadora – Entrega Convencional
  • São Paulo – Capital – Transportadora – Entrega Expressa
  • São Paulo – Capital – Sedex
  • São Paulo – Capital – PAC

Isso significa que você deve ter uma linha para cada faixa de CEP, peso e meio de entrega. No exemplo anterior, o Sedex e o PAC vêm direto do módulo dos correios, mas as demais podem ser inseridas no Matrix Rates. Se optar por três meios de entrega em 5 faixas de peso, entregando em todo o Brasil, você terá 1.860 linhas em sua planilha. Preste bastante atenção ao fazer isso para não trocar linhas por acidente.

Você pode preencher essa planilha no Microsoft Excel, sem problemas. Quando terminar, recomendo que passe a usar o Open Office Calc para as etapas seguintes. O Excel tem um sério problema em lidar com UTF-8 e com arquivos em CSV. Então, abra o arquivo no Open Office e salve como CSV. No processo de conversão, ele pedirá os parâmetros (mantenha vírgula e aspas duplas) e escolha o UTF-8 com formato. Pronto, o arquivo CSV está pronto para ser importado no Magento.

Instalando o Matrix Rate

O WebShopApps Matrix Rate é disponibilizado gratuitamente no Magento Connect e basta pegar a chave disponível lá e proceder com a instalação pelo painel da loja. Lembre-se de testá-lo primeiro em uma instalação própria para isso.

Para importá-lo, vá em Sistema -> Configuração e busque a aba Formas de Entrega (ou Meios de Entrega, conforme sua tradução). Localize a aba do Matrix Rates e preste atenção em dois detalhes:

a) para poder importar o arquivo, é preciso que o nível de configuração esteja marcado como website (na caixa de seleção no alto, à esquerda)

b) não se esqueça de selecionar a opção Sim em Use Numeric Zipcode Ranges. É isso que determina as faixas de CEP ao invés de um CEP pontual.

Seleção de faixas de CEP no Matrix Rates- imagem: André Gugliotti

Ah, um último detalhe importante: no Brasil, os CEPs têm um traço (90560-003) e isso pode resultar em um erro na hora de calcular os fretes. Um erro silencioso na verdade, porque o Matrix Rate não retornará nenhuma informação. A solução pra isso foi compartilhada pelo Luciano Bonfim e é bem simples. Eu preferi deixar a solução aqui ao invés do arquivo, para dar mais flexibilidade:

a) localize o arquivo \app\code\community\Webshopapps\Matrixrate\Model\Mysql4\Carrier\Matrixrate.php

b) dentro do arquivo, busque por volta da linha 40 a chamada:

$postcode = $request->getDestPostcode();

c) logo após essa linha, insira o seguinte:

$postcode = str_replace(‘-‘,”,$postcode);

Atualização da planilha de frete para o módulo Matrix Rate
8 votos, 5.00 média (98% pontuação)
  • Sérgio Thiago Mendonça

    Olá André, muito bom seu artigo, funcionou perfeitamente! Mas tenho algumas dúvidas.

    1 – Existe a possibilidade de trabalhar com Peso e Comprimento ao mesmo tempo???
    2 – Percebi também que esse plugin não desconsidera feriados ou finais de semana como dias para entrega. Então eu vou ter que fazer uma média neste caso?

    O item 1 é o que mais me preocupa, pois meu cliente trabalha com uma gama de produtos relativamente grande, se eu só escolher peso ou só escolher comprimento, em certo momento ele vai sair no prejuizo. Entende? Um abs e obrigado desde já

  • Sérgio Thiago Mendonça

    Alguém saberia informar como que fica para empresas que trabalham com produtos grandes e leves? Pois só pelo peso, o preço do frete vai ficar muito barato, não correspondendo com as transportadoras. O que me intriga é que quase todas as transportadoras brasileiras trabalham com Comprimento, altura e largura, mas não encontrei um modulo magento 2.x que faça esse calculo entre peso x tamanho.

  • Sérgio Thiago Mendonça

    Oi pessoal, eu atualizei o codigo do matrix-rate para aceitar peso x volume. Está funcionando bem. A precisão com transportadoras aumentou bastante. Quem quiser só avisar.

  • sidney

    Sérgio, blz? o modulo só funciona se eu definir para aceitar todos os CEPs com o asterisco, caso contrario o frete não é exibido no front end, fiz a alteração no código do magento para receber o cep tanto com o hifem ou sem ele… saberia dizer oque tenho que fazer? meu magento é o 2.2.5

  • Sérgio Thiago Mendonça

    Cara, ve no log o erro, ou entao da um throw em Carrier/MatrixRate.php no cep para ver se ele está chegando direito. Voce nao esta adicionando cep com caracteres especiais com “-” na tabela nao ne? Essa alteracao voce fez em todas as chamadas de zip? Eu utilizo a versao 2.1.9 e nao tive problema algum com este plugin. Qualquer coisa eu te passo meu codigo corrigido do arquivo que o Andre pediu para alterar.

  • sidney

    se você puder me passar o seu código eu agradeço demais!

  • Sérgio Thiago Mendonça

    Você quer o código exatamente do jeito que o plugin é funcionando com a correção do André, ou quer com o campo de volume também?

  • sidney

    no caso a com o campo volume, tem como desabilitar caso não utilize?

  • Sérgio Thiago Mendonça

    Tem como desabilitar sim. Amanhã eu subo para um repositorio no github publico e te passo o link.

  • sidney

    muito obrigado!

  • sidney

    Sergio, obrigado! consegui resolver aqui, só foi eu preencher o pais com BR e o estado com a sigla que resolver, gostaria de ocultar o pais e o estado no carrinho, você sabe qual arquivo tem o editar e onde ele se encontrar?

  • Sérgio Thiago Mendonça

    De nada. Beleza, qualquer coisa só falar.

  • Miguel

    Senhores, eu editei o arquivo Matrixrate.php acrescentando aquela linha de código. Com ou sem esta edição o cálculo por faixa de CEP funciona na tela que visualiza o carrinho e que simula o valor do frete, pois ali não exibe máscara de frete e se digitar sem hífem o valor é exibido correto obedecendo faixa de CEP. mas se digitar com hífem não vai reconhecer. Se for pra página de checkout onde o frete é exibido com máscara também não é reconhecido o valor definido na faixa de CEP com ou sem o Matrixrate.php editado ou não. Alguém tem uma luz?

  • Miguel

    Eu quero.