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

Page 1 of 3
busca de endereço por CEP
 
Diogo Cunha
Jr. Member
 
Avatar
Total Posts:  3
Joined:  2009-02-10
 

Olá a todos

Estou querendo fazer uma implementação no modulo custumer do magento para que na hora que seja feito um novo cadastro o usuário digite seu cep e ja traga o endereço do cidadão.

no entanto não encontrei nada na rede que podesse auxiliar nesse momento.

Então gostaria de uma ajuda da comunidade nessa implementação que acredito ser muito util para todos.

Abraços.

 
Magento Community Magento Community
Magento Community
Magento Community
 
tubadc
Sr. Member
 
Total Posts:  95
Joined:  2008-05-07
Floripa | BR
 

Boa noite, MIB o arquivo postado eh apenas um txt de uma atualização de algum script… smile

Porém a algum tempo desenvolvi para o site da empresa isso, mas o correios mudou o tipo de serviço ficando impossível fazer tal busca direto no site… não sei se hj em dia eles desbloquearam mas acho dificil… hj eles “deixam” soh fazer a busca por tarifa mas a de cep realmente não sei se dah… de qualuqer jeito eu tenho um banco de dados de maio de 2008 de ceps e logradouros e estou fazendo o módulo com base própria… a base tem em torno de 350mb… +- 1.000.000 de logradouros… eh praticamente 98% de todo endereço no BRasil acredito que nos próximos 20 dias tenho ela pronto e posto pra raça ae…

Abs

 
Magento Community Magento Community
Magento Community
Magento Community
 
tubadc
Sr. Member
 
Total Posts:  95
Joined:  2008-05-07
Floripa | BR
 

ele é um sql, o.0, jah mas vou tentar enxugar o máximo possível… abs e vlw

 
Magento Community Magento Community
Magento Community
Magento Community
 
pipapublicidade
Member
 
Total Posts:  50
Joined:  2008-12-08
 

Alguém está trabalhando nesse módulo? não encontrei nada a respeito pela web.

Dica: Alguns servidores como o da kinghost disponibilizam um link para o preenchimento do endereço através do cep com limitação diária de consultas.

 
Magento Community Magento Community
Magento Community
Magento Community
 
lecomelli
Jr. Member
 
Total Posts:  1
Joined:  2009-06-18
 

Boa noite a todos,

achei esse site http://www.republicavirtual.com.br/cep/
lá existe um serviço gratuito para busca de CEP.
tambem disponibiliza o script pra criação da base.
sou desenvolvedor java a alguns tempo, mais ainda estou um pouco perdido com o php e a modularização do magento.
De qualquer maneira estou lendo bastante coisa e espero ter o modulo pronto.
Se alguem ja tiver começado alguma coisa e quiser passar para eu continuar fico muito grato.

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

Nenhuma novidade pessoal?

Esse republicavirtual funciona direitinho, ninguem manja de PHP pra implemetar no Magento?

Eles disponibilizam também o banco com os ceps…

Att.

 
Magento Community Magento Community
Magento Community
Magento Community
 
Cawe
Sr. Member
 
Total Posts:  109
Joined:  2009-09-11
 

Alguma novidade nessa implementação?

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

Olhem esse módulo:
http://www.magentocommerce.com/extension/2277/asperience-addressautocomplete

Show de bola.

 
Magento Community Magento Community
Magento Community
Magento Community
 
Cawe
Sr. Member
 
Total Posts:  109
Joined:  2009-09-11
 

Testado? Funcionou com nossos CEPs?

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

Logico que nao, ele é feito para a frança.

 
Magento Community Magento Community
Magento Community
Magento Community
 
Cawe
Sr. Member
 
Total Posts:  109
Joined:  2009-09-11
 

Achei que tinha portado.

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

So coloquei o modulo para quem entende poder ter uma base.

 
Magento Community Magento Community
Magento Community
Magento Community
 
