Página 4 de 9
Re: [TUTORIAL] CEP automático - Auto Complete (Cadastro)
Enviado: 02 Dez 2011, 22:58
por fabioppg
thyagosouza escreveu:
Oi Fabio, ainda não consegui entender pra que serve esse código. Na hora do cadastro quando a pessoa digita o CEP, automaticamente ele completa os campos padrões do endereço?.. se for isso nao está acontecendo comigo e minha versão é 1.4.9.5
... se possivel de uma olhada no meu site para ver, que ele está com todas modificações feitas mas nao tive êxito. http://www.helpvideocursos.com.br
thyagosouza, desculpa a demora. Estou ralando muito, estou sem tempo de tirar dúvidas e compartilhar com o pessoal da comunidade. Resumindo .. Dei uma olhada em sua loja .. O problema é simples. você só NÃO fez o primeiro passo do Tutorial .. rsrs
Você precisa criar um método dentro do controle da sua página chamada: cepautomatico ..
Como identifiquei:
404 Not Found: "Página não foi encontrada." A página que não foi encontrada, é exatamente o retorno do cep.
Põe lá que irá funcionar .. Observe este tópico, pois o pessoal da comunidade estão melhorando cada vez mais o cep automático. Desde que lancei aqui a primeira versão eles ajudaram muito à corrigir alguns bugs que encontrados..
Forte abraço, boas vendas !!!
Re: [TUTORIAL] CEP automático - Auto Complete (Cadastro)
Enviado: 16 Dez 2011, 12:34
por Renato Frota
observe que ele diz "antes do ultimo } ?"
ou seja, antes da ultima chave também...
tentem aí. se não der, me avisem.
Re: [TUTORIAL] CEP automático - Auto Complete (Cadastro)
Enviado: 16 Dez 2011, 20:19
por Davi
Renato Frota escreveu:observe que ele diz "antes do ultimo } ?"
ou seja, antes da ultima chave também...
tentem aí. se não der, me avisem.
Estava dando erro de sintaxe, fiz o que o Renato disse colocar antes da }, eu estava colocando só antes do "?"
Não deu mais o erro, a pagina carrego normalmente, porem ao colocar o CEP nada mudou!
Alguem fez com o vQmod ?
Re: [TUTORIAL] CEP automático - Auto Complete (Cadastro)
Enviado: 20 Dez 2011, 13:43
por juarez321
Boa tarde Pessoal, eu estou tentando colocar esse codigo no OC149 e não consegui, alguem poderia me dizer exatamente eu colocarias os codigos, tipo, apos a linha xxxxxx, eu não sei onde começa e onde terminha uma class.
eu estou pra comocar uma loja no ar e acho esse recorso muito legal pra o cliente.
um abraço e obrigado a quem poder me ajudar
quem quizer pode dar uma olhada na loja
www.eletronicamatias.com.br/149
Re: [TUTORIAL] CEP automático - Auto Complete (Cadastro)
Enviado: 27 Dez 2011, 17:09
por kt666
Parabéns pelo módulo viu?
Eu estava tentando criar um vqmod dele, mas meus conhecimentos não foram suficientes, não sai do lugar e resolvi por o código na unha mesmo.
Re: [TUTORIAL] CEP automático - Auto Complete (Cadastro)
Enviado: 28 Dez 2011, 10:03
por caneto
Fiz o Vqmod.
A rotina ainda não deu para testar pois o firewall do meu trabalho bloqueou o link.
Para rodar precisa ter instalado o VQmod na versão 2.15 de preferencia, é o que tenho. e copiar o contendo abaixo e criar no diretorio XML um arquivo (CEPAutomatic.xml) e colar e salvar.
Código: Selecionar todos<modification>
<id>CEP Automatico</id>
<version>1.0.0</version>
<vqmver>2.1.5</vqmver>
<author>Caneto</author>
<file name="catalog/controller/account/register.php">
<operation>
<search position="before"><![CDATA[public function zone() {]]></search>
<add><![CDATA[
// Inicio - WebService - Cep Automatico
public function cepautomatico(){
if (isset($this->request->get['cep'])){
$output = @file_get_contents('http://republicavirtual.com.br/web_cep.php?cep='.urlencode($this->request->get['cep']).'&formato=json');
$endereco=json_decode($output);//IMPORTANTE o OpenCart trata o array como uma classe!! ( nao sabia disso rsrs)
$this->load->model('localisation/zone');//carrega o modelo que trata as zones.
//IMPORTANTE metodo abaixo eu criei...codigo no bloco abaixo, 30 e o id do pais( CONFIRAM SE 30 E O BRASIL PARA VOCES), e o uf e o que vem nao precisa mexer
$results = $this->model_localisation_zone->getZonesByCountryIdAndCode(30,$endereco->uf);
$endereco->uf=$results['zone_id'];//troca o uf pelo zone_id
$output=json_encode($endereco);//encode pro retorno
$this->response->setOutput(utf8_encode($output), $this->config->get('config_compression'));//ja inclui o utf8 pra acentuacao...
}
}
// Fim - WebService - Cep automatico
]]></add>
</operation>
</file>
<file name="catalog/view/theme/default/template/account/register.tpl">
<operation>
<search position="before" ><![CDATA[<?php echo $footer; ?>]]></search>
<add><![CDATA[
<script type="text/javascript">
$(function(){
$('input[name="postcode"]').blur(function(){
//$('#carregando_cep').show(); essa linha e por que coloquei uma imagem de um gif do lado campo para mostrar quando atualizar...
var cep = $.trim($('input[name="postcode"]').val().replace('-', ''));
$.get('index.php?route=account/register/cepautomatico',{cep: cep},function(endereco){
var obj = $.parseJSON(endereco)// passei para json entao aqui faz o parse e cria o objeto (obj)
var uf = obj.uf;
var bairro = obj.bairro;
var cidade = obj.cidade;
var endereco = obj.tipo_logradouro+" "+obj.logradouro;
var res = obj.resultado;
if(res){
$('input[name="address_1"]').val(endereco); // preenche o campo endereco 1 com o endereco
$('input[name="city"]').val(cidade); // preenche o campo cidade
$('input[name="address_2"]').val(bairro); // preenche o campo emdereco 2 com o bairro
$('select[name="zone_id"]').val(uf); //preenche o estado com o ID zone (estado)
}
});
//$('#carregando_cep').hide(); esconder a imagem de loading
});
});
</script>
]]></add>
</operation>
</file>
<file name="catalog/model/localisation/zone.php">
<operation>
<search position="before"><![CDATA[public function getZonesByCountryId($country_id) {]]></search>
<add><![CDATA[
public function getZonesByCountryIdAndCode($country_id,$code) {
$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "zone WHERE country_id = '" . (int)$country_id . "' AND code= '" . $code . "' AND status = '1' ORDER BY name LIMIT 1");
return $query->row;
}
]]></add>
</operation>
</file>
</modification>
Re: [TUTORIAL] CEP automático - Auto Complete (Cadastro)
Enviado: 17 Jan 2012, 00:08
por hmarchiori
Galera,
meu servidor é Windows, e o file_get_contents é desabilitado por segurança.
Alguem saberia "traduzir" a parte do código que usa o file_get_contents em cUrl?
Li vários artigos na net que dizem que a forma de contornar seria cUrl, mas não sei como fazer.
Valeu!
Re: [TUTORIAL] CEP automático - Auto Complete (Cadastro)
Enviado: 17 Jan 2012, 12:41
por Davi
caneto escreveu:Fiz o Vqmod.
A rotina ainda não deu para testar pois o firewall do meu trabalho bloqueou o link.
Para rodar precisa ter instalado o VQmod na versão 2.15 de preferencia, é o que tenho. e copiar o contendo abaixo e criar no diretorio XML um arquivo (CEPAutomatic.xml) e colar e salvar.
Código: Selecionar todos<modification>
<id>CEP Automatico</id>
<version>1.0.0</version>
<vqmver>2.1.5</vqmver>
<author>Caneto</author>
<file name="catalog/controller/account/register.php">
<operation>
<search position="before"><![CDATA[public function zone() {]]></search>
<add><![CDATA[
// Inicio - WebService - Cep Automatico
public function cepautomatico(){
if (isset($this->request->get['cep'])){
$output = @file_get_contents('http://republicavirtual.com.br/web_cep.php?cep='.urlencode($this->request->get['cep']).'&formato=json');
$endereco=json_decode($output);//IMPORTANTE o OpenCart trata o array como uma classe!! ( nao sabia disso rsrs)
$this->load->model('localisation/zone');//carrega o modelo que trata as zones.
//IMPORTANTE metodo abaixo eu criei...codigo no bloco abaixo, 30 e o id do pais( CONFIRAM SE 30 E O BRASIL PARA VOCES), e o uf e o que vem nao precisa mexer
$results = $this->model_localisation_zone->getZonesByCountryIdAndCode(30,$endereco->uf);
$endereco->uf=$results['zone_id'];//troca o uf pelo zone_id
$output=json_encode($endereco);//encode pro retorno
$this->response->setOutput(utf8_encode($output), $this->config->get('config_compression'));//ja inclui o utf8 pra acentuacao...
}
}
// Fim - WebService - Cep automatico
]]></add>
</operation>
</file>
<file name="catalog/view/theme/default/template/account/register.tpl">
<operation>
<search position="before" ><![CDATA[<?php echo $footer; ?>]]></search>
<add><![CDATA[
<script type="text/javascript">
$(function(){
$('input[name="postcode"]').blur(function(){
//$('#carregando_cep').show(); essa linha e por que coloquei uma imagem de um gif do lado campo para mostrar quando atualizar...
var cep = $.trim($('input[name="postcode"]').val().replace('-', ''));
$.get('index.php?route=account/register/cepautomatico',{cep: cep},function(endereco){
var obj = $.parseJSON(endereco)// passei para json entao aqui faz o parse e cria o objeto (obj)
var uf = obj.uf;
var bairro = obj.bairro;
var cidade = obj.cidade;
var endereco = obj.tipo_logradouro+" "+obj.logradouro;
var res = obj.resultado;
if(res){
$('input[name="address_1"]').val(endereco); // preenche o campo endereco 1 com o endereco
$('input[name="city"]').val(cidade); // preenche o campo cidade
$('input[name="address_2"]').val(bairro); // preenche o campo emdereco 2 com o bairro
$('select[name="zone_id"]').val(uf); //preenche o estado com o ID zone (estado)
}
});
//$('#carregando_cep').hide(); esconder a imagem de loading
});
});
</script>
]]></add>
</operation>
</file>
<file name="catalog/model/localisation/zone.php">
<operation>
<search position="before"><![CDATA[public function getZonesByCountryId($country_id) {]]></search>
<add><![CDATA[
public function getZonesByCountryIdAndCode($country_id,$code) {
$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "zone WHERE country_id = '" . (int)$country_id . "' AND code= '" . $code . "' AND status = '1' ORDER BY name LIMIT 1");
return $query->row;
}
]]></add>
</operation>
</file>
</modification>
Copiei seu código criei o arquivo .xml e joguei la na pasta xml...
Não mudou nada na pagina do cadastro! =/
não entendo muito coisa mais quando chegar em casa vou dar uma olhada com mais calma
Vlw
Re: [TUTORIAL] CEP automático - Auto Complete (Cadastro)
Enviado: 09 Mar 2012, 18:46
por allyssonharry
Perfeito Amigo!, os pequenos erros são verificados pouco a pouco vou analizar e melhorar ainda mais esse script! valeu e abraços...
Re: [TUTORIAL] CEP automático - Auto Complete (Cadastro)
Enviado: 15 Mar 2012, 14:31
por joaoteofilo
Pessoal, acho que faltou colocar um campo para por o número em separado, porque muitas vezes o cliente não se atenta a isso!

Como não tenho muitos conhecimentos, peço que alguem tente. Obrigado!