Olá Pessoal!
Nessa postagem irei ensinar como guardar o cep digitado no carrinho e recuperá-lo no campo cep do checkout. Nessa dica irei mostrar duas formas, uma utilizando o checkout padrão do Magento e outra utilizando One Step Checkout-Brasil.
Utilizando o checkout padrão
1º Passo - Guardando o cep digitado no carrinho:
Abra o arquivo shipping.phtml (app-> design-> frontend-> default-> SeuTema-> template-> checkout->cart) e procure o trecho:
<button type="button" title="<?php echo $this->__('Get a Quote') ?>" onclick="coShippingMethodForm.submit()" class="button"><span><span><?php echo $this->__('Get a Quote') ?></span></span></button>
Logo após ele, insira o seguinte:
<?php $_SESSION['guardaCep'] = $this->htmlEscape($this->getEstimatePostcode()); ?>
2º Passo - Recuperando o cep no checkout:
Abra o arquivo billing.phtml (app-> design-> frontend-> default-> SeuTema-> template-> persistent-> checkout-> onepage) e procure por:
<?php echo $this->htmlEscape($this->getBillAddress()->getPostcode()) ?>
Substitua esse código pelo seguinte:
<?php echo $_SESSION['guardaCep']; ?>
3º Passo - Preencher endereço ao entrar no checkout:
Caso você utilize a função Auto-Completar Endereço com Ajax no seu checkout e deseja que o endereço seja preenchido logo que o cliente entre na página, terá que inserir o seguinte código:
<?php if($_SESSION['guardaCep']): ?>
<body onLoad="buscar_end('billing');">
<?php endif; ?>
Logo no início do arquivo billing.phtml (app-> design-> frontend-> default-> SeuTema-> template-> persistent-> checkout-> onepage).
Utilizando o One Step Checkout
1º Passo - Guardando o cep digitado no carrinho:
O primeiro passo é igual ao do checkout padrão.
Abra o arquivo shipping.phtml (app-> design-> frontend-> default-> SeuTema-> template-> checkout->cart) e procure o trecho:
<button type="button" title="<?php echo $this->__('Get a Quote') ?>" onclick="coShippingMethodForm.submit()" class="button"><span><span><?php echo $this->__('Get a Quote') ?></span></span></button>
Logo após ele, insira o seguinte:
<?php $_SESSION['guardaCep'] = $this->htmlEscape($this->getEstimatePostcode()); ?>
2º Passo - Recuperando o cep no checkout:
Abra o arquivo billing.phtml (app-> design-> frontend-> base-> default-> template-> onepagecheckout-> onepage) e procure por:
<?php echo $this->htmlEscape($this->getBillAddress()->getPostcode()) ?>
Substitua esse código pelo seguinte:
<?php echo $_SESSION['guardaCep']; ?>
Como o OSC já atualiza os dados ao ser "carregado" (não sei se é o termo correto), seguindo os passos anteriores corretamente, o preenchimento do endereço ocorre logo quando o cliente vai finalizar a compra.
Obs: Os caminhos dos arquivos podem ser diferentes na sua loja. Não é recomendado alterar arquivos do template base, então faça sempre uma cópia do arquivo em questão para o seu tema.
Então é isso! Espero que essa dica ajude alguém! Qualquer dúvida, sugestão, correção ou crítica, deixe um comentário!
Fonte utilizada: http://forum.escolamagento.com/index.php?/topic/931-guardar-e-recuperar-o-cep-digitado-em-uma-sessao/
Responsável pelo meu interesse sobre essa questão: Jonatan Machado
=)
Show muito bom seu blog! xD
ResponderExcluirObrigada Jonatan! ^.^
ExcluirMuito Bom Alessandra!
ResponderExcluirComigo funcionou perfeitamente... só gostaria de saber como fazer com o OneStepCheckout para que ele leve do carrinho até a pagina dele o método escolhido de frete ?
No mais, sem palavras. Parabéns pela dica !!!!
Olá Paulo! Obrigada pelo comentário! =)
ExcluirQuanto a recuperar o método de entrega selecionado no carrinho, eu até tinha feito um tutorial sobre isso, só que testando um pouco mais, descobri que as alterações não funcionavam como o esperado e por isso desativei a postagem... Ele até recupera/seleciona o método de entrega no checkout, só que se o usuário quiser alterar esse método, ele volta para o anteriormente salvo, ou seja, o cliente não conseguirá mudar o frete escolhido no carrinho.
Vou fazer uns testes para tentar reverter isso e, caso consiga, posto aqui.
Caso você queira ver a postagem mesmo com esse erro, mande um comentário com o seu e-mail que eu te mando o passo-a-passo.
=)
Boa Tarde Alessandra!
ResponderExcluirEu gostaria sim ver postagem novamente mesmo com o erro.
Pode enviar pra mim no e-mail: pauloalves.silva@live.com
Obrigado!
Acabei de enviar!
Excluir:)
Alessandra, pode enviar pra mim tbm?
ExcluirVou tentar duplicar essa variável pra poder trocar...
flavioea@gmail.com
Desculpa a demora, vou te mandar hoje sem falta!
ExcluirBoa dica, porém o link para o módulo Ajax não existe mais.
ResponderExcluirEstou procurando uma forma de integrar o CEP com o webservices dos Correios para busca automática do endereço.
Se puder me mostrar o caminho :)
Excelente blog, vou acompanhar!
Não encontrei uma forma de me inscrever nele no entanto, e seria legal adicionar o autor em alguma rede social, se disponível.
Obrigado!
Olá Eduardo!
ExcluirTenho o módulo salvo aqui, se você quiser, deixe seu e-mail que eu te envio.
=)
Que bom que você resolveu seu problema. Já a dúvida do juros, acho que você só precisa saber como fazer o cálculo, o resto deve ser igual aos outros tutoriais.
ResponderExcluirMuito bom!!
ResponderExcluirE tem como colocar um botão no carrinho pra abrir aquele popup dos Correios que calcula prazo??
Obrigada
Olá Danielle!
ExcluirPoderia passar o link de um exemplo do que você quer fazer?
Existem 3 módulos gratuitos dos correios q eu conheço, q estão no MgConnect e que fazem isso agregando já ao totalizados tanto do carrinho como no checkout...
ExcluirVou recomendar um site onde vc pode encontrar coisas.. é lançamento: www.google.com
(minha reverência à autora pelo belo trabalho e paciência com leitores que não tem o mínimo de vontade de aprender as coisas e querem tudo mastigadinho!)
rsrs... Gostei do comentário!
Excluirdesculpa, mas me sinto na obrigação de recomendar mil vezes para não usar Akatus. É a 'coisa' mais desorganizada da internet...
ResponderExcluirpara o desenvolvedor é raiva pura.
para o lojista é prejuizo na certa...
Obrigada pela dica!
ResponderExcluirporque você não recomenda oq aconteceu com vc?
ResponderExcluirNossa, está funcionalidade é excelente, muito obrigado!!!!
ResponderExcluirDe nada! =)
Excluir