suricate
Sr. Member
 
Avatar
Total Posts:  129
Joined:  2009-06-25
Brazil
 

Eu tinha feito funcionar na minha loja quando estava na Locaweb pois lá eles tem uma base pros clientes, porem mudei de provedor e perdi essa facilidade deles, mas posto o código que fazia a consulta abaixo. esse script que busca os dados, mas é preciso editar as páginas onde quiser que chame ele e preencha os dados com js.
lógico que esse código é pra quem tá na Locaweb, mas acho que tá facil de adaptar pro republicavirtual

CRIE O arquivo buscacep.php:

<?
///////////////////////////////////////////////////
//
// Consulta de CEP usando AJAX com componente da Locaweb
//
// 
// 
// baseado no script de: chiper e Rafael Amorim - wwww.rafaelamorim.com
// modificado para uso na Locaweb
///////////////////////////////////////////////////

      
$gmtDate gmdate("D, d M Y H:i:s");
      
header("Expires: {$gmtDate} GMT");
      
header("Last-Modified: {$gmtDate} GMT");
      
header("Cache-Control: no-cache, must-revalidate");
      
header("Pragma: no-cache");
      
header("Content-Type: text/html; charset=iso-8859-1");
      
extract($_GET);
      
$n_cep=addslashes($cep);

function 
busca_cep($cep){  
    $resultado 
file_get_contents('http://comercio.locaweb.com.br/correios/calcula_sedex.asp?cepDest='.urlencode($cep).'&tipoRetorno;=string');  
    if(!
$resultado){  
        $resultado 
"&resultado;=0&resultado;_txt=erro+ao+buscar+cep";  
    
}  
    parse_str
($resultado$retorno);   
    return 
$retorno;  
}  
     
   
//Vamos buscar o CEP
   
