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


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.

65 Comments

Marcelo Fidalgo · 19/03/2013 at 13:48

Ótimo post André. Sempre ajudando à todos. Obrigado!!!!!

Luciano Alves · 09/04/2013 at 10:52

Opa Andre Legal o Post, me retire uma dúvida por favor. Devo colocar na planilha o – (traço) no cep exemplo 38700-000 ?

Luciano Alves · 09/04/2013 at 10:54

Ignorância a minha rsrs Andre já li la na planilha que esta escrito sem traço rs

Rafael Ribeiro · 13/04/2013 at 05:27

Como posso mostrar para o cliente a entrega de 30 a 20 dias úteis. É possivel fazer isso?

Andre Gugliotti · 15/04/2013 at 17:59

A solução mais simples é colocar o texto logo depois do local. Ex: São Paulo – Capital – 10 dias úteis.

Andre Gugliotti · 17/04/2013 at 16:16

Atenção: fiz uma atualização na planilha pois a faixa de CEP para Rio de Janeiro – interior estava errado. O correto é 24890000 a 28889999.

Fábio Nakai · 27/11/2014 at 16:02

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 · 26/12/2014 at 19:01

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

Ricardo Iguchi · 23/02/2015 at 15:01

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?

João · 09/03/2015 at 20:25

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 · 10/03/2015 at 07:58

[…]

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)

[…]

marcelo · 18/05/2015 at 17:01

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 · 19/05/2015 at 07:52

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.”

marcelo · 19/05/2015 at 12:44

Então fiz exatamente isso e apresenta o bendito erro Invalid Matrix Rates File Format

Felipe Vianna · 18/06/2015 at 14:47

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 ?

Andre Gugliotti · 19/06/2015 at 08:02

Felipe, não me consta que esse módulo tenha problemas pra funcionar na EE. Verifique com o pessoal da WebShopApps, já que eu apenas preparei a planilha de fretes.

Aurelio · 02/07/2015 at 19:16

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

Marcos Del Grossi · 09/07/2015 at 11:30

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?

P. Fernandes · 07/08/2015 at 14:12

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?

Marcone Ferreira Ramos · 08/08/2015 at 10:14

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.

Andre Gugliotti · 11/08/2015 at 19:22

Se for o CEP informado no comentário, ele não existe mesmo, tem um zero a mais. Lembre-se de habilitar a opção de Faixas de CEP, no painel do módulo.

Andre Gugliotti · 11/08/2015 at 19:24

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.

Mauro · 08/10/2015 at 13:39

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 ?

Luciano · 29/10/2015 at 10:20

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?

bruno manjagalli · 29/10/2015 at 15:20

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

Andre Gugliotti · 02/11/2015 at 07:17

Sim, nas configs do módulo do painel existe essa opção.

Filipe Marques · 06/11/2015 at 22:15

André, é possível informar o tempo de entrega? Abraços.

Andre Gugliotti · 11/11/2015 at 06:51

Não há um campo específico para isso. Você pode definir no nome, como por exemplo, “SP – capital – 5 dias”.

Valderes Zimmer · 04/12/2015 at 15:31

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)

Lilian · 08/12/2015 at 10:52

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

Lilian · 08/12/2015 at 12:46

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

Andre Gugliotti · 11/12/2015 at 06:40

O de sempre, Lilian, verifique se o CSV está correto e se está no formato UTF-8, 😉

Lilian · 11/12/2015 at 08:17

Obrigado André, pelo seu retorno, já resolvi!

Caio Ribeiro · 18/04/2016 at 22:35

RESOLVEU MEU PROBLEMA!!! Obrigado

Caio Ribeiro · 18/04/2016 at 22:38

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

viagensereservas · 05/05/2016 at 16:29

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 · 06/05/2016 at 07:51

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.

Shop Corinthians · 23/08/2016 at 11:54

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.

Andre Gugliotti · 24/08/2016 at 08:08

Falha de instalação da loja ou do módulo…

Shop Corinthians · 24/08/2016 at 12:35

Achei aqui, estava faltando o arquivo appcodecommunityWebshopappsMatrixrateModelAdminhtmlSystemConfigBackendShippingMatrixrate.php

Thiago Barros Vilela · 01/09/2016 at 14:39

André Gugliotti, fiz exatamente o que diz e nao aparece nada, nem erro?

Lucas · 04/09/2016 at 22:04

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?

Andre Gugliotti · 05/09/2016 at 16:16

Erro na planilha, especialmente no formato!

Rodolpho D. Belo · 05/10/2016 at 17:35

Boa tarde.
Estou com algumas duvidas sobre os modos de frete, sera que alguém poderia me orientar?

Shop Corinthians · 16/01/2017 at 11:25

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?

Beatriz Amorim · 01/02/2017 at 09:30

Olá bom dia, a planilha não está mais disponível. Para você baixar.

Thiago Barros Vilela · 18/04/2017 at 08:36

Tentei e não consegui somente pra um estado, não aparece nada

Lucas Rafael · 06/09/2017 at 08:02

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 ?

Escolhendo os meios de entrega para sua loja Magento | eCommerce com Magento · 27/02/2015 at 09:41

[…] por um preço único para a cidade ou pela divisão dos bairros, através do CEP e usando o Matrixrate, com a planilha própria para cálcula do frete. Porém, não pense que basta oferecer esses dois métodos, é preciso ter organização para que o […]

Desenvolvimento de Loja Virtual Magento | Criação de Sites e Loja Virtual em Curitiba Wiy Solutions · 30/11/2015 at 18:12

[…] É o módulo que eu recomendo para utilizar com transportadoras, convertendo o arquivo enviado por elas em uma tabela com as faixas de peso por faixa de CEP. Você pode baixar a planilha de exemplo para o Matrix Rates nesse post. […]

Deixe uma resposta