Esse post foi atualizado e uma nova planilha está disponível em Atualização de planilha de frete para o módulo Matrix Rate. Dê uma conferida lá!

Entregas - imagem: Dream Pictures/Shannon Faulk

Faça o download da planilha de exemplo para o módulo WebShopApps Matrix Rate Multiple Table Rates

Quem quer usar tabelas de transportadoras no Magento, provavelmente já conhece o módulo da WebShopApps chamado Matrix Rate Multiple Table Rates Extension. A grande vantagem desse módulo – oferecido gratuitamente e instalável a partir do Magento Connect – é que ele permite faixas de código postal, ou seja, é possível definir formas de envio para determinadas faixas de CEP.

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. Eu preparei uma planilha com essas zonas e apresentando as respectivas faixas de CEPs e se são correspondentes à capital ou interior. Com isso, é razoavelmente simples pegar as tabelas que as transportadoras fornecem e convertê-las no formato do Magento.

Assim, pra converter a planilha  que sua transportadora enviou no formato do WebShopApps Matrix Rate Multiple Table Rates, você terá que fazer uma linha para cada combinação de faixa de CEP x peso. Por exemplo:

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. Quatro exemplos de formas de entrega para SP – Capital seriam:

  • São Paulo – Capital – Motoboy
  • São Paulo – Capital – Sedex
  • São Paulo – Capital – PAC
  • São Paulo – Capital – Transportadora

Faça o download da planilha de exemplo para o módulo WebShopApps Matrix Rate Multiple Table Rates


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.

77 Comments

Flávio Maciel · 09/04/2012 at 16:41

André, informação bastante útil.

Me parece que hoje os módulos de frete disponíveis para o Brasil ainda não atendem 100%.

É incrível como ainda vemos lojas Magento que ficam sem vender quando para de funcionar o webservices dos Correios, do qual o módulo que a loja utiliza depende.

Este módulo da WebShopApps parece uma boa alternativa, mas talvez não parece ser produtivo para quem depende das extensas tabelas dos Correios.

O que você acha disso?

Abs

André Gugliotti · 09/04/2012 at 17:24

@Flávio,
Valeu pela visita!

Esse módulo da WebShopApps é uma saída, mas o ideal era um módulo q não dependesse do webservice dos Correios. Pena q até hj não foi desenvolvido, nem seria algo tão difícil.
Abraços e volte qdo quiser.

Karen Baker · 11/04/2012 at 11:47

Thanks for the write-up, we really appreciate it. If you think this can be improved for the Brazilian market please feel free to contact me and I’ll see what I can do. Karen

André Gugliotti · 11/04/2012 at 13:51

@Karen
I appreciate your comment. If I have suggestions for this module, be sure I’ll let you know.

Aléx de Oliveira · 18/04/2012 at 16:14

Olá André,

Parabéns pelo POST. Esta dica está sendo muito importante para mim.

Aconteceu apenas um problema na hora de importar o arquivo. Eu copiei exatamente a planilha base e converti para .CSV. Porém deu um erro de CEPS duplicados na linha 101, que é a faixa de CEPs de RO. Qual seria a faixa correta?

Grande abraço…

André Gugliotti · 18/04/2012 at 17:37

@Alex,
Valeu pelo feedback. Já marquei pra verificar isso o mais rápido possível.

Por enqto, quem quiser usar a planilha, basta excluir a linha 102.

Aléx de Oliveira · 19/04/2012 at 11:56

André,

estou utilizando o Magento 1.6.2, juntamente com o módulo de correios do Pedro Teixeira. Neste módulo tem a configuração para suportar somente até 30 Kg. Então, para testar cadastrei um produto acima de 30 Kg e lá fui eu fazer a compra.

Porém quando chegou a parte do cálculo do frete, a opção do módulo da WebShopApps chamado Matrix Rate Multiple não apareceu. Conforme pode ser visualizado na imagem: http://dl.dropbox.com/u/2381830/Carrinho%20de%20Compras.png .

O módulo Matrix Rate está habilitado e fiz o upload da tabela.

Poderia me ajudar neste problema?

Valeu abraço

Aléx de Oliveira · 19/04/2012 at 15:10