$resultado_busca busca_cep($n_cep);  

     if (
$resultado_busca['erro_descricao'== NULL {
 
switch ( $resultado_busca['uf'){
case "AC":
$estado "1"
break;
case 
"AL":
$estado "2"
break;
case 
"AM":
$estado "3"
break;
case 
"AP":
$estado "4"
break;
case 
"BA":
$estado "5"
break;
case 
"CE":
$estado "6"
break;
case 
"DF":
$estado "7"
break;
case 
"ES":
$estado "8"
break;
case 
"FN":
$estado "9"
break;
case 
"GO":
$estado "10"
break;
case 
"MA":
$estado "11"
break;
case 
"MG":
$estado "12"
break;
case 
"MS":
$estado "13"
break;
case 
"MT":
$estado "14"
break;
case 
"PA":
$estado "15"
break;
case 
"PB":
$estado "16"
break;
case 
"PE":
$estado "17"
break;
case 
"PI":
$estado "18"
break;
case 
"PR":
$estado "19"
break;
case 
"RJ":
$estado "20"
break;
case 
"RN":
$estado "21"
break;
case 
"RO":
$estado "22"
break;
case 
"RR":
$estado "23"
break;
case 
"RS":
$estado "24"
break;
case 
"SC":
$estado "25"
break;
case 
"SE":
$estado "26"
break;
case 
"SP":
$estado "27"
break;
case 
"TO":
$estado "28"
break;
}   
         
$texto 
=  $resultado_busca['endereco'].":".$resultado_busca['bairro'].":".str_replace(" ""+"$resultado_busca['cidade']).":".$estado.";";  

echo 
$texto}

else {
    $texto 
false;
    echo 
$texto;}
?>

E no arquivo que voce quiser que ele busque o cep use (talvez precisem modificar para seu caso, pois no meu usei o campo street_4 para o bairro:COLOQUE ESSE CODIGO JAVASCRIPT NO INICIO DO ARQUIVO.. EXEMPLO DO REGISTER.PHTML

<script type="text/javascript">
//busca CEP
function XMLHTTPRequest() {
  
try {
    
return new XMLHttpRequest(); // FF, Safari, Konqueror, Opera, ...
  
catch(ee{
    
try {
      
return new ActiveXObject("Msxml2.XMLHTTP"); // activeX (IE5.5+/MSXML2+)
    
catch(e{
      
try {
        
return new ActiveXObject("Microsoft.XMLHTTP"); // activeX (IE5+/MSXML1)
      
catch(E{
        
return false// doesn't support
      
}
    }
  }
}

function buscarEndereco() {
var campos {
  
  postcode
document.getElementById('zip'),
  
street_1document.getElementById('street_1'),
  
street_4document.getElementById('street_4'),
  
citydocument.getElementById('city'),
  
regiondocument.getElementById('region_id')
};

var 
ajax XMLHTTPRequest();
ajax.open('GET', ('https://SEUSITE.com.br/CAMINHO/buscacep.php?cep=' campos.postcode.value.replace(/\+/g'')), true);

  
ajax.onreadystatechange = function() {
  
if (ajax.readyState == 1{
  campos
.street_1.disabled true;
  
campos.street_1.value "carregando...";
  
campos.street_4.disabled true;
  
campos.city.disabled true;
  
campos.street_4.value "carregando...";
  
campos.region.disabled true;
  
campos.city.value "carregando...";
  
else if (ajax.readyState == 4{
  
if(ajax.responseText == false){
    campos
.street_1.disabled false;
    
campos.street_1.value "CEP nao Localizado,confira o CEP e Digite seu endereco...";
    
campos.street_4.disabled false;
    
campos.city.disabled false;
    
campos.street_4.value "";
    
campos.region.disabled false;
    
campos.city.value "";
  
}else{
    
var ajax.responseTextistreet_1street_4regioncity;
    
street_1 r.substring(0, (r.indexOf(':')));
    
campos.street_1.disabled false;
    
campos.street_1.value unescape(street_1.replace(/\+/g," "));
    
r.substring(++i);
    
street_4 r.substring(0, (r.indexOf(':')));
    
campos.street_4.disabled false;
    
campos.street_4.value unescape(street_4.replace(/\+/g," "));
    
r.substring(++i);
    
city r.substring(0, (r.indexOf(':')));
    
campos.city.disabled false;
    
campos.city.value unescape(city.replace(/\+/g," "));
    
r.substring(++i);
    
region r.substring(0, (r.indexOf(';')));
    
campos.region.disabled false;
    
campos.region.value unescape(region.replace(/\+/g," "));
     
};
  
};
};
ajax.send(null);
};
</script>

AINDA NO register.phtml (não testei no onepage checkout), localize a parte do campo cep conforme abaixo e adicione o onblur="[removed]buscarEndereco(this);" para chamar o js acima

<label for="zip"><?php echo $this->__('Zip/Postal Code'?> <span class="required">*</span></label><br/>
                    <
input type="text" name="postcode" value="<?php echo $this->htmlEscape($this->getFormData()->getPostcode()) ?>" title="<?php echo $this->__('Zip/Postal Code') ?>" id="zip" onblur="[removed]buscarEndereco(this);" class="validate-zip-international required-entry input-text" />

Agora esse da França parece ser bem mais legal e pega da base de dados, porem o problema é conseguir uma base atualizada pois os correios cobram muito caro pela base…

Abraços,

 
Magento Community Magento Community
Magento Community
Magento Community
 
suricate
Sr. Member
 
Avatar
Total Posts:  129
Joined:  2009-06-25
Brazil
 

detalhe, o forum aqui removeu do código acima o termo javascript < ok? tudo junto no onblur javascript etc etc corrijam ao copiar colar

 
Magento Community Magento Community
Magento Community
Magento Community
 
suricate
Sr. Member
 
Avatar
Total Posts:  129
Joined:  2009-06-25
Brazil
 

Prontinho pessoal..

já adaptei para o republica virtual! segue:

<?
///////////////////////////////////////////////////
//
// Consulta de CEP usando AJAX para o republica virtual e magento
//
// Adaptado por: Fernando Oléa - Visite meu site: www.suricate.com.br
// 
// baseado no script da Locaweb e do site republicavirtual
// 
///////////////////////////////////////////////////

      
$gmtDate gmdate("D, d M Y H:i:s");
      
header("Expires: {$gmtDate} GMT");
      
header("Last-Modified: {$gmtDate} GMT");
      
header("Cache-Control: no-cache, must-revalidate");
      
header("Pragma: no-cache");
      
header("Content-Type: text/html; charset=iso-8859-1");
      
extract($_GET);
      
$n_cep=addslashes($cep);

function 
busca_cep($cep){  
    $resultado 
file_get_contents('http://republicavirtual.com.br/web_cep.php?cep='.urlencode($cep).'&formato;=query_string');  
    if(!
$resultado){  
        $resultado 
"&resultado;=0&resultado;_txt=erro+ao+buscar+cep";  
    
}  
    parse_str
($resultado$retorno);   
    return 
$retorno;  
}  
     
   
//Vamos buscar o CEP
   
$resultado_busca busca_cep($n_cep);  

     if (
$resultado_busca['erro_descricao'== NULL {
 
switch ( $resultado_busca['uf'){
case "AC":
$estado 1;
break;
case 
"AL":
$estado 2;
break;
case 
"AM":
$estado 3;
break;
case 
"AP":
$estado 4;
break;
case 
"BA":
$estado 5;
break;
case 
"CE":
$estado 6;
break;
case 
"DF":
$estado 7;
break;
case 
"ES":
$estado 8;
break;
case 
"FN":
$estado 9;
break;
case 
"GO":
$estado 10;
break;
case 
"MA":
$estado 11;
break;
case 
"MG":
$estado 12;
break;
case 
"MS":
$estado 13;
break;
case 
"MT":
$estado 14;
break;
case 
"PA":
$estado 15;
break;
case 
"PB":
$estado 16;
break;
case 
"PE":
$estado 17;
break;
case 
"PI":
$estado 18;
break;
case 
"PR":
$estado 19;
break;
case 
"RJ":
$estado 20;
break;
case 
"RN":
$estado 21;
break;
case 
"RO":
$estado 22;
break;
case 
"RR":
$estado 23;
break;
case 
"RS":
$estado 24;
break;
case 
"SC":
$estado 25;
break;
case 
"SE":
$estado 26;
break;
case 
"SP":
$estado 27;
break;
case 
"TO":
$estado 28;
break;
}   

//////Fernando
 
switch($resultado_busca['resultado']){  
     
case '2':  
         
$texto "+:+:+:".$resultado_busca['cidade'].":".$estado.";";
     break;  
       
     case 
'1':  
         
$texto $resultado_busca['tipo_logradouro']." ".$resultado_busca['logradouro'].":".$resultado_busca['bairro'].":".$resultado_busca['cidade'].":".$estado.";";
     break;  
       
     default:  
         
$texto "Falha ao buscar cep: ".$resultado_busca['resultado'];  
     break;  
 


         
//$texto =  $resultado_busca['endereco'].":".$resultado_busca['bairro'].":".str_replace(" ", "+", $resultado_busca['cidade']).":".$estado.";";  
//////Fernando
echo $texto}

else {
    $texto 
false;
    echo 
$texto;}
?>
 
Magento Community Magento Community
Magento Community
Magento Community
 
Eric Cavalcanti
Guru
 
Avatar
Total Posts:  710
Joined:  2008-09-28
San Antonio
 

Suricate, que mal pergunte, oq é republica virtual?

Eu tinha te mandado uma MP, vc nunca me respondeu.

Edit:
Explica melhor como fazer a instalação.

 
Magento Community Magento Community
Magento Community
Magento Community
Magento Community
Magento Community
Back to top
Page 1 of 3