Open rafaelstz opened 9 years ago
Quando for instalar uma loja Magento, coloca sempre uma alias para o endereço 127.0.0.1 , evita muitos erros, eu por exemplo utilizo dev.local.com, é sempre interesante não utilizar apenas um nome como localhost, e sim simular com "." também.
Onde e como faço esta alteração?
Estou usando o xampp segui o caminho C:\WINDOWS\system32\drivers\etc\ abri o arquivo hosts.txt segue imagem: http://s11.postimg.org/bls9c4u5f/hostoss.jpg
Esse tutorial no Windows vai te ajudar! http://www.pliniopavin.com.br/wp/2010/09/configurando-virtualhosts-no-xampp/
blz mas iso interfere no problema com o módulo? pq o mesmo ta acontecendo no ambinente de produção rockmezz.com.br
Achei que iria, mas se está acontecendo em produção não é esse o problema. Verifica se em Sistema > Configuração > Avançado se o módulo está ativo.
Sim está ativo ;)
Que versão está sua loja? com ou sem patch de segurança?
1.9.2.1 em produção com patch - rockmezz.com.br - http://magento.com/security-patchSAFE: This site appears to be safe. 1.9.2.2 em local sem patch
Em nenhuma das duas instalações aparece a msg de atualizar patch de segurança, então acho que está tudo ok :+1:
tenta rodar local na versão 1.9.0.0, tem algumas restrições de caminho do path que podem estar causando isso, se for basta dar permissão para o caminho em Sistema > Permissões de ~ (acho).
Tenho mesmo que dar um downgrade ou fazer uma instalação nova para o 1.9.0.0 ? Sério mesmo? E não entendi a parte das permissões nele aparece Permissões>Usuários>Variables>Blocks está tudo ativo
Se funcionar em uma versão anterior o erro foi causado por causa dos PATCH's, quando instala eles aparece um novo menu para colocar permissões de funcionamento de módulos antigos.
OK Irei baixar e instalar local o magento 1.9.0.0 e testar o módulo
Psé não funcionou instalei na versão 1.7 e não aparece erro algum. Não sei o que fazer meu site já está em produção. :/
Não precisa dar um downgrade, tem uma nova opção no menu sistema que deixa o módulo executar.
Eu não fiz downgrade, eu fiz uma nova instalação local com o 1.7 E qual é a opção no menu sistema que deixa o módulo executar? Lembrando que estou em local com o 1.7 e 1.9 e em produção é 1.9.2.1
Opa, no 1.7 funcionou agora! Agora temos que ver o que é no meu tema mesmo do 1.9 .2.1
Instalei um Magento 1.9.2.2 aqui pra te mostrar:
Consegui fazer funcionar! Só copiei pro default e funcionou, muito estrano pq no debug não aparece o default do magento
Blz então :+1: :smile:
Sim muito, mas ainda assim achei estranho kk
Uma coisa que percebi é que ele não carrega o ESTADO, que acha?
ID do campo não deve ser o mesmo que ele tenta colocar, já aconteceu isso comigo.
Bom dia @rafaelstz Então como troco o id? Somente no billing.phtml ou em algum outro arquivo? Estou usando 1 linha no endereço.
@rafaelstz dê uma olhada no meu billing.phtml
https://www.dropbox.com/s/7s2ug5sy7i9smb6/billing.phtml?dl=0
Acho que a modificação deve ser na linha $('billing:region').value = res.uf;
não tive resultado alterando para: $('billing:region_id').value = res.uf; $('billing:region').value = res.estado; $('billing:region').value = res.state/province;
O resultado que está voltando como res.uf desse código é a sigla do estado, até ai tudo bem, mas para colocar o valor lá no select você tem que setar o value. Pode utilizar um switch como esse:
switch(res.uf) {
case "AC": estado.setValue(485); break;
case "AL": estado.setValue(486); break;
case "AP": estado.setValue(487); break;
case "AM": estado.setValue(488); break;
case "BA": estado.setValue(489); break;
case "CE": estado.setValue(490); break;
case "DF": estado.setValue(511); break;
case "ES": estado.setValue(491); break;
case "GO": estado.setValue(492); break;
case "MA": estado.setValue(493); break;
case "MT": estado.setValue(494); break;
case "MS": estado.setValue(495); break;
case "MG": estado.setValue(496); break;
case "PA": estado.setValue(497); break;
case "PB": estado.setValue(498); break;
case "PR": estado.setValue(499); break;
case "PE": estado.setValue(500); break;
case "PI": estado.setValue(501); break;
case "RJ": estado.setValue(502); break;
case "RN": estado.setValue(503); break;
case "RS": estado.setValue(504); break;
case "RO": estado.setValue(505); break;
case "RR": estado.setValue(506); break;
case "SC": estado.setValue(507); break;
case "SP": estado.setValue(508); break;
case "SE": estado.setValue(509); break;
case "TO": estado.setValue(510); break;
}
No seu está com valores diferentes, tem que ajustar como na sua loja, segue o print:
@rafaelstz alterei o código para
Coloquei logo abaixo da linha do ajax no final do billing.phtml $('billing:region').value = res.uf; switch(res.uf) { case "Acre": estado.setValue(485); break; case "Alagoas": estado.setValue(486); break; case "Amapá": estado.setValue(487); break; case "Amazonas": estado.setValue(488); break; case "Bahia": estado.setValue(489); break; case "Ceará": estado.setValue(490); break; case "Distrito Federal": estado.setValue(491); break; case "Espírito Santo": estado.setValue(492); break; case "Goiás": estado.setValue(493); break; case "Maranhão": estado.setValue(494); break; case "Mato Grosso do Sul": estado.setValue(496); break; case "Mato Grosso": estado.setValue(495); break; case "Minas Gerais": estado.setValue(497); break; case "Paraná": estado.setValue(500); break; case "Paraíba": estado.setValue(499); break; case "Pará": estado.setValue(498); break; case "Pernambuco": estado.setValue(501); break; case "Piauí": estado.setValue(502); break; case "Rio Grande do Norte": estado.setValue(504); break; case "Rio Grande do Sul": estado.setValue(505); break; case "Rio de Janeiro": estado.setValue(503); break; case "Rondônia": estado.setValue(506); break; case "Roraima": estado.setValue(507); break; case "Santa Catarina": estado.setValue(508); break; case "Sergipe": estado.setValue(510); break; case "São Paulo": estado.setValue(509); break; case "Tocantins": estado.setValue(511); break; }
E copiei o select dentro do select
Onde estou errando?
@rafaelstz veja o billing.phtml
https://www.dropbox.com/s/ifr0ypu15054lsv/billing%20%281%29.phtml?dl=0
Pode deixar o arquivo como estava antes, mas muda a função buscar_end() no fim do arquivo para:
function buscar_end() {
var url = '<?php echo $this->getUrl('autocompletar/ajax/endereco') ?>';
new Ajax.Request( url, { method: 'post',
parameters: 'cep='+$('billing:postcode').value,
onComplete: function(transport) {
var res = transport.responseText.evalJSON();
if ( res.resultado == '1' ) {
$('billing:street1').value = res.tipo_logradouro+' '+res.logradouro;
if ($('billing:street2')) $('billing:street2').value = res.bairro;
$('billing:city').value = res.cidade;
estado = $('billing:region_id');
switch(res.uf) {
case "Acre": estado.setValue(485); break;
case "Alagoas": estado.setValue(486); break;
case "Amapá": estado.setValue(487); break;
case "Amazonas": estado.setValue(488); break;
case "Bahia": estado.setValue(489); break;
case "Ceará": estado.setValue(490); break;
case "Distrito Federal": estado.setValue(491); break;
case "Espírito Santo": estado.setValue(492); break;
case "Goiás": estado.setValue(493); break;
case "Maranhão": estado.setValue(494); break;
case "Mato Grosso do Sul": estado.setValue(496); break;
case "Mato Grosso": estado.setValue(495); break;
case "Minas Gerais": estado.setValue(497); break;
case "Paraná": estado.setValue(500); break;
case "Paraíba": estado.setValue(499); break;
case "Pará": estado.setValue(498); break;
case "Pernambuco": estado.setValue(501); break;
case "Piauí": estado.setValue(502); break;
case "Rio Grande do Norte": estado.setValue(504); break;
case "Rio Grande do Sul": estado.setValue(505); break;
case "Rio de Janeiro": estado.setValue(503); break;
case "Rondônia": estado.setValue(506); break;
case "Roraima": estado.setValue(507); break;
case "Santa Catarina": estado.setValue(508); break;
case "Sergipe": estado.setValue(510); break;
case "São Paulo": estado.setValue(509); break;
case "Tocantins": estado.setValue(511); break;
}
}
}
});
}
Provavelmente vai ter que verificar os códigos gerados no seu select e ajustar com os desse código, isso direto pelo inspecional objeto.
Fiz as alterações e conferi o select no inspetor, os códigos batem mas ainda assim não seleciona o Estado automaticamente. :(
Dá um console.log(res.uf) e vê o que retorna com seu CEP, quando retornar certo você pode manipular ele com esse switch acima, caso o res.uf retornar "AC" ele seta "Acre", tinha passado o switch com o estado completo, tenta substituir por esse:
switch(res.uf) {
case "AC": estado.setValue(485); break;
case "AL": estado.setValue(486); break;
case "AP": estado.setValue(487); break;
case "AM": estado.setValue(488); break;
case "BA": estado.setValue(489); break;
case "CE": estado.setValue(490); break;
case "DF": estado.setValue(511); break;
case "ES": estado.setValue(491); break;
case "GO": estado.setValue(492); break;
case "MA": estado.setValue(493); break;
case "MT": estado.setValue(494); break;
case "MS": estado.setValue(495); break;
case "MG": estado.setValue(496); break;
case "PA": estado.setValue(497); break;
case "PB": estado.setValue(498); break;
case "PR": estado.setValue(499); break;
case "PE": estado.setValue(500); break;
case "PI": estado.setValue(501); break;
case "RJ": estado.setValue(502); break;
case "RN": estado.setValue(503); break;
case "RS": estado.setValue(504); break;
case "RO": estado.setValue(505); break;
case "RR": estado.setValue(506); break;
case "SC": estado.setValue(507); break;
case "SP": estado.setValue(508); break;
case "SE": estado.setValue(509); break;
case "TO": estado.setValue(510); break;
}
O estranho é que não funcionou mesmo.
Apareceu algum erro no console?
Bom dia @rafaelstz vou testar agora. (y)
me retornou isso
Uncaught ReferenceError: res is not defined
at
Usei o mozila(bem melhor kk) mostro o seguinte...
Antes do ajax no final do arquivo tem esse script <?php if(!Mage::getStoreConfig('oscheckout/display/state')):?>
<?php endif;?>
olhe a imagem...
Funcionouuuuuuuuu! Só tenho que arrumar os códigos, testei o meu cep RS e Selecionou RN
Muito obrigado @rafaelstz :+1: Abraço!
Disponha, que bom que deu certo :smile: :+1: Abraço!
@rafaelstz @brunowd Sobre o problema do estado discutido aqui, eu resolvi o mesmo em um PR que acabei de enviar. https://github.com/mariosam/AutoCompletarEndereco/pull/5
@rafaelstz Então não sei como e onde fazer a alteração como o seu código acima e segui a risca até fiz uma instalação local nova, somente com este módulo do Mario SAM.
No console aparece a msg: http://s2.postimg.org/s88mr50s9/erro_checkout.jpg