Last active
December 11, 2015 05:28
-
-
Save deivisonarthur/4552091 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Utilizando os scripts do Frederico Leao + modulo dos correios do Pedro Teixeira | |
Bem essa solução é trank, o Frederico Leao e o Pedro realmente fizeram um ótimo trab. Mas como temos que ter uma saida para o webservice dos correios offline fiz uma mistura fina rs | |
O Funcionamento | |
O módulo usado é o do Pedro Teixeira mesmo, mas add um bt na adm do modulo dele que ativa a utilização do webservice alternativo, assim o módulo para de pegar dados diretamente nos correios e passa a pegar num webservice proprio nosso, que acesso consequetemente uma base local. | |
No exemplo abaixo que fiz utilizo apenas um cep de origem e os métodos Sedex e PAC, que somam +/- 3600 registros no banco de dados. Se tem a opção de conf outros meios dos correios como Carta Registrada e E-Sedex, só iria aumentar um pouco mais o número de registros. | |
Bem o script do Frederico Leao possui uma adm(que precisa fechar o acesso a mesma para segurança) que se tem a possibilidade de cadastrar outros meios como falei acima e add outros ceps de origem. Se tem também a fantastica opção de atualização dos preços dos fretes diretamente baixando do site dos correios. | |
Bem no script do Frederico eu só removi um bloqueio que se tinha na atualização que ele dava exit(); a cada erro de faixa de ceps não encontrada. E tb add a opção de exibir qual é a faixa de cep com problema. Outra coisa que fiz é que como meu php.ini se tem um tempo maior de execussão tb aumentei na tabela atualizacoes_config esse tempo de execussão. | |
Num if do arquivo atualizacoes.php add assim apra exibir o erro e não parar a execussao do mesmo: | |
else { | |
echo "<script type='text/javascript'> | |
alert('".$servico->MsgErro." - ".$row->cep_destino_ini." - ".$row->cep_destino_fim." - ".$row->cep_dest_ref."'); | |
document.location.href='./index.php'; | |
</script> | |
"; | |
//exit; | |
} | |
Para usar no módulo do Pedro Teixeira troque a linha do arquivo: app/code/community/PedroTeixeira/Correios/etc/config.xml | |
Procure por: | |
<url_ws_correios>http://ws.correios.com.br/calculador/CalcPrecoPrazo.aspx</url_ws_correios> | |
E troque por: | |
<url_ws_correios>http://deivison.com.br/correiosOffline/index.php</url_ws_correios> | |
Na verdade fiz mais que isso, eu add no módulo do pedro a opção de escolha do meu webservice alternativo: | |
Em correiosMetods.php | |
//para teste pode remover essa linha echo "<script>alert('".Mage::getStoreConfig('carriers/pedroteixeira_correios/deivison', $this->getStore())."')</script>"; | |
if(Mage::getStoreConfig('carriers/pedroteixeira_correios/deivison', $this->getStore()) == 1){ | |
$filename = $this->getConfigData('url_ws_correiosOffline'); | |
}else{ | |
$filename = $this->getConfigData('url_ws_correios'); | |
} | |
No config.xml add | |
<url_ws_correios>http://ws.correios.com.br/calculador/CalcPrecoPrazo.aspx</url_ws_correios> | |
<url_ws_correiosOffline>http://deivison.com.br/correiosOffline/index.php</url_ws_correiosOffline> | |
OBS: Meu webservice só funcionara para o cep de origem 22793080 | |
Bem acho que foi só, a parte abaixo são alguns prints e exemplo que fiz antes de escrever essa parte de cima rs. | |
Espero que ajude! | |
---------------------------------------------------------------------------------- | |
(Obs eu add mais 2 zeros nesses calculos do RJ no banco para ver se estaria ok, por isso ta 902 reais, no dos correios seria 9 + 2 taxa de entrega) | |
consulta feita pelo modulo do pedro com os correios http://i.imgur.com/fOr0o.png | |
consulta feita pelo modulo do pedro com o meu webservice http://i.imgur.com/fOr0o.png | |
Tela de adm e atualização dos preços do Sedex e PAC via webservice dos correios http://i.imgur.com/56MAB.png | |
Tela do módulo do Pedro Teixei com a opção de ligar o webservice alternativo http://i.imgur.com/nXe4Q.png | |
retorno do webservice é assim: | |
<Servicos> | |
<cServico> | |
<Codigo>41106</Codigo> | |
<Valor>2.7</Valor> | |
<ValorMin>900.00</ValorMin> | |
<AcrescimoDimensao/> | |
<AcrescimoPeso/> | |
<PrazoEntrega/> | |
<ValorMaoPropria>0</ValorMaoPropria> | |
<ValorAvisoRecebimento>2.70</ValorAvisoRecebimento> | |
<ValorValorDeclarado>0</ValorValorDeclarado> | |
<EntregaDomiciliar>Sim</EntregaDomiciliar> | |
<EntregaSabado>Sim</EntregaSabado> | |
<Erro>0</Erro> | |
<MsgErro/> | |
</cServico> | |
</Servicos> | |
Simulação -------- | |
PAC Capital RJ | |
http://deivison.com.br/correiosOffline/index.php?nVlAltura=30&nVlLargura=30&nVlComprimento=30&nVlPeso=0.3000&sCepOrigem=22793080&sCepDestino=21061570&nVlValorDeclarado=0&nVlsCdAvisoRecebimento=N&sCdMaoPropria=N&nCdServico=41106 | |
PAC Interior RJ | |
http://deivison.com.br/correiosOffline/index.php?nVlAltura=30&nVlLargura=30&nVlComprimento=30&nVlPeso=0.3000&sCepOrigem=22793080&sCepDestino=25220140&nVlValorDeclarado=0&nVlsCdAvisoRecebimento=N&sCdMaoPropria=N&nCdServico=41106 | |
Sedex RJ capital | |
http://deivison.com.br/correiosOffline/index.php?nVlAltura=30&nVlLargura=30&nVlComprimento=30&nVlPeso=0.3000&sCepOrigem=22793080&sCepDestino=21061570&nVlValorDeclarado=0&nVlsCdAvisoRecebimento=N&sCdMaoPropria=N&nCdServico=40010 | |
Sedex RJ Interior | |
http://deivison.com.br/correiosOffline/index.php?nVlAltura=30&nVlLargura=30&nVlComprimento=30&nVlPeso=0.3000&sCepOrigem=22793080&sCepDestino=25220140&nVlValorDeclarado=0&nVlsCdAvisoRecebimento=N&sCdMaoPropria=N&nCdServico=40010 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment