Magento Forum

   
How to: Adicionar validação de CPF no checkout One Page
 
FabioJardim
Jr. Member
 
Total Posts:  2
Joined:  2009-10-29
 

Boa tarde a todos.

Eu coloquei a validação e não funcionou, mas como funcionou para a maioria, vou tentar até funcionar.
O que eu gostaria de ter uma luz é de como posso bloquear CPF duplicados mesmo. O Magento já valida o email duplicado.

Alguém sabe??
Obrigado.

 
Magento Community Magento Community
Magento Community
Magento Community
 
Eric Cavalcanti
Guru
 
Avatar
Total Posts:  707
Joined:  2008-09-28
San Antonio
 

Suricate, muito bom.
Funciona direitinho o cnpj, era oq estava precisando.
:D

 
Magento Community Magento Community
Magento Community
Magento Community
 
moverissimo
Jr. Member
 
Total Posts:  2
Joined:  2008-11-25
 


Uma forma simples de validação de do Campo CPF feito pela utilização do campo TaXVat é colocar uma função javaScript de validação no arquivo que cadastra a conta do usuário o caminho é

/app/design/frontend/default/default/template/customer/widget

sendo que default é o nome do template. 
Eu coloquei um script java no inicio do arquivo e no campo de inserir o CPF coloquei uma rotina que chama o javascript como segue na linha abaixo :

<div class="col-2">
<input type="text" id="<?php echo $this->getFieldId('taxvat')?>” name="<?php echo $this->getFieldName('taxvat')?>” value="<?php echo $this->htmlEscape($this->getTaxvat()) ?>” class="<?php if ($this->isRequired()):?>required-entry<?php endif?> input-text” <?php echo $this->getFieldParams() ?> onblur="[removed]validaCPF(this);">

segue em anexo o arquivo taxvat.phtml que utilizei, não é necessário mais nada.

abraços.

Mauricio Verissimo.
contato@mktinfo.com.br
http://www.mkinfo.com.br

File Attachments
taxvat.phtml  (File Size: 6KB - Downloads: 341)
taxvat.phtml  (File Size: 6KB - Downloads: 235)
 
Magento Community Magento Community
Magento Community
Magento Community
 
moverissimo
Jr. Member
 
Total Posts:  2
Joined:  2008-11-25
 


Utilizando o campo TaXVat coloquei uma função javaScript de validação de CPF

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

sendo que default é o nome do template. 

Coloquei um javascipt no inicio do arquivo chamado ValidaCPF()
E no Imput text do campo de inserir o CPF chamei esta rotina.

<div class="col-2">
<input type="text" id="<?php echo $this->getFieldId('taxvat')?>” name="<?php echo $this->getFieldName('taxvat')?>” value="<?php echo $this->htmlEscape($this->getTaxvat()) ?>” class="<?php if ($this->isRequired()):?>required-entry<?php endif?> input-text” <?php echo $this->getFieldParams() ?> onblur="validaCPF(this);">

segue em anexo o arquivo taxvat.phtml que utilizei, não é necessário mais nada.

<script language="JavaScript">
 function 
validaCPF(cpf)   
{   
  erro 
= new String;   
  
    if (
cpf.value.length == 11)   
    
{     
            cpf
.value cpf.value.replace('.''');   
            
cpf.value cpf.value.replace('.''');   
            
cpf.value cpf.value.replace('-''');   
  
            var 
nonNumbers = /\D/;   
       
            if (
nonNumbers.test(cpf.value))   
            
{   
                    erro 
"A verificacao de CPF suporta apenas números!";   
            
}   
            
else   
            
{   
                    
if (cpf.value == "00000000000" ||   
                            
cpf.value == "11111111111" ||   
                            
cpf.value == "22222222222" ||   
                            
cpf.value == "33333333333" ||   
                            
cpf.value == "44444444444" ||   
                            
cpf.value == "55555555555" ||   
                            
cpf.value == "66666666666" ||   
                            
cpf.value == "77777777777" ||   
                            
cpf.value == "88888888888" ||   
                            
cpf.value == "99999999999"{   
                               
                            erro 
"Por favor, digite seu CPF corretamente."   
                    
}   
       
                    
var [];   
                    var 
= new Number;   
                    var 
11;   
  
                    for (
i=0i<11i++){   
                            a[i] 
cpf.value.charAt(i);   
                            if (
9+= (a[i] * --c);   
                    
}   
       
                    
if ((11) < 2{ a[9] 0 } else { a[9] 11-x }   
                    b 
0;   
                    
11;   
       
                    for (
y=0y<10y++) += (a[y] c--);   
       
                    if ((
11) < 2{ a[10] 0else { a[10] 11-x}   
       
                    
if ((cpf.value.charAt(9) != a[9]) || (cpf.value.charAt(10) != a[10])) {   
                        erro 
"Por favor, digite seu CPF corretamente.";   
                    
}   
            }   
    }   
    
else   
    
{   
        
if(cpf.value.length == 0)   
            return 
false   
        
else   
            
erro "Por favor, digite seu CPF corretamente.";   
    
}   
    
if (erro.length 0{   
            alert(erro)
;   
            
cpf.focus();   
            return 
false;   
    
}     
    
return true;       
}   
  
//envento onkeyup   
function maskCPF(<?php echo $this->getFieldName('taxvat')?>{   
    
var evt window.event;   
    
kcode=evt.keyCode;   
    if (
kcode == 8) return;   
    if (
CPF.value.length == 3{ CPF.value CPF.value '.'}   
    
if (CPF.value.length == 7{ CPF.value CPF.value '.'}   
    
if (CPF.value.length == 11{ CPF.value CPF.value '-'}   
}   
  
// evento onBlur   
function formataCPF(<?php echo $this->getFieldName('taxvat')?>)   
{   
    with 
(<?php echo $this->getFieldName('taxvat')?>)   
    
{   
        value 
value.substr(03) + '.' +   
                
value.substr(33) + '.' +   
                
value.substr(63) + '-' +   
                
value.substr(92);   
    
}   
}   
function retiraFormatacao(CPF)   
{   
    with 
(<?php echo $this->getFieldName('taxvat')?>)   
    
{   
        value 
value.replace (".","");   
        
value value.replace (".","");   
        
value value.replace ("-","");   
        
value value.replace ("/","");   
    
}   
}  

</script>

<?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     default_iphone
 * @copyright   Copyright (c) 2009 Irubin Consulting Inc. DBA Varien (http://www.varien.com)
 * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
 */
?>

<div class="col2-alt-set">
    <
div class="col-1">
        <
label for="<?php echo $this->getFieldId('taxvat')?>">
            
<?php echo $this->__('Tax/VAT number'?>
            <?php 
if ($this->isRequired()):?><span class="required">*</span><?php endif ?>
        
</label>
    </
div>
    <
div class="col-2">
        <
input type="text" id="<?php echo $this->getFieldId('taxvat')?>" name="<?php echo $this->getFieldName('taxvat')?>" value="<?php echo $this->htmlEscape($this->getTaxvat()) ?>" class="<?php if ($this->isRequired()):?>required-entry<?php endif?> input-text" <?php echo $this->getFieldParams() ?> onblur="[removed]validaCPF(this);">   
    </
div>
    <
div class="clear"></div>
</
div>

abraços.

Mauricio Verissimo.
http://www.mktinfo.com.br

File Attachments
taxvat.phtml  (File Size: 6KB - Downloads: 220)
taxvat.phtml  (File Size: 6KB - Downloads: 246)
 
Magento Community Magento Community
Magento Community
Magento Community
 
agenciamaisbrasil
Jr. Member
 
Total Posts:  4
Joined:  2010-04-05
 

Muito bom Maurício, Parabéns aew, funciona muito bem. vlw

 
Magento Community Magento Community
Magento Community
Magento Community
 
DaKe
Member
 
Avatar
Total Posts:  41
Joined:  2008-04-01
São Paulo - Brazil
 

Fiz o procedimento mas nahora de criar uma nova conta depois do carrinho não funciona.

Também tentei o procedimento de validar o endereço pelo CEP e não funcionou, ambos tem a tal função “onblur”, será
que possa ter algo no meu server que precise ser habilitado?

Ambos fiz o procedimento certinho…
Alguma dica?

Abraço!

 
Magento Community Magento Community
Magento Community
Magento Community
 
Édipo Costa Rebouças
Jr. Member
 
Total Posts:  16
Joined:  2010-04-12
 
Alexandre Queiróz - 05 February 2009 05:10 PM

Jonathan Moratelli - 30 January 2009 08:17 AM
Fiz a validação e está funcionando corretamente.

Funciona em todos os locais onde o campo TAXVAT, não é necessário ficar adicionando em várias páginas.

Segue abaixo o que eu fiz:

Arquivo: magento/app/design/frontend/<<<default>>>/<<<default>>>/layout/page.xml

Adicione as linhas abaixo
<action method="addJs"><script><<<suaempresa>>>/validacao.js</script></action>



Arquivo: magento/app/design/frontend/<<<default>>>/<<<default>>>/template/customer/widget/taxvat.phtml

No final do arquivo adicione:
<script type="text/javascript">
//<![CDATA[
    
//   Adicionar classe de validação de cpf ao Taxvat
    
$('<? echo $this->getFieldId('taxvat'); ?>').addClassName('validar_cpf');
    
Validation.add('validar_cpf''O CPF informado \xE9 invalido', function(v){return validaCPF(v);});
    
//]]>
</script>

Crie o arquivo: magento/js/<<<suaempresa>>>/validacao.js

/*
*
*    Funções de validação customizadas
*    Data da Criação: 30/01/2009
*    Jonathan Moratelli de Carvalho
*    Versão: 0.1
*
*/


function validaCPF(cpf)
{
    
if (cpf.length 11)
        return 
false;
        
    var 
nonNumbers = /\D/;
    
    if (
nonNumbers.test(cpf))
        return 
false;
        
    if (
cpf == "00000000000" || cpf == "11111111111" || cpf == "22222222222" || cpf == "33333333333" || cpf == "44444444444" || cpf == "55555555555" || cpf == "66666666666" || cpf == "77777777777" || cpf == "88888888888" || cpf == "99999999999")
        return 
false;
    
    var 
[];
    var 
= new Number;
    var 
11;
    
    for (
i=0i<11i++)
    
{
        a[i] 
cpf.charAt(i);
        if (
9)
            
+= (a[i] * --c);
    
}
    
    
if ((11) < 2)
        
a[9] 0;
    else
        
a[9] 11-x;
    
    
0;
    
11;
    
    for (
y=0y<10y++)
        
+= (a[y] c--);
        
    if ((
11) < 2)
        
a[10] 0;
    else
        
a[10] 11-x;
        
    if ((
cpf.charAt(9) != a[9]) || (cpf.charAt(10) != a[10]))
        return 
false;

    return 
true;
}


Se não esqueci de nada é isso aew!!!

Jonathan,

Testei a validação de acordo com a sua proposta e não funcionou, qualquer valor digitado passa.

Alexandre.

Referente a parte da valicação tente alterar o código de

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

Para

Validation.add('validar_cpf''O CPF informado \xE9 invalido'validaCPF);

Aque fiz um esquema um pouca mais diferente, trocando a classe de validar_cpf para validate-cpf e coloquo p código dentro do ready do javascript do meu tema.

 
Magento Community Magento Community
Magento Community
Magento Community
 
lideys
Jr. Member
 
Total Posts:  18
Joined:  2010-01-19
 

Pessoal…

Só uma dúvida, estas versões para cadastro do CPF bloqueiam os duplicados?
Pois aqui eu tenho o campo de CPF, porém posso por o mesmo CPF para vários cadastros diferentes, que no fundo não valem nada, então.

 
Magento Community Magento Community
Magento Community
Magento Community
 
danielbarbosa09
Jr. Member
 
Total Posts:  13
Joined:  2010-11-27
 

LEIAM ESTE ARTIGO. CREIO QUE PODE AJUDAR

CPF CNPJ MAGENTO

 
Magento Community Magento Community
Magento Community
Magento Community
 
eltonm
Sr. Member
 
Total Posts:  78
Joined:  2011-02-03
 
danielbarbosa09 - 02 March 2011 02:41 PM

LEIAM ESTE ARTIGO. CREIO QUE PODE AJUDAR

CPF CNPJ MAGENTO

segui os passos do artigo, mas nao funcionou aqui usando version 1.5.0.1

no artigo, tem alguns .JS files que nao tem instrucao do que fazer com eles.

instalei as mudancas no taxvat.phtml e no validations.js mas ai, quando tento cadastrar um usuario novo, trava no links the “prosseguir” entre o cadastro dos dados pessoais e a escolha do frete.

tenho a impressao que talvez eu teria que baixar os arquivos que estao no pacote em algum lugar, mas como nao entendo de java ou scripts, nao sei aonde seria esse lugar.

ajuda?

 
Magento Community Magento Community
Magento Community
Magento Community
 
Eric Cavalcanti
Guru
 
Avatar
Total Posts:  707
Joined:  2008-09-28
San Antonio
 
ehm01 - 13 April 2011 05:46 AM

danielbarbosa09 - 02 March 2011 02:41 PM
LEIAM ESTE ARTIGO. CREIO QUE PODE AJUDAR

CPF CNPJ MAGENTO

segui os passos do artigo, mas nao funcionou aqui usando version 1.5.0.1

no artigo, tem alguns .JS files que nao tem instrucao do que fazer com eles.

instalei as mudancas no taxvat.phtml e no validations.js mas ai, quando tento cadastrar um usuario novo, trava no links the “prosseguir” entre o cadastro dos dados pessoais e a escolha do frete.

tenho a impressao que talvez eu teria que baixar os arquivos que estao no pacote em algum lugar, mas como nao entendo de java ou scripts, nao sei aonde seria esse lugar.

ajuda?

Veja o tutorial aqui:
http://www.forum.magentobr.com/tutorials/article/39-adicionando-validacao-de-cpfcnpj-15x/

 
Magento Community Magento Community
Magento Community
Magento Community
 
eltonm
Sr. Member
 
Total Posts:  78
Joined:  2011-02-03
 
CajuCLC - 13 April 2011 06:53 PM

Veja o tutorial aqui:
http://www.forum.magentobr.com/tutorials/article/39-adicionando-validacao-de-cpfcnpj-15x/

cajuCLC… esta funcionando!!!  smile

legal!
Alias, muito bom o site que voce recomendou
obrigado

 
Magento Community Magento Community
Magento Community
Magento Community
 
eddieb
Sr. Member
 
Avatar
Total Posts:  87
Joined:  2008-04-17
Rio de Janeiro, Brazil
 

Vejam http://www.webgp.com.br/index.php/blog/2011/04/magento-modulo-free-para-inclusao-de-cpf-rg-cnpj-e-etc/ tb

 
Magento Community Magento Community
Magento Community
Magento Community
 
rogereza
Jr. Member
 
Total Posts:  3
Joined:  2011-12-03
 
moverissimo - 30 May 2010 02:49 AM


Uma forma simples de validação de do Campo CPF feito pela utilização do campo TaXVat é colocar uma função javaScript de validação no arquivo que cadastra a conta do usuário o caminho é

/app/design/frontend/default/default/template/customer/widget

sendo que default é o nome do template. 
Eu coloquei um script java no inicio do arquivo e no campo de inserir o CPF coloquei uma rotina que chama o javascript como segue na linha abaixo :

<div class="col-2">
<input type="text" id="<?php echo $this->getFieldId('taxvat')?>” name="<?php echo $this->getFieldName('taxvat')?>” value="<?php echo $this->htmlEscape($this->getTaxvat()) ?>” class="<?php if ($this->isRequired()):?>required-entry<?php endif?> input-text” <?php echo $this->getFieldParams() ?> onblur="[removed]validaCPF(this);">

segue em anexo o arquivo taxvat.phtml que utilizei, não é necessário mais nada.

abraços.

Mauricio Verissimo.
contato@mktinfo.com.br
http://www.mkinfo.com.br

Aqui funcionou belezinha!!!....valeu!!!!!!!!!!!!!!!!

 
Magento Community Magento Community
Magento Community
Magento Community
 
Andradefc
Jr. Member
 
Total Posts:  2
Joined:  2011-09-29
 
suricate - 29 September 2009 11:50 AM

tranquilorm - 16 September 2009 10:44 AM
Affff....eu sou uma anta mesmo...rs

Atualizei o page.xml do default invés do tema q eu tô usando...por isso q num ia!

Desculpa o transtorno aí Suricate! Vlw!!! O codigo funciona blz até mesmo no one page checkout!!!

abraços!

KKKKK
Que isso, não é transtorno nenhum..ainda bem que deu certo

Abraço

Fernando,

Estou tendo problema na implantação da validação do CNPJ e CPF na minha loja, e pesquisando verifiquei que na sua loja suricate, tem a configuração bem interessante, poderia informar onde posso adquirir o tutorial de como deixar minha loja parecida com ela.
Obrigado e sucesso!

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