Página 1 de 1

[TUTORIAL] Cep Automático Simples

Enviado: 06 Dez 2011, 03:56
por pablovdsp
Pessoal, pequena contribuição para vossa senhoria.

Pesquisa de CEP simples e fácil de implementar com autocomplete.

Vamos lá.
Adicione o seguinte código ao topo do arquivo
catalog/controller/account/create.tpl
Código: Selecionar todos
<script>
function getEndereco() {
if($.trim($("#cep").val()) != ""){
	$("#endereco").val("Procurando...");
	$("#bairro").val("Procurando...");
	$("#cidade").val("Procurando...");
	$.getScript("http://cep.republicavirtual.com.br/web_cep.php?formato=javascript&cep="+$("#cep").val(), function(){

	if(resultadoCEP["resultado"]){
		$("#endereco").val(unescape(resultadoCEP["tipo_logradouro"])+": "+unescape(resultadoCEP["logradouro"]));
		$("#bairro").val(unescape(resultadoCEP["bairro"]));
		$("#cidade").val(unescape(resultadoCEP["cidade"]));
		//$("#uf").val(unescape(resultadoCEP["uf"]));
		}else{
			alert("Endereço não encontrado");
		}
	});
		}else{ 
			$("#endereco").val("Você precisa informar um CEP...");
		}
}
</script>
Eu gosto de trazer o CEP para cima, já que ele vai ser a pesquisa né,
Para isso só achar a linha
Código: Selecionar todos
<tr>
          <td id="postcode"><?php echo $entry_postcode; ?></td>
            <td><input type="text" name="postcode" value="<?php echo $postcode; ?>" />
			  <?php if ($error_postcode) { ?>
              <span class="error"><?php echo $error_postcode; ?></span>
              <?php } ?>
            </td>
            </tr>
E colar após
Código: Selecionar todos
</table>
      </div>
      <b style="margin-bottom: 2px; display: block;"><?php echo $text_your_address; ?></b>
      <div style="background: #F7F7F7; border: 1px solid #DDDDDD; padding: 10px; margin-bottom: 10px;">
        <table>
A mágica da brincadeira se encontra aqui,
Nos campos de CEP, Endereço e Cidade adicionar os seus respectivos IDs como a seguir
CEP:
Código: Selecionar todos
<input type="text" name="postcode" value="<?php echo $postcode; ?>" id="cep" onBlur="getEndereco()" />
Precisa ter a função getEndereco no onBlur pra o sistema pesquisar o endereço completo assim que você sair do campo.

RUA
Código: Selecionar todos
<input type="text" name="address_1" value="<?php echo $address_1; ?>" id="endereco"/>
CIDADE
Código: Selecionar todos
<input type="text" name="city" value="<?php echo $city; ?>" id="cidade"/>
Sim, ficou faltando o bairro, de duas uma,
Você pode utilizar o campo "Empresa" para isso (Que eu não recomendo)
Ou utilizar as modificações que nosso amigo lehnhart fez nesse tópico:
https://forum.opencartbrasil.com.br/ ... eaec#p2718

Além de adicionar os campos de CPF e CNPJ ainda temos o campo de Número da casa e de Bairro que estamos precisando.

Vejam funcionando em meu site: http://www.bomeletro.com/index.php?route=account/create

Espero que ajude alguém, pois é um jeito bem fácil de implementar essa busca.

Abraço a todos, e boas vendas!

Re: [Tutorial] Cep Automático Simples

Enviado: 06 Dez 2011, 08:04
por marciofornari
Ótimo isso, vou usar no meu site
Obrigado

Re: [Tutorial] Cep Automático Simples

Enviado: 06 Dez 2011, 10:01
por Manoel Vidal
Parabéns pela contribuição :D

Re: [Tutorial] Cep Automático Simples

Enviado: 10 Dez 2011, 09:40
por Natalia
Olá ,gostei muito do tutorial, me ajudou bastante. A Minha versão é a 1.5.1.3.1 e tive que apenas mudar o local onde acrescentar o código. (catalog/view/theme/default/template/account/register.tpl)

Mas estou com uma duvida, quero acrescentar este código na hora da pessoa trocar o endereço ao finalizar a compra mas ao acrescentar o script a pagina trava e mais nada funciona. Alguém sabe uma solução para isso?
Código: Selecionar todos
<?php if ($addresses) { ?>
<input type="radio" name="<?php echo $type; ?>_address" value="existing" id="<?php echo $type; ?>-address-existing" checked="checked" />
<label for="<?php echo $type; ?>-address-existing"><?php echo $text_address_existing; ?></label>
<div id="<?php echo $type; ?>-existing">
  <select name="address_id" style="width: 100%; margin-bottom: 15px;" size="5">
    <?php foreach ($addresses as $address) { ?>
    <?php if ($address['address_id'] == $address_id) { ?>
    <option value="<?php echo $address['address_id']; ?>" selected="selected"><?php echo $address['firstname']; ?> <?php echo $address['lastname']; ?>, <?php echo $address['address_1']; ?>, <?php echo $address['city']; ?>, <?php echo $address['country']; ?></option>
    <?php } else { ?>
    <option value="<?php echo $address['address_id']; ?>"><?php echo $address['firstname']; ?> <?php echo $address['lastname']; ?>, <?php echo $address['address_1']; ?>, <?php echo $address['city']; ?>, <?php echo $address['country']; ?></option>
    <?php } ?>
    <?php } ?>
  </select>
</div>
<?php } ?>
<p>
  <input type="radio" name="<?php echo $type; ?>_address" value="new" id="<?php echo $type; ?>-address-new" />
  <label for="<?php echo $type; ?>-address-new"><?php echo $text_address_new; ?></label>
