Mascara de CEP e modulo de Matrix rate

Uma mascara de CEP é algo bem simples, e da outra cara para sua loja. Além de evitar que usuários cadastrem CEPs inexistentes. Nesse post vou mostrar como colocar a mascara de CEP e como fazer com que seu modulo de Matrix Rate não pare de funcionar.

Primeiro passo é fazer o download da Jquery (pode ser feito aqui) e o download da maskedinput que pode ser baixado aqui.

Feito isso, vamos inserir os js novos a nossa loja.
Abra o xml principal, o caminho é default/seu_tema/template/page/page.xml

E insira seu JS como o exemplo abaixo:
jquery/jquery-1.8.1.js
Faça isso para os dois JS, lembrando que é MUITO importante que o jquery seja incluído ANTES da maskedinput.

Agora vamos criar o nosso JS. Crie um arquivo com nome de zipcode.js e coloque somente o código abaixo:


jQuery(document).ready(function() {
jQuery(".validate-postode").mask("99999-999");
});

Para quem entende de Jquery, note que estamos usando “JQuery” em vez de “$”, pois, utilizando “$” irá ocorrer conflito com o prototype, que é nativo do Magento.
Caso você queira colocar mascara em outros campos, é só pegar a classe do campo que você quiser e colocar. Por ex.:

Mascara de telefone celular e CPF:

jQuery(".phone").mask("9999-9999");

jQuery(".cpf").mask("999.999.999-99");

Lembrando, que do jeito que ficar com a mascara será o formato salvo no banco de dados.

Inclua seu novo JS abaixo de todos os outros.
É muito importante seguir umao odem de importação desses javascripts criados. Primeiro seria a Jquery.js , em segundo o jquery.maskedinput.js e em terceiro o zipcode.js.

Pronto, está pronto. Todos seus campos de CEP terão a mascara.

Para quem usa o matrix Rate, vale lembrar que dessa forma você irá salvar todos os CEP´s com traço no banco de dados, o que traria problemas para o Matrix Rate.
Para solucionar este conflito basta você editar o arquivo “\app\code\community\Webshopapps\Matrixrate\Model\Mysql4\Carrier\Matrixrate.php” logo após a linha 40 que é “$postcode = $request->getDestPostcode();”.

Insira o seguinte código:

$postcode = str_replace('-','',$postcode);

Esse código serve para substituir o traço (-) por vazio e não conflitar com os calculos do Matrix Rate.

Qualquer dúvida, perguntem nos comentários! =) Espero ter ajudado.

Anúncios

11 responses to this post.

  1. Olá Mariana, Este post caiu como uma luva para mim, já que todos devem saber que na ultima sexta-feira (30/11) o site do Correios saiu fora do ar e todos os sites que usam banco de dados do Correios pararam de funcionar. O serviço webservice só voltou a funcionar na segunda, 03/12. Faz tempo que estou atrás de tabela de frete por tabela que é muito mais seguro porém estou com problema (não sei como resolver porque não sou programador) com relação a faixas de CEP. Por exemplo, no WebShopApps não sei a instruções ou se é possível colocar a faixa inicial do CEP como por exemplo 01000-000 e final 19999-999. No carrinho de compra, digitar 12350-001 e o sistema localizar a faixa de CEP, comparar o CEP e o peso e retornar com o resultado. Consegui fazer funcionar apenas com CEP fixo mas não com a busca entre as faixas, já que não encontrei respostas nos fórum. Sabe se é possível fazer isso?

    Responder

  2. Posted by Renato Aleksander on 17 de dezembro de 2012 at 10:29 am

    O assunto é interessante mas muito mal explicado !! Os link spostado nos deixam confusos em qual arquivo baixar

    Responder

  3. Olá, copiei os arquivos, criei o zipcode.js, mas qual comando coloco no page.xml? É preciso mexer no billing,phtml e shipping.phtml? Obrigado

    Responder

  4. Nossa ta meio bagunçado ai o post, será que tem como atualizar esse post?

    pois aqui não deu certo

    Responder

  5. […] Máscara de CEP e módulo matrix rate – Primeiros Passos Magento […]

    Responder

  6. Posted by Eduarda Gonçalves on 16 de junho de 2014 at 8:17 pm

    Funcionalidade muito útil, mas a explicação deixou a desejar.

    Responder

    • Posted by Mariana Dutra on 17 de junho de 2014 at 2:25 pm

      Olá Eduarda, realmente precisa intender um pouco de programação e do comportamento do Magento. Que pena que não consegui ser clara para você.

      Responder

      • Ola Eduarda, excelente post
        No entanto agora me surgiu um problema, na minha loja eu tenho o pagamento contra entrega em códigos especificos. no entanto de repente se o cliente colocar o cep (ex) 4405-910 desaparece o pagamento contra entrega e se colocar 4405910 ele se mantem. Alguma ideia de como resolverO Obrigado pela ajuda

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

%d blogueiros gostam disto: