Atualização da planilha de frete para o módulo Matrix Rate

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);

Comentários

comentário(s)

65 respostas
  1. Fábio Nakai
    Fábio Nakai says:

    Olá Pessoal, eu tentei fazer a solução do hífen mas não funcionou na versão 1.7 do magento. Eu vi na solução do André que tem uma aspa dupla sem fechar. Eu coloquei mais uma aspas dupla pra fechar o código e funcionou. Agora com ou sem hifem ele calculou corretamente. Ficou assim: $postcode = str_replace(‘-‘,””,$postcode);

    • Hélder
      Hélder says:

      Pode ser $postcode = str_replace(‘-‘,”,$postcode); com aspas simples também que funciona, no meu caso eu fiz outro para remover o ponto também pois tem gente que tem o costume de digitar o CEP com ponto(##.###-###).

      $postcode = str_replace(‘.’,”,$postcode);

    • Marcone Ferreira Ramos
      Marcone Ferreira Ramos says:

      Tive o mesmo problema. Para resolver o problema acima, você deve digitar novamente o código ao invés do copiar e colar. As aspas apresentadas no tutorial são diferentes das aspas digitadas diretamente no editor. Como o Hélder disse, é indiferente o fato de serem aspas duplas ou não.

  2. Ricardo Iguchi
    Ricardo Iguchi says:

    Oi André, os preços que eu tenho dependem do valor do produto (Valor da nota fiscal) combinado com o peso. Você sabe dizer se consigo implementar uma tabela que contenha esses dois parâmetros?

  3. João
    João says:

    Olá. Segui as instruções, mas na tela de configuração do Matrix Rates não há nenhum lugar para importar esse CSV. Como devo proceder?

    • Andre Gugliotti
      Andre Gugliotti says:

      […]

      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)

      […]

  4. marcelo
    marcelo says:

    Andre , estou tentando importar o csv feito no openoffice e aparece a msg
    Ocorreu um erro ao salvar esta configuração: Invalid Matrix Rates File Format ,
    o que devo fazer?

    • Andre Gugliotti
      Andre Gugliotti says:

      Faça como escrito no texto: “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.”

  5. Felipe Vianna
    Felipe Vianna says:

    Andre muito bom o post, poderia me tirar uma dúvida eu instalei no magento que tenho localhost e foi normal mas no que está no ar a versão enterprise e customizado não funciona, existe alguma pasta além das padrões que deve -se copiar os arquivos ?

  6. Aurelio
    Aurelio says:

    André, sempre que tento calcular o frete, ao digitar o cep aparece a mensagem “Não Há Meio de Envio disponível, entre em contato com a loja.”” fiz a instalação do módulo, alterei o código do traço do cep como no tutorial, montei as tabelas, já tentei usar a do exemplo também, não dá nenhum erro ao importar o arquivo, está tudo habilitado nas configurações, (sim) para faixa de cep. O que deve estar acontecendo? Obrigado

  7. Marcos Del Grossi
    Marcos Del Grossi says:

    Olá André, fiz tudo como explicado e funcionou, porém a minha tabela contem varias transportadoras, e também o valor muda dependendo o peso. Portanto o correto é se o produto for 0.350 (350 gramas) ele deve puxar apenas as linhas referente ao CEP indicado e o peso do produto (caso tenha mais produtos no carrinho, somar os pesos e ir na linha referente a aquele intervalo de peso). Porém o meu ele está pegando todas as linhas referentes apenas ao CEP e não está aplicando a condição do Peso Vs Destino.

    Sabe me dizer o que posso estar fazendo de errado?

    • Andre Gugliotti
      Andre Gugliotti says:

      Não sei dizer sem olhar a tabela, mas deve estar marcada a opção Peso Vs Destino no painel. Estou na dúvida se o módulo trabalha com pesos fracionados, tente com pesos inteiros para ver se o erro persiste. E ah, não esqueça de fechar o CSV em UTF-8.

  8. P. Fernandes
    P. Fernandes says:

    André, alguns ceps não são reconhecidos entre as faixas de cep, oque pode ser ? Ex, o cep 047180000 corresponde a rua capitao otávio machado – sp, porém, a mensagem que é exibida é “Desculpe, não houve formas disponíveis para esta pedido no momento.” o estranho é que etá dentro das faixas de cep de SP, sabe o que poderia ser?

  9. Mauro
    Mauro says:

    Ola instalei o modulo fiz as alterações no modulo alterei o arquivo, mas por algum motivo o matrix rate não aparece quando realizo uma busca, parece que é aquele erro silencioso que você diz no arquivo mas já fiz essa alteração.

    Oque devo fazer ?

  10. Luciano
    Luciano says:

    Bom dia, ao importar a planilha, o matrix rate não está salvando ela. Testei importando e exportando.. ele me tras uma planilha padrão quando eu exporto para ver se ele salvou a minha planilha.
    Pode me ajudar?

  11. bruno manjagalli
    bruno manjagalli says:

    Boa tarde, Muito obrigado pela ajuda, porém estou enfrentando um problema.
    Gostaria de entregar apenas na RM de campinas. Mas quando coloco um cep diferente ele não retorna nenhum erro para o cliente. É possivel aparecer algum alerta?
    Obrigado

  12. Valderes Zimmer
    Valderes Zimmer says:

    Olá, André.
    Fiz exatamente como você explicou, e está dando certo, exceto por um detalhe, só dá certo se eu não usar o famigerado traço no CEP, eu fiz exatamente como você comentou: editei o arquivo Matrixrate.php ficou assim: $postcode = $request->getDestPostcode();
    $postcode = str_replace(‘-‘,”,$postcode);

    Na minha planilha coloquei todos os CEP’s sem traço (pra desencargo de consciência testei com traço tb e não deu certo)

  13. Lilian
    Lilian says:

    Olá, André já tenho instalado o modulo Matrixrates há vários meses trabalhando com ele normalmente, ocorre que fiz atualização de valores e aumentei várias linhas na planilha, salvei em CSV , troquei o escopo de configuração, mas ao salvar a importação o sistema volta para a página inicial, sem dar nenhum erro. Poderia me ajudar. No aguardo!
    Lilian

  14. Lilian
    Lilian says:

    Olá, André já tenho instalado o modulo Matrixrates há vários meses trabalhando com ele normalmente, ocorre que fiz atualização de valores e aumentei várias linhas na planilha, salvei em CSV , troquei o escopo de configuração, mas ao salvar a importação o sistema volta para a página inicial, sem dar nenhum erro. Poderia me ajudar. No aguardo!
    Lilian

  15. Caio Ribeiro
    Caio Ribeiro says:

    VALEU André!! Me ajudou demais a resolver uma questão fundamental para minha loja que a tempos estava tentando encontrar uma solução… e sem dúvida esta é a melhor o/
    OBRIGADO por oferecer conteúdos como este! Salva a vida de muitos 😉

    Só tive problema, na configuração do traço… que resolvi com este comentário:
    Fábio Nakai •
    Olá Pessoal, eu tentei fazer a solução do hífen mas não funcionou na versão 1.7 do magento. Eu vi na solução do André que tem uma aspa dupla sem fechar. Eu coloquei mais uma aspas dupla pra fechar o código e funcionou. Agora com ou sem hifem ele calculou corretamente. Ficou assim: $postcode = str_replace(‘-‘,””,$postcode);

  16. viagensereservas
    viagensereservas says:

    André fiz atualização a importação funcionou perfeitamente. Criei a regra de frete etc. Tudo certinho. Porém os valores não aparece continua pegando os valores dos correios desabilitei os dos correis para testar e nada poderia dizer aonde estaria o erro?

    • Andre Gugliotti
      Andre Gugliotti says:

      Provavelmente, nível de configuração, aquela caixa no canto esquerdo superior (Todas as Lojas, Website, Visão de Loja). Verifique as configurações nos níveis inferiores.

  17. Shop Corinthians
    Shop Corinthians says:

    André, quando mudo o escopo para fazer a importação da planilha tenho um erro:

    Invalid config field backend model: matrixrate_adminhtml/system_config_backend_shipping_matrixrate

    Sabe o que pode ser? só falta isto pra eu concluir todo o processo, se tiver uma pasta no FTP onde eu possa jogar este arquivo também me fala e já coloco lá direto.

  18. Lucas
    Lucas says:

    Quando coloco um CEP não listado na planilha, não aparece nenhuma mensagem. Na configuração do módulo, configurei para ele mostrar uma mensagem de erro personalizada, mas nada aparece.

    Todas as faixas de CEP estão retornando o mesmo preço. O que posso ser?

  19. Shop Corinthians
    Shop Corinthians says:

    Andre, sabe me dizer qual a pasta que fica gravado o arquivo .CSV com as taxas? tenho um arquivo com mas de 40.000 linhas e este me dando erro de “Allowed memory size” quando envio um arquivo menor funciona normal… pensei em jogar o arquivo completo direto na pasta, acha que da certo?

  20. Lucas Rafael
    Lucas Rafael says:

    Olá, tenha uma duvida, se o site tiver a opção de retire na loja, eu posso fazer esse processo e vai aparecer todas as minhas filiais?
    Ou vai aparecer so uma opçao com o nome retire na loja ?

  21. Sérgio Thiago Mendonça
    Sérgio Thiago Mendonça says:

    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á

  22. Sérgio Thiago Mendonça
    Sérgio Thiago Mendonça says:

    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.

  23. Sérgio Thiago Mendonça
    Sérgio Thiago Mendonça says:

    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
      sidney says:

      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
        Sérgio Thiago Mendonça says:

        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.

  24. Miguel
    Miguel says:

    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?

  25. Christiano Gomes
    Christiano Gomes says:

    Amigos, vi que tem mais gente com esse mesmo problema.
    Eu configurei certinho, com um range de ceps. Porém ao digitar um cep “fora” da faixa, ele não dá nenhuma mensagem de erro. Mesmo estando habilitado nas configurações. Alguém conseguiu resolver isso ? (Magento 1.9.2.2). Muito obrigado!

Os comentários estão fechados.