</p>
<div id="<?php echo $type; ?>-new" style="display: none;">
  <table class="form">
    <tr>
      <td><span class="required">*</span> <?php echo $entry_firstname; ?></td>
      <td><input type="text" name="firstname" value="" class="large-field" /></td>
    </tr>
    <tr>
      <td><span class="required">*</span> <?php echo $entry_lastname; ?></td>
      <td><input type="text" name="lastname" value="" class="large-field" /></td>
    </tr>
    <tr>
      <td><?php echo $entry_company; ?></td>
      <td><input type="text" name="company" value="" class="large-field" /></td>
    </tr>
	    <tr>
      <td><span class="required">*</span> <?php echo $entry_postcode; ?></td>
      <td><input type="text" name="postcode" value="<?php echo $postcode; ?>" id="cep" onBlur="getEndereco()" /></td>
    </tr>
    <tr>
      <td><span class="required">*</span> <?php echo $entry_address_1; ?></td>
      <td><input type="text" name="address_1" value="" class="large-field" /></td>
    </tr>
    <tr>
      <td><?php echo $entry_address_2; ?></td>
      <td><input type="text" name="address_2" value="" class="large-field" /></td>
    </tr>
    <tr>
      <td><span class="required">*</span> <?php echo $entry_city; ?></td>
      <td><input type="text" name="city" value="<?php echo $city; ?>" id="cidade"/></td>
    </tr>
    <tr>
      <td><span class="required">*</span> <?php echo $entry_country; ?></td>
      <td><select name="country_id" class="large-field" onchange="$('#<?php echo $type; ?>-address select[name=\'zone_id\']').load('index.php?route=checkout/address/zone&country_id=' + this.value);">
          <option value=""><?php echo $text_select; ?></option>
          <?php foreach ($countries as $country) { ?>
          <?php if ($country['country_id'] == $country_id) { ?>
          <option value="<?php echo $country['country_id']; ?>" selected="selected"><?php echo $country['name']; ?></option>
          <?php } else { ?>
          <option value="<?php echo $country['country_id']; ?>"><?php echo $country['name']; ?></option>
          <?php } ?>
          <?php } ?>
        </select></td>
    </tr>
    <tr>
      <td><span class="required">*</span> <?php echo $entry_zone; ?></td>
      <td><select name="zone_id" class="large-field">
        </select></td>
    </tr>
  </table>
</div>
<br />
<div class="buttons">
  <div class="right"><a id="button-address" class="button"><span><?php echo $button_continue; ?></span></a></div>
</div>
<script type="text/javascript"><!--
$('#<?php echo $type; ?>-address select[name=\'zone_id\']').load('index.php?route=checkout/address/zone&country_id=<?php echo $country_id; ?>');

$('#<?php echo $type; ?>-address input[name=\'<?php echo $type; ?>_address\']').live('change', function() {
	if (this.value == 'new') {
		$('#<?php echo $type; ?>-existing').hide();
		$('#<?php echo $type; ?>-new').show();
	} else {
		$('#<?php echo $type; ?>-existing').show();
		$('#<?php echo $type; ?>-new').hide();
	}
});
local: catalog/view/theme/default/template/checkout/address.tpl

PS: No código acima a modificação no postcode e no city já está feitas!

Obrigado!

Re: [Tutorial] Cep Automático Simples

Enviado: 17 Abr 2012, 18:29
por Babinha
vou testar na minha 1.4.9.4 hoje mesmo, tava precisando disso!
muito obrigado :D

Re: [Tutorial] Cep Automático Simples

Enviado: 23 Abr 2012, 18:58
por denisgomes
pablovdsp, uma dica: também dá pra usar esse sistema com um WebService dos Correios. Vi a documentação (http://www.correios.com.br/webServices/ ... prazos.pdf) e eles liberam pra acesso gratuito, nem precisa de cadastro.

Re: [Tutorial] Cep Automático Simples

Enviado: 16 Jun 2012, 14:55
por fmrocha79
Pra quem n conseguiu vai ai uma dica bem facinha sem precisar de programação demais!!

OpenCart v 1.5.1.3

Vá em /catalog/view/theme/SEU TEMA/template/account

Procure o arquivo "register.tpl"

procure por:
Código: Selecionar todos
<td><input type="text" name="postcode" value="<?php echo $postcode; ?>" />
em logo abaixo adicione:
Código: Selecionar todos
<a href="http://www.buscacep.correios.com.br/servicos/dnec/menuAction.do?Metodo=menuEndereco"target="_blank"><img src="http://www.belfashion.com.br/loja/image/correios_cep.png" style="center;" align="right"/a></br>
<a href="http://www.buscacep.correios.com.br/servicos/dnec/menuAction.do?Metodo=menuLogradouro"target="_blank"><img src="http://www.belfashion.com.br/loja/image/correios_end.png" style="center;" align="right"/a>

Veja o exemplo: http://www.belfashion.com.br/loja/index ... t/register

Só isso, n tem perigo de erro, n tem java, ajax, php ou qualquer alteração no seu site, se n gostar so fazer a mesma coisa pra remover.
Essas imagens são as do meu site, vc pode mudar criando um link para o seu proprio!! pode ate copiar e colar pra vc, ou fazer uma melhoria.
espero q tenha ajudado os mais desafortunados =)