Pular para o conteúdo

Fernando Soares - Mantendo sua Tecnologia

Increase font size Decrease font size Default font size
Você está aqui:  Início Fórum Projetos Plugin de envio Correios para VirtueMart Alternativa para correios fora do AR
Pular para o conteúdo
Bem-Vindo, Visitante
Username: Password: Lembrar-me
  • Página:
  • 1

TÓPICO: Alternativa para correios fora do AR

Alternativa para correios fora do AR 05 Mai 2009 10:50 #1601

Olá pessoal

Com os correios vire e mexe dando problemas eu criei uma rotina que preenche a tabela de taxas de envio () com todos os preços para todos os lugares via sedex, o que imaginei se o webservice do correios tiver fora o sistema busca nesta tabela, que podemos atualizar ela a cada X tempo só que eu não conheço muito de php fiz essa rotina graças a ajuda de amigos e ao google, e ela passa por todos os ceps e pesos mas tem hora que o ws dos correios não retorna dados ai a tabela fica incompleta será que alguem pode dar uma força ? Abaixo segue a rotina e vou por em anexo a tabela de cep e de pesos.
<?php
set_time_limit(300);
function calcula_frete_sedex($cep_org,$cep_dst,$peso,$mao,$valor,$aviso)
{
   // Calcula frete sedex
 
	$url="http://www.correios.com.br/encomendas/precos/calculo.cfm?resposta=paginaCorreios&servico=40010&cepOrigem={$cep_org}&cepDestino={$cep_dst}&peso={$peso}&MaoPropria={$mao}&valorDeclarado={$valor}&avisoRecebimento={$aviso}";
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
	$html = curl_exec ($ch);
	curl_close ($ch);
 
	$html = explode('<td  align="center" colspan="2">', $html);
	$html = $html[5];
	$html = explode("<b>",$html);
	$html = $html[1];
	$html = explode("</b>",$html);
	return str_replace(',', '.', substr($html[0], 3));
 
 
 
}
 
//array de CEPS
$conexao = mysql_connect('mysql.servidor.com.br' , 'user', 'password' );
$db = mysql_select_db("bancodedados");
//Busco todos os ceps
$sql = "SELECT CEPINI, CEPFIM FROM CEPs ";
$resultado = mysql_query($sql) or die (mysql_error());
//Busco todos os ceps
$sql2 = "SELECT PESOINICIAL, PESOFINAL FROM Pesos";
$resultado2 = mysql_query($sql2) or die (mysql_error());
//Aqui já gravo na mémoria todos os resultados
$iPesos = 0;
while ($linha2 = mysql_fetch_array($resultado2))
{
	$arrPesos[$iPesos]["PESOINICIAL"] = $linha2["PESOINICIAL"];
	$arrPesos[$iPesos]["PESOFINAL"] = $linha2["PESOFINAL"];
	$iPesos++;
}
 
 
$num =0;
//Para todos os ceps
while ($linha=mysql_fetch_array($resultado))
{
  //para cada peso
  for ($j=0;$j<$iPesos;$j++)
  {
 
    $vlFrete = calcula_frete_sedex("05046001",$linha["CEPINI"],$arrPesos[$j]["PESOFINAL"],"N","0","N");
 
    if ($vlFrete !="")
    {
    $sql3 = "INSERT INTO jos_vm_shipping_rate ( ";
    $sql3 = $sql3 . "shipping_rate_name, ";
	$sql3 = $sql3 . "shipping_rate_carrier_id, ";
	$sql3 = $sql3 . "shipping_rate_country, ";
	$sql3 = $sql3 . "shipping_rate_zip_start, ";
	$sql3 = $sql3 . "shipping_rate_zip_end, ";
	$sql3 = $sql3 . "shipping_rate_weight_start, ";
	$sql3 = $sql3 . "shipping_rate_weight_end, ";
	$sql3 = $sql3 . "shipping_rate_value, ";
	$sql3 = $sql3 . "shipping_rate_package_fee, ";
	$sql3 = $sql3 . "shipping_rate_currency_id, ";
	$sql3 = $sql3 . "shipping_rate_vat_id, ";
	$sql3 = $sql3 . "shipping_rate_list_order) VALUES ( ";
	$sql3 = $sql3 . "'SEDEX',";
	$sql3 = $sql3 . "4,'BRA;',";
	$sql3 = $sql3 . "'" . $linha["CEPINI"] . "',";
	$sql3 = $sql3 . "'" . $linha["CEPFIM"] . "',";
	$sql3 = $sql3 . "'" . $arrPesos[$j]["PESOINICIAL"] . "',";
	$sql3 = $sql3 . "'" . $arrPesos[$j]["PESOFINAL"] . "',";
	$sql3 = $sql3 .  $vlFrete . ",0,20,0,1)";
	echo $sql3;
        echo "<br/>";
 
	$resultado3 = mysql_query($sql3) or die (mysql_error());
        echo $resultado3;
 
 
 
    }
    else
    {
    echo "valor inválido: ";
    echo $linha["CEPINI"];
	echo " - ";
	echo $arrPesos[$j]["PESOFINAL"];
    echo " || ";
    echo "<br/>";
    }
    ob_flush();
	flush();
  }
}
 
mysql_close( $conexao);
 
?>

[]`S

Arquivo Anexo:

Nome do Arquivo: pesoeceps.txt
Tamanho do Arquivo: 1984
Última Edição: 05 Mai 2009 12:40 por Armando Ferraz Santos.
O administrador desabilitou o acesso público de escrita.
Os seguintes usuários disseram Obrigado: Daniel R

Re:Alternativa para correios fora do AR 07 Mai 2009 20:23 #1612

  • Fernando Soares
  • Fernando Soares's Avatar
  • OFFLINE
  • Administrador
  • Mantendo sua Tecnologia
  • Postagens: 1685
  • Thank you received: 25
  • Karma: 35
Olá,

Muito boa sua iniciativa e assim que der um tempo vou testar para ver como funciona o mesmo vale para quem puder testar e/ou apontar correções.

Abraços
Hospedagem Joomla e VirtueMart!
Soluções para sua Loja Virtual (e-commerce).
Manutenção de computadores em Santa Cruz do Sul e região.
Siga-me no Twitter: twitter.com/fernando_soares
O administrador desabilitou o acesso público de escrita.

Re: Alternativa para correios fora do AR 25 Fev 2012 12:44 #5309

  • Daniel R
  • Daniel R's Avatar
  • OFFLINE
  • Aprendiz
  • Postagens: 1
  • Karma: 0
Oi amigo!

Você conseguiu uma solução para seu problema?
Estava desenvolvendo um script, qdo encontrei o seu e tenho o mesmo problema.

Obrigado!
O administrador desabilitou o acesso público de escrita.
  • Página:
  • 1
Time to create page: 0.302 seconds