Posting in the Magento forums has been disabled pending the implementation of a new and improved forum solution which should better serve the community.

For new questions please post at magento.stackexchange.com, the community-run support site for the Magento community. We will be providing updates on the new forum solution soon. For questions or concerns please email community@magento.com.

Magento Forum

Guia de Implementação CPF CNPJ Magento
 
danielbarbosa09
Jr. Member
 
Total Posts:  13
Joined:  2010-11-27
 

Recetemente escrevi em meu blog uma instrução de como implementar CPF E CNPJ no Magento. Segue o link:

CPF CNPJ MAGENTO

SEGUE O RESUMO DO ARTIGO.

No final do arquivo: app/design/frontend/<<<default>>>/<<<default>>>/template/customer/widget/taxvat.phtml

Adicione:

<script type="text/javascript">

    
//<![CDATA[

    

    // Adicionar classe de validação de cpf e cnpj ao Taxvat

    
$('<?php echo $this->getFieldId('taxvat'); ?>').addClassName('validar_cpf');

    
Validation.add('validar_cpf''O CPF ou CNPJ informado \xE9 invalido', function(v){return validaCPF(v,0);});

    

    
//]]>

    
</script>

Abra o arquivo:

Js/prototype/validation.js

Na ultima linha do arquivo após “});”, adicione:

<script type="text/javascript">

function 
validaCPF(cpf,pType){

    

    
var cpf_filtrado ""valor_1 " "valor_2 " "ch "";

    var 
valido false;

    

    for (
0cpf.lengthi++){

    ch 
cpf.substring(i1);

    if (
ch >= "0" && ch <= "9"){

    cpf_filtrado 
cpf_filtrado.toString() + ch.toString()

    
valor_1 valor_2;

    
valor_2 ch;

    
}

    
if ((valor_1 != " ") && (!valido)) valido = !(valor_1 == valor_2);

    
}

    

    
if (!validocpf_filtrado "12345678912";

    

    if (
cpf_filtrado.length 11){

    
for (1<= (11 cpf_filtrado.length); i++){cpf_filtrado "0" cpf_filtrado;}

    }

    

    
if(pType <= 1){

    
if ( ( cpf_filtrado.substring(9,11) == checkCPFcpf_filtrado.substring(0,9) ) ) && ( cpf_filtrado.substring(11,12)=="") ){return true;}

    }

    

    
if((pType == 2) || (pType == 0)){

    
if (cpf_filtrado.length >= 14){

    
if ( cpf_filtrado.substring(12,14) == checkCNPJcpf_filtrado.substring(0,12) ) )return true;}

    }

    }

    

    
return false;

    
}

    

    
function checkCNPJ(vCNPJ){

    
var mControle "";

    var 
aTabCNPJ = new Array(5,4,3,2,9,8,7,6,5,4,3,2);

    for (
<= i++){

    mSoma 
0;

    for (
vCNPJ.length j++)

    
mSoma mSoma + (vCNPJ.substring(j,j+1) * aTabCNPJ[j]);

    if (
== mSoma mSoma + ( mDigito );

    
mDigito = ( mSoma 10 ) % 11;

    if (
mDigito == 10 mDigito 0;

    
mControle1 mControle ;

    
mControle mDigito;

    
aTabCNPJ = new Array(6,5,4,3,2,9,8,7,6,5,4,3);

    
}

    
return( (mControle1 10) + mControle );

    
}

    

    
function checkCPF(vCPF){

    
var mControle ""

    
var mContIni 2mContFim 10mDigito 0;

    for (
<= j++){

    mSoma 
0;

    for (
mContIni <= mContFim i++)

    
mSoma mSoma + (vCPF.substring((i-j-1),(i-j)) * (mContFim i));

    if (
== mSoma mSoma + ( mDigito );

    
mDigito = ( mSoma 10 ) % 11;

    if (
mDigito == 10mDigito 0;

    
mControle1 mControle;

    
mControle mDigito;

    
mContIni 3;

    
mContFim 11;

    
}

    
return( (mControle1 10) + mControle );

    
}

</script>

Ainda neste mesmo arquivo procure por:

['validate-ssn''Please enter a valid social security number. For example 123-45-6789.', function(v{
            
return Validation.get('IsEmpty').test(v) || /^\d{3}-?\d{2}-?\d{4}$/.test(v);
            
}],

Após esse trecho adicione:

['validar_cpf''O CPF ou CNPJ informado e invalido.', function(v{
            
return validaCPF(v,0);
            
}],
 
Magento Community Magento Community
Magento Community
Magento Community
 
danielbarbosa09
Jr. Member
 
Total Posts:  13
Joined:  2010-11-27
 

EXEMPLO DE IMPLEMENTAÇÃO APENAS CPF OU APENAS CNPJ

//---------------------------------------------------------------
//http://www.pcforum.com.br/cgi/yabb/YaBB.cgi?board=cgi;action=display;num=1090001360


function valida_cnpj(cnpj)
      
{
      
var numerosdigitossomairesultadopostamanhodigitos_iguais;
      
digitos_iguais 1;
      if (
cnpj.length 14 && cnpj.length 15)
            return 
false;
      for (
0cnpj.length 1i++)
            if (
cnpj.charAt(i) != cnpj.charAt(1))
                  
{
                  digitos_iguais 
0;
                  break;
                  
}
      
if (!digitos_iguais)
            
{
            tamanho 
cnpj.length 2
            numeros 
cnpj.substring(0,tamanho);
            
digitos cnpj.substring(tamanho);
            
soma 0;
            
pos tamanho 7;
            for (
tamanho>= 1i--)
                  
{
                  soma 
+= numeros.charAt(tamanho i) * pos--;
                  if (
pos 2)
                        
pos 9;
                  
}
            resultado 
soma 11 11 soma 11;
            if (
resultado != digitos.charAt(0))
                  return 
false;
            
tamanho tamanho 1;
            
numeros cnpj.substring(0,tamanho);
            
soma 0;
            
pos tamanho 7;
            for (
tamanho>= 1i--)
                  
{
                  soma 
+= numeros.charAt(tamanho i) * pos--;
                  if (
pos 2)
                        
pos 9;
                  
}
            resultado 
soma 11 11 soma 11;
            if (
resultado != digitos.charAt(1))
                  return 
false;
            return 
true;
            
}
      
else
            return 
false;
      
}

APENAS CPF

function valida_cpf(cpf)
      
{
      
var numerosdigitossomairesultadodigitos_iguais;
      
digitos_iguais 1;
      if (
cpf.length 11)
            return 
false;
      for (
0cpf.length 1i++)
            if (
cpf.charAt(i) != cpf.charAt(1))
                  
{
                  digitos_iguais 
0;
                  break;
                  
}
      
if (!digitos_iguais)
            
{
            numeros 
cpf.substring(0,9);
            
digitos cpf.substring(9);
            
soma 0;
            for (
101i--)
                  
soma += numeros.charAt(10 i) * i;
            
resultado soma 11 11 soma 11;
            if (
resultado != digitos.charAt(0))
                  return 
false;
            
numeros cpf.substring(0,10);
            
soma 0;
            for (
111i--)
                  
soma += numeros.charAt(11 i) * i;
            
resultado soma 11 11 soma 11;
            if (
resultado != digitos.charAt(1))
                  return 
false;
            return 
true;
            
}
      
else
            return 
false;
      
}

EXEMPLO DO ARQUIVO TAXVAT APENAS CNPJ

<?php
/**
 * Magento
 *
 * NOTICE OF LICENSE
 *
 * This source file is subject to the Academic Free License (AFL 3.0)
 * that is bundled with this package in the file LICENSE_AFL.txt.
 * It is also available through the world-wide-web at this URL:
 * http://opensource.org/licenses/afl-3.0.php
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@magentocommerce.com so we can send you a copy immediately.
 *
 * DISCLAIMER
 *
 * Do not edit or add to this file if you wish to upgrade Magento to newer
 * versions in the future. If you wish to customize Magento for your
 * needs please refer to http://www.magentocommerce.com for more information.
 *
 * @category    design
 * @package     base_default
 * @copyright   Copyright (c) 2010 Magento Inc. (http://www.magentocommerce.com)
 * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
 */
?>
<label for="<?php echo $this->getFieldId('taxvat')?>"<?php if ($this->isRequired()) echo ' class="required"' ?>><?php if ($this->isRequired()) echo '<em>*</em>' ?><?php echo "CNPJ" ?></label>
<
div class="input-box">
    <
input type="text" id="<?php echo $this->getFieldId('taxvat')?>" name="<?php echo $this->getFieldName('taxvat')?>" value="<?php echo $this->htmlEscape($this->getTaxvat()) ?>" title="<?php echo "CNPJ" ?>" class="input-text<?php if ($this->isRequired()):?> required-entry<?php endif; ?>" <?php echo $this->getFieldParams() ?> />
</
div>






<
script type="text/javascript">

    
//<![CDATA[

    

    // Adicionar classe de validação de cpf e cnpj ao Taxvat

    
$('<?php echo $this->getFieldId('taxvat'); ?>').addClassName('valida-cnpj');

    
Validation.add('valida-cnpj''O CNPJ informado \xE9 invalido', function(v){return validaCnpj(v,0);});

    

    
//]]>

    
</script>
 
Magento Community Magento Community
Magento Community
Magento Community
 
danielbarbosa09
Jr. Member
 
Total Posts:  13
Joined:  2010-11-27
 

function validaCnpj(cnpj)
      
{
      
var numerosdigitossomairesultadopostamanhodigitos_iguais;
      
digitos_iguais 1;
      if (
cnpj.length 14 && cnpj.length 15)
            return 
false;
      for (
0cnpj.length 1i++)
            if (
cnpj.charAt(i) != cnpj.charAt(1))
                  
{
                  digitos_iguais 
0;
                  break;
                  
}
      
if (!digitos_iguais)
            
{
            tamanho 
cnpj.length 2
            numeros 
cnpj.substring(0,tamanho);
            
digitos cnpj.substring(tamanho);
            
soma 0;
            
pos tamanho 7;
            for (
tamanho>= 1i--)
                  
{
                  soma 
+= numeros.charAt(tamanho i) * pos--;
                  if (
pos 2)
                        
pos 9;
                  
}
            resultado 
soma 11 11 soma 11;
            if (
resultado != digitos.charAt(0))
                  return 
false;
            
tamanho tamanho 1;
            
numeros cnpj.substring(0,tamanho);
            
soma 0;
            
pos tamanho 7;
            for (
tamanho>= 1i--)
                  
{
                  soma 
+= numeros.charAt(tamanho i) * pos--;
                  if (
pos 2)
                        
pos 9;
                  
}
            resultado 
soma 11 11 soma 11;
            if (
resultado != digitos.charAt(1))
                  return 
false;
            return 
true;
            
}
      
else
            return 
false;
      
}
 
Magento Community Magento Community
Magento Community
Magento Community
 
danielbarbosa09
Jr. Member
 
Total Posts:  13
Joined:  2010-11-27
 

Tax vat cpf e cnpj juntos

<?php
/**
 * Magento
 *
 * NOTICE OF LICENSE
 *
 * This source file is subject to the Academic Free License (AFL 3.0)
 * that is bundled with this package in the file LICENSE_AFL.txt.
 * It is also available through the world-wide-web at this URL:
 * http://opensource.org/licenses/afl-3.0.php
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@magentocommerce.com so we can send you a copy immediately.
 *
 * DISCLAIMER
 *
 * Do not edit or add to this file if you wish to upgrade Magento to newer
 * versions in the future. If you wish to customize Magento for your
 * needs please refer to http://www.magentocommerce.com for more information.
 *
 * @category    design
 * @package     base_default
 * @copyright   Copyright (c) 2010 Magento Inc. (http://www.magentocommerce.com)
 * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
 */
?>
<label for=\"<?php echo $this->getFieldId(\'taxvat\')?>\"<?php if ($this->isRequired()) echo \' class=\"required\"\' ?>><?php if ($this->isRequired()) echo \'<em>*</em>\' ?><?php echo \"CPF / CNPJ\"?></label>
<
div class=\"input-box\">
    <
input type=\"text\" id=\"<?php echo $this->getFieldId(\'taxvat\')?>\" name=\"<?php echo $this->getFieldName(\'taxvat\')?>\" value=\"<?php echo $this->htmlEscape($this->getTaxvat()) ?>\" title=\"<?php echo \"CPF CNPJ\";?>\" class=\"input-text<?php if ($this->isRequired()):?> required-entry<?php endif; ?>\" <?php echo $this->getFieldParams() ?> />
</
div>






<
script type=\"text/javascript\">

    
//<![CDATA[

    

    // Adicionar classe de validação de cpf e cnpj ao Taxvat

    
$(\'<?php echo $this->getFieldId(\'taxvat\'); ?>\').addClassName(\'validar_cpf\');

    
Validation.add(\'validar_cpf\'\'O CPF ou CNPJ informado \\xE9 invalido\', function(v){return validaCPF(v,0);});

    

    
//]]>

    
</script>
 
Magento Community Magento Community
Magento Community
Magento Community
 
danielbarbosa09
Jr. Member
 
Total Posts:  13
Joined:  2010-11-27
 

CPF CNPJ MAGENTO DOWNLOAD

 
Magento Community Magento Community
Magento Community
Magento Community
 
netobasilio
Jr. Member
 
Avatar
Total Posts:  1
Joined:  2011-05-19
 

Legal!

Segue abaixo um link para fazer máscara do cpf ou cnpj e deixar mais legal a validação.

http://emersonbarros.wordpress.com/2009/10/28/mascara-cpfcnpj-em-javascript/

A função js pode ser inserida também no validation.js do magento.

Sucesso!!!

 
Magento Community Magento Community
Magento Community
Magento Community
 
lgdesigner
Sr. Member
 
Avatar
Total Posts:  102
Joined:  2010-09-14
 

Muito bom Daniel,
Só corrigindo um erro! Não se pode ter a tag <script type="text/javascript\"></script> dentro do arquivo validation.js.

 
Magento Community Magento Community
Magento Community
Magento Community
 
wilsoncortez
Jr. Member
 
Total Posts:  9
Joined:  2008-07-29
 

Olá Pessoal

Tentando muito por aqui implementar essa validação.

percorri vários tópicos semelhantes, mas simplesmente não consigo.

Ou o botão do “prosseguir” congela, ou não valida o campo.

Alguma luz?

Obrigado.

 
Magento Community Magento Community
Magento Community
Magento Community
 
wilsoncortez
Jr. Member
 
Total Posts:  9
Joined:  2008-07-29
 

Olá

Alguém por aqui? grin

 
Magento Community Magento Community
Magento Community
Magento Community
 
marcolang
Jr. Member
 
Total Posts:  13
Joined:  2011-04-25
 

Meu botão de Prosseguir também não estava funcionando. O erro que eu cometi foi apagar o código…

['validate-ssn''Please enter a valid social security number. For example 123-45-6789.', function(v{
 
return Validation.get('IsEmpty').test(v) || /^\d{3}-?\d{2}-?\d{4}$/.test(v);
             
}],

o código de validação de CPF e CNPJ deve ser colocado abaixo dele e não em seu lugar.

 
Magento Community Magento Community
Magento Community
Magento Community
 
laizay
Jr. Member
 
Total Posts:  4
Joined:  2012-03-23
 

Daniel, Pessoal,

alguém conseguiu configurar essa validação de CPF no Magento 1.6.2?

Já tentei diversos códigos e fóruns, mas o máximo que consigo chegar é no primeiro alert do CPF inválido. Mas se o usuário insistir em colocar um CPF errado (ex.: 111111111111), o site acaba deixando.

Alguém poderia me dar uma luz?

Valeu!

 
Magento Community Magento Community
Magento Community
Magento Community
 
laizay
Jr. Member
 
Total Posts:  4
Joined:  2012-03-23
 

Pessoal,

consegui, finalmente.
Pf ignorem o meu post anterior.

Era problema de cache (ridículo, não?).

 
Magento Community Magento Community
Magento Community
Magento Community
 
upwebstore
Jr. Member
 
Total Posts:  29
Joined:  2012-09-19
 
laizay - 22 May 2012 05:45 PM

Pessoal,

consegui, finalmente.
Pf ignorem o meu post anterior.

Era problema de cache (ridículo, não?).

Ola Laizay, estou tendo o mesmo problema que o teu.... ele aceita qualquer valor, tanto para RG quanto para o CPF
como conseguiu arrumar?

existe alguma outra forma de validar se o CPF ou RG ja estao cadastrados no banco?

vlw a força ai galera…

 
Magento Community Magento Community
Magento Community
Magento Community
Magento Community
Magento Community
Back to top