Validação de CPF/CNPJ no Magento

Em lojas virtuais, é extremamente necessário solicitar dados do CPF/CNPJ ao usuário para geração de notas fiscais. Por padrão, ele vem desativado no Magento. Para habilitá-lo, vá no Painel Administrativo em Sistema -> Configurações. No menu ao lado, vá na categoria Clientes, selecione Configurações. Na página, na aba Opções de Nome e Endereço, na caixa de combinação Exibir CPF/CNPJ, selecione Obrigatório.

Outra situação importante é que o Magento não faz a validação do CPF/CNPJ permitindo que dados incorretos sejam cadastrados. Para isso, precisamos configurar a validação do CPF/CNPJ. Verifique o arquivo em app/design/frontend/<default>/<default>/template/customer/widget/taxvat.phtml. Considerando que <default>/<default> seja a localização do seu template como default/modern ou default/default.

Cadê a Pasta Customer?

Talvez você não encontre a pasta customer. Nesse caso, teremos que criar essa pasta junto com a pasta widget e o arquivo taxvat.phtml. O conteúdo do arquivo taxvat.phtml deve ser o mesmo de app/design/frontend/base/default/template/customer/widget/taxvat.phtml.

Prosseguindo

No final do arquivo adicione o seguinte código:

Agora, abra o arquivo js/prototype/validation.js. Na última linha do arquivo após “});”, adicione:

Ainda neste mesmo arquivo procure por:

Após esse trecho adicione:

E pronto!

Fonte: danielbarbosa09 em http://www.magentocommerce.com/boards/viewthread/221817/

silvio

Sobre Silvio Tenfen Junior

Desenvolvedor Web com 5 anos de experiência. Especializado em desenvolvimento de Sites e E-commerces com plataforma Magento. Trabalho também com desenvolvimento de Sistemas, integrações com ERPs, soluções de pagamento (Cielo, Rede, PagSeguro) e gerenciamento de sistemas em ambiente Cloud (Linux, Amazon Web Services).

11 comentários em “Validação de CPF/CNPJ no Magento

  1. perfeito, configurei e instalei na minha loja magento 1.7.2 e foi de primeira, parabéns pelo post.

  2. Muito bom o post, me ajudou bastante mesmo.

    Obrigado.

  3. Oi amigo, seu blog é muito bom e obrigado pelo post.

    Mas como eu já havia visto na postagem que você colocou como font não funcionou, a única coisa que você disse de diferente foi criar a pasta dentro de customer, no meu magento eu tenho a pasta mais não tinha a widget, criei e coloquei o arquivo mas continua sem validar. Pode me ajudar

    • Boa noite, José,

      A primeira coisa que recomendo é verificar se não estão ocorrendo erros na execução do JavaScript (no Firefox pode utilizar o Firebug).
      A segunda coisa é verificar se o arquivo taxvat.phtml foi adicionado dentro da pasta do template correto. Se mesmo assim não funcionar tente adicionar o arquivo na pasta dos outros templates também. Por exemplo:

      app/design/frontend/default/default/template/customer/widget/taxvat.phtml
      app/design/frontend/default/modern/template/customer/widget/taxvat.phtml
      app/design/frontend/base/default/template/customer/widget/taxvat.phtml

  4. Marcelo

    A validação não funciona para o Firefox, para os demais navegaderes funciona, mas no firefox quando clico em continuar simplesmente nada acontece, oque pode ser?

  5. Ricardo

    Boa tarde,
    Código perfeito!
    Mas estou com o mesmo problema que o Marcelo, no firefox não funciona, pode dar mais essa dica.
    Obrigado

  6. Felyppe Rodrigues

    Amigão, salvou uma vida! Simples e objetivo, parabéns! =)

  7. Uma coisa importante também é filtrar o CPF ou CNPJ já cadastrado de forma não permitir vários cadastros num mesmo CPF ou CNPJ.
    Para isto basta adicionar o script abaixo no register.phtml que podem estar na pasta customer ou persistent de seu template.
    app/design/frontend//default/template/customer/form/register.phtml
    OU
    app/design/frontend//default/template/persistent/customer/form/register.phtml

    $('taxvat').addClassName('scripts');
    Validation.add('scripts','Ja existe cadastro com esse documento!',function(the_field_value){
    var url = 'scripts/verifica.php?taxvat=' + $('taxvat').value;
    var ok = false;
    new Ajax.Request(url, {
    method: 'get',
    asynchronous: false,
    onSuccess: function(transport) {
    var obj = response = transport.responseText;
    //alert (obj);
    scripts = obj.status_desc;
    if (obj) {
    Validation.get('scripts').error = obj + ' ja é um documento cadastrado!';
    ok = false;
    } else {
    ok = true;
    }
    }
    });
    return ok;
    });

    • Perfeito Marcio. Obrigado por compartilhar.

    • Olá Márcio, boa noite.
      tentei utilizar o seu código e não funcionou. Fiquei com uma dúvida na construção da url, onde que está declarado / definido o arquivo verifica.php ? (var url = ‘scripts/verifica.php?taxvat=’ + $(‘taxvat’).value;)
      Obrigado.

  8. Enrique Broens

    Muito bom o codigo!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">