André esquece o comentário anterior. Consegui corrigir o problema. Pode até rejeitá-lo.. Abraço

André Gugliotti · 20/04/2012 at 09:13

@Alex,
A tabela foi corrigida? Vc se importa me mandar a correção em contato ARROBA gugliotti PONTO com PONTO br?

Em relação ao peso, não se esqueça q é preciso determinar uma faixa acima de 30 kg, algo como 25 a 100 kg. Foi feito isso?

André Gugliotti · 23/04/2012 at 12:12

Realmente as entradas em relação a Rondônia estavam duplicadas pois o estado possui apenas uma faixa de CEPs atualmente, apesar de contar com duas zonas. O arquivo já está corrigido e fiquem à vontade caso encontrem erros ou queiram propor e compartilhar melhorias.
Como vcs leram ali em cima, o pessoal da WebShopApps se dispôs a implementar sugestões da comunidade brasileira.

João Paulo Baptista · 27/04/2012 at 13:57

Olá André, muito obrigado pelas dicas.

Estou tendo um problema, quando eu vou importar uma tabela no módulo ele dá essa mensagem: “An error occurred while saving this configuration: Invalid Matrix Rates File Format”.

Já tentei de tudo mas ele não resolve, pode me ajudar?

Obrigado.

André Gugliotti · 27/04/2012 at 14:02

@João Paulo
O arquivo foi salvo como CSV corretamente? Aquelas “colunas extras” (Zonas e Delivery Type adicional) foram excluídas?
Tb tente fazer o teste com apenas uma linha de dados e ver se mesmo assim ele dá erro.

João Paulo Baptista · 27/04/2012 at 14:07

Então André, eu simplesmente exportei a tabela padrão, e salvei por cima para fazer um teste. Ele deu o erro. Agora se eu exporto a tabela padrão e importo sem alterar nada (nem salvar), aí ele funciona. Já joguei a linha no google docs e exportei, porque li que talvez fosse algum problema do excel, mas ainda dá o mesmo erro. Não sei o que pode ser, infelizmente.

Aléx de Oliveira · 03/05/2012 at 17:54

@João Paulo
Talvez o problema possa ser na exportação do arquivo em CSV. Para mim tbm dava o mesmo erro. Para funcionar eu baixei esse software aqui http://www.baixaki.com.br/download/convert-xls.htm e daí fiz a conversão.

André, tenho mais um problema. Preciso fazer um cálculo de um percentual sobre o valor do pedido. Esse percentual varia conforme a faixa do CEP. Você sabe alguma forma que eu possa resolver isso?

Abraço

André Gugliotti · 03/05/2012 at 18:27

@Alex,
Q eu me lembre, esse módulo não faz isso. Se fosse um valor fixo, era só programar na própria planilha Excel, mas como é uma “taxa de manuseio” e q varia em função do CEP, eu não sei te dizer.
Já pensou em usar Impostos? É uma saída, embora pode ficar confuso pro cliente.
Aí vc conseguiria aplicar um percentual sobre a faixa de CEP ou sobre os estados.

Rovilson · 16/05/2012 at 11:40

Primeiramente muito boa a dica. Só que instalei o módulo e fiz o upload do arquivo, porém, na hora que vou realizar a compra na loja, não aparece as opções de fretes que cadastrei na tabela. Tenho que habilitar mais alguma coisa? Pode me ajudar.

Obrigado.

Edson kleber · 24/05/2012 at 10:59

Instalei o modulo Webshopapps Matrix Rates mais não aparece a opção para importar a planilha para calculo de frete. Você poderia me ajudar.

André Gugliotti · 24/05/2012 at 11:09

@Rovilson
Veja a questão dos traços do CEP. Até me foi perguntado como resolve isso, mas creio q só seja possível usando um AJAX pra converter a informação de “com traços” (visto pelo cliente) para “sem traços” (compreendida pela planilha)

@Edson
Pra importar a planilha é preciso selecionar o website, na opção da lateral esquerda das configs. Detalhe: o website, não a visão de loja

Everson Schá · 24/05/2012 at 13:48

Primeiramente esse seu exemplo me deu a solução para entrega via-motoboy.
2 detalhes que irei tentar melhorar, o primeiro já foi comentado a cima sobre os CEPS com – realmente teria que ter uma mascara via js ou ajax para fazer isso. o outro ponto seria a descrição do serviço: Delivery Type
Quanto coloco por exemplo uma cidade: Três Coroas no site irá aparecer somente: TR quando temos caracteres, acentos o sistema não interpreta. teria solução para isso?

Shopnetpiscinas Piscina · 03/06/2012 at 04:14

Andre, Preciso da sua ajuda para importar a planilha. Entre em contato comigo, por favor: contato@shopnetpiscinas.com.br

Shopnetpiscinas Piscina · 03/06/2012 at 20:50

pra mim tb aparece a mensagem: An error occurred while saving this configuration: Invalid Matrix Rates File Format

Andre Gugliotti · 04/06/2012 at 20:13

@Shopnetpiscinas,
Dê uma olhada novamente no post; corrigi o erro e os comentários estão disponíveis na página. Esse erro já foi comentado ali, é uma falha na geração do seu arquivo CSV. Boa sorte!

Shopnetpiscinas Piscina · 05/06/2012 at 16:56

oi… consegui importar, mas não está calculando..
exportei minha planilha para analisar e o CSV cortou alguns pedaços.. pode ser isso?
País,Estado,Cidade,"Zip/Postal Code From","Zip/Postal Code To","Weight From","Weight To","Valor do frete","Delivery Type"
*,*,,01000000,10999999,30.0000,50.0000,70.0000,S
*,*,,01000000,10999999,0.0000,20.0000,48.0000,S
*,*,,01000000,10999999,50.0000,600.0000,120.0000,S
*,*,,01000000,10999999,20.0000,30.0000,50.0000,S
*,*,,01000000,10999999,600.0000,5000.0000,200.0000,S
*,*,,13000001,13139999,0.0000,60.0000,10.0000,Campinas-SP
*,*,,13140001,13149999,50.0000,600.0000,25.0000,Paulinia-SP
*,*,,13140001,13149999,0.0000,50.0000,15.0000,Paulinia-SP
*,*,,13170001,13182999,50.0000,600.0000,25.0000,Sumar
*,*,,13170001,13182999,0.0000,50.0000,15.0000,Sumar
*,*,,13183001,13189999,50.0000,600.0000,25.0000,Hortol
*,*,,13183001,13189999,0.0000,50.0000,15.0000,Hortol
*,*,,13200001,13219999,600.0000,50000.0000,150.0000,Jundiai-SP
*,*,,13200001,13219999,0.0000,600.0000,50.0000,Jundiai-SP
*,*,,13270001,13279999,50.0000,600.0000,25.0000,Valinhos-SP
*,*,,13270001,13279999,0.0000,50.0000,15.0000,Valinhos-SP
*,*,,14000001,14109999,0.0000,600.0000,80.0000,Robeir

Andre Gugliotti · 06/06/2012 at 13:25

@shopnetpiscinas
Sim, certamente é falha no CSV devido á acentuação…

Shopnetpiscinas Piscina · 06/06/2012 at 14:07

e ai??

Andre Gugliotti · 06/06/2012 at 14:16

E aí eu sugiro q tu contrates um profissional pra te ajudar ou siga as instruções q outras pessoas deram nesses comentários aqui embaixo…

Luciano Bonfim · 26/07/2012 at 01:07

o problema do traco do CEP é simples de resolver basta editar o sequinte arquivo:
appcodecommunityWebshopappsMatrixrateModelMysql4CarrierMatrixrate.php

logo apos a linha 40:
$postcode = $request->getDestPostcode();

inseria a seguinte linha:
$postcode = str_replace('-','',$postcode);

Ilderaldo Idriis · 19/09/2012 at 20:52

Muito útil o post!
Mas observei um ponto extremamente importante, o Matrix Rate não se baseia no peso cúbico do produto (LxCxP) esim no peso real do produto informado no magento na hora de efetuar o cálculo, e isso é crucial.

Alguém sabe como contornar isso?

Edson Kleber Fernandes Guimarães · 31/10/2012 at 20:09

Estou usando esse modulo entatno na hora do resultado na tela ele responde com dois resultados como o exemplo abaixo.
Outros Métodos de envio

Transportadora – 11 dias úteis a partir da confirmação de envio. R$50,24

Transportadora – 9 dias úteis a partir da confirmação de envio. R$50,24

Não importei a tabela e sim copiei a mesma de uma outra loja que eu tenho que funciona perfeitamente.

Gabriel W. de Jesus · 05/11/2012 at 19:54

Ola pessoal, muito bom esse tutorial, segui todos os passo.. quase deu tudo certo.
O que falta é mostrar os valores que indiquei na tabela, ele não apresenta.
Creio que possar ser algo nas configurações do Modulo.
Pra apresentar planos de Frete Gratis nas configurações, ele apresenta.
Agora o que eu quero é dar opção de Motoboy para Curitiba e Região Metropolitana até 10kg por 15reais e mais nada.
Ele exporta e importa corretamente sem erros.
Mas a dúvida é, por que não apresenta o Motoboy?

País, Estado, Cidade,"Zip/Postal Code From","Zip/Postal Code To","Weight From","Weight To","Valor do frete","Delivery Type"
BRA,*,, 80000000,83189999,0.0000,10.0000,15.0000, Motoboy

Gabriel W. de Jesus · 06/11/2012 at 03:24

Shopnetpiscinas, estou passando pelo mesmo problema que voce, meses depois… voce conseguiu alguma solução? ele carrega o arquivo, tudo fica certo… mas não mostra os custos e nem as opções que eu criei.

Andre Gugliotti · 07/11/2012 at 18:16

Gabriel, tira o BRA, deixa só *, estão faltando um * tb e verifica se vc configurou a faixa de CEPs no módulo…

Marcelo Carvalho Linhares · 07/11/2012 at 20:03

parabéns pela contribuição andré… vai me poupar um bom trabalho, fico te devendo umas bohemias!

Marcelo Carvalho Linhares · 07/11/2012 at 20:10

para funcionar com máscara!

alterar a linha 41 da classe: Webshopapps_Matrixrate_Model_Mysql4_Carrier_Matrixrate

trocar:
$postcode = $request->getDestPostcode();

por:
$postcode = str_replace("-", "", $request->getDestPostcode());

Gabriel W. de Jesus · 07/11/2012 at 21:04

Segue minha configuração, me ajuda a ver se esta tudo ok por favor?

Habilitado: Sim.
Titulo: Envio.
Condição: Peso x Destino
Use Numeric Zipcode Ranges: No
Use Numeric Zipcode Ranges: habilitar
Only Display Free Shipping: Nao
Free Shipping Display Text: Frete Gratis
Minimum Order Amount For Free Shipping: nada preenchido
Include Free Shipping Items in Rate Calculation: No
Include Virtual Products in Rate CAlculation: Sim
Calcular taxa de Manuseio: Arrumado
Taxa de manuseio: nada preenchido
Ship to Applicable Countries: Todos os Paises permitidos
Ship to Specific countries: Brazil
Show Method if Not Applicable: Sim

Arquivo do MatrixRates
País,Estado,Cidade,"Zip/Postal Code From","Zip/Postal Code To","Weight From","Weight To","Valor do frete","Delivery Type"
*,*,,00000000,99999999,0.0000,10.0000,15.0000,Motoboy

(coloquei pra pegar praticamente todos os CEPs para testar e nada, nao importando o valor do cep)

John Truck · 13/11/2012 at 00:16

Andre, muito boa a explicacao. Ficou uma duvida que voce levantou mas nao deu a resposta.
Considere uma mesma faixa de CEP e para uma mesma faixa de peso, é possível exisitr duas formas de envio.
Por exemplo: CEP 70.000-000 (DF) uma encomenda de 3 kg pode ser enviada por via aérea ou terrestre. Tem como o cliente escolher qual das duas opções de envio ele prefere? Se sim, por favor de um exemplo de linha na planilha. Obrigado

Andre Gugliotti · 16/11/2012 at 11:01

Sim, John… vai aparecer todas as formas possíveis para aquela faixa de peso/faixa de CEP. Pra isso basta colocar duas linhas com a mesma faixa de CEP e a mesma faixa de peso, com valore diferente e nome diferente. Ele vai mostrar ambas pro cliente escolher.

Gabriel W. de Jesus · 27/11/2012 at 14:15

Andre, refiz as configurações e a instalação em localhost e deu tudo certo.
Tudo funciona perfeitamente bem…
POREM, quando tentei refazer os passos no meu site, não deu certo a parte do range de cep. Só funciona sem o range…
será que voce pode me dar uma luz do que pode ser o erro? acredito que possa ser algum erro nas configurações do CEP, algo assim, no banco de dados, sei la… mas não tenho nem ideia de onde procurar… pode me ajudar nisso?

John Truck · 03/12/2012 at 15:43

valeu mesmo! funcionou direitinho!

Marcelo Harrison · 05/12/2012 at 23:27

Olá Andre. Obrigado pela ajuda, vc está de parabéns. Andre na hora de calcular o frete não está aparecendo nada. Fiz todos os procedimento, até desabilitei o modulo dos correios. pode me ajudar? Obrigado

Gustavo Hansel · 06/12/2012 at 16:26

Mto bom!

Danillo Leite · 08/12/2012 at 16:21

André boa Tarde: Meu um cliente me procurou e quer fazer um delivery de comida, como faço para: Entrega apenas para os bairros cadastrados, fechar a loja nos horários que o restaurante está fechado? E tem mais, ela quer q qndo um pedido chegue, faça barulho no pc e imprimir cupom para a cozinha…

vc tem alguma idéia se consigo isso no magento? desculpe o tanto de perguntas andré, mas nesse quisito especifico preciso do conselho de um expert (voce) rs.

Obrigado desde já.

PS: Recomendo sempre o blog, mto bom.

Andre Gugliotti · 09/12/2012 at 18:15

Vc precisa de um bom desenvolvedor… 😀

Danillo Leite · 15/12/2012 at 01:33

Gabriel,
Muda o Use Numeric Zipcode Ranges: No para YES, ai ele pega o Range(Faixas) de Ceps

abs

http://www.nkbweb.com

Cleverson Simões · 21/12/2012 at 07:21

Obrigado por compartilhar, sucesso!

Gabriel Mesel · 02/01/2013 at 17:53

Olá André Gugliotti, Parabéns pelos posts!!

Estou com duas dúvidas.

1 – Existe a possibilidade de acrescentar uma frase caso o cep do cliente não esteja dentro do range especificado na tabela CSV?

2 – Eu tenho a home padrão para a cidade de são paulo e criei uma loja para BH, porém são do mesmo dono. Existe a possibilidade de usar o matrix rate na home também?, pois o botão de importar só aparece quando eu mudo a visão para a loja de BH

Grande Abraço.

Andre Gugliotti · 02/01/2013 at 19:16

Gabriel,
Deixe-me pensar: q tal colocar uma linha com * em todos, valor zero e a frase "CEP fora da área de entrega"? Nesse caso, a compra pode ser feita, o q não é legal. Não lembro de cabeça se o MatrixRates tem a opção de exibir msg de erro qdo fora da área de entrega, mas é só olhar no painel.
Qto à loja, vc configura por loja e não por store view. Vc tem q ter duas lojas diferentes pra fazer essa configuração.

Gabriel Mesel · 02/01/2013 at 19:58

Olá André, Muito obrigado por me responder. Fiz o teste que você falou, porém não obtive sucesso. lhe mando o formato em

Gabriel Mesel · 02/01/2013 at 20:12

Obrigado por ter me respondido. Infelizmente não vi nenhuma opção de enviar uma mensagem de erro no painel admin. Você conhece alguma solução mesmo usando outro módulo onde se o cliente digitar um cep que não esteja contemplado no arquivo CVS, ele não possa realizar a compra??

Abraços!

Loisse Rodrigues · 28/01/2013 at 15:07

Oi, André! Parabéns pela postagem! Ajudou-me muito.
Sou nova com o Magento e estou dificuldades para trabalhar com esse módulo. Basta instalar o plugin, habilitar, importar a planilha e …. não consigo ir além. 🙁
Qual é o próximo passo para colocá-lo pra funcionar?
Um grande abraço e até breve!

Deixe uma resposta