Cálculo de Frete

3 views
Skip to first unread message

Bruno Costa

unread,
Jan 14, 2008, 11:09:28 AM1/14/08
to php-b...@googlegroups.com
Olá!!

Gostaria de saber como funciona o cálculo de fretes.

Estive fazendo uma pesquisa e encontrei vários scripts de cálculo com php + ajax ou somente php. Só que em uma das leituras
vi que devemos ser "cadastrados" junto aos Correios pra validar a compra do nosso úsuario.

A dúvida é:

  - Temos que ser cadastrados pra ter acesso a esse recurso?

  - Os scripts que hoje temos pela net, funcionam? Ou apenas demonstram como é a lógica empregada?

  - Se eu pegar um script desse e colocar no meu site, funcionara corretamente ? Os correios irão entregar a mercadoria na casa do meu cliente?


--
Atenciosamente,

## Bruno Silva da Costa
## msn: bsil...@hotmail.com

R.Lemos Empire NET

unread,
Jan 15, 2008, 7:35:42 AM1/15/08
to php-b...@googlegroups.com
- Temos que ser cadastrados pra ter acesso a esse recurso?
Não


  - Os scripts que hoje temos pela net, funcionam? Ou apenas demonstram como é a lógica empregada?
Sim, Funcionam, mas vc tem q atentar para alguns detalhes, e outra, caso o site dos correios mude o layout eles deixam de funcionar

  - Se eu pegar um script desse e colocar no meu site, funcionara corretamente ? Os correios irão entregar a mercadoria na casa do meu cliente?
Sim, irão, mas vc não paga nada diretamente por lá, vc apenas imbute no valor do produto. Atente tb para o problema de não haver cálculo de frete acima de 30 Kg, para isso eu inseria uma função que quebrava o valor, calculava cada parte separada e depois somava ovalor para o frete final (caso fosse mais de um produto, caso fosse só um entre em contato com alguma firma de entregas e pergunte pelos preços para adicionar no seu sistema à parte)

2008/1/14 Bruno Costa <bsilva...@gmail.com>:



--
Cordialmente
Roberto Lemos
Consultor WEB

Bruno Costa

unread,
Jan 15, 2008, 8:32:58 AM1/15/08
to php-b...@googlegroups.com
Caro Roberto,

Agradeço suas respostas. Só que "infelizmente" surgiram outras.


   - Os scripts que hoje temos pela net, funcionam? Ou apenas demonstram como é a lógica empregada?
Sim, Funcionam, mas vc tem q atentar para alguns detalhes, e outra, caso o site dos correios mude o layout eles deixam de funcionar

   - Que detalhes são esses? Como posso obter o recurso sem preocupar com o layout dos correios?


  Basicamente seria isso. Agora seguinte, existe a possibilidade de alguém ou até mesmo você me ajudar a criar essa parte de cálculo do frete?



Em 15/01/08, R.Lemos Empire NET <busca...@gmail.com> escreveu:

R.Lemos Empire NET

unread,
Jan 15, 2008, 8:48:41 AM1/15/08
to php-b...@googlegroups.com
é q eles dão um parser filtrando apenas os resultados que vc precisa, sendo assim vc tem q atentar para esses detalhes, caso mude alguma coisa lá vc tem q fz outra forma de filtrar os dados, ae tem q conhecer um pouco de expressões regulares
nada de muito complicado :P

2008/1/15 Bruno Costa <bsilva...@gmail.com>:

Bruno Costa

unread,
Jan 15, 2008, 10:10:29 AM1/15/08
to php-b...@googlegroups.com
Sim.

Poderia então auxiliar-me a criar essa situação?

R.Lemos Empire NET

unread,
Jan 15, 2008, 10:14:39 AM1/15/08
to php-b...@googlegroups.com
bom, utilizo esse code nos meus clientes de ecommerce, como te disse tem gambiarra. Bom, u entrei em contato com os correios e eles me falaram na época q eles tinham um sistema para quem era cadastrado, mas foi tão difícil encontrtrar esse code e fazer o cadastro que acabei montando esse "treco" ae e usando nos sites q havia necessidade

<?php if (!$submit) { ?>
<form action="cep.php"><table width="400" border="0" align="center" cellpadding="5" cellspacing="0">
  <tr>
    <td>Cep Origem </td>
    <td><input name="cep_origem" type="text" id="cep_origem" size="8" maxlength="&#9688;"></td>
  </tr>
  <tr>
    <td>Cep Destino </td>
    <td><input name="cep_destino" type="text" id="cep_destino" size="8" maxlength="8"></td>
  </tr>
  <tr>
    <td>Peso</td>
    <td><font face="verdana" size="2">at&eacute;
        <select name="peso" size="1" id="peso">
          <option value="1" selected>1</option>
          <option value="2">2</option>
          <option value="3">3</option>
          <option value="4">4</option>
          <option value="5">5</option>
          <option value="6">6</option>
          <option value="7">7</option>
          <option value="8">8</option>
          <option value="9">9</option>
          <option value="10">10</option>
          <option value="11">11</option>
          <option value="12">12</option>
          <option value="13">13</option>
          <option value="14">14</option>
          <option value="15">15</option>
          <option value="16">16</option>
          <option value="17">17</option>
          <option value="18">18</option>
          <option value="19">19</option>
          <option value="20">20</option>
          <option value="21">21</option>
          <option value="22">22</option>
          <option value="23">23</option>
          <option value="24">24</option>
          <option value="25">25</option>
          <option value="26">26</option>
          <option value="27">27</option>
          <option value="28">28</option>
          <option value="29">29</option>
          <option value="30">30</option>
        </select>
Kg </font></td>
  </tr>
  <tr>
    <td>M&atilde;o Pr&oacute;pria ? </td>
    <td><font face="verdana" size="2">
      <select name="mao_propria" id="mao_propria">
  <option value="s">Sim</option>
  <option selected value="n">N&atilde;o</option>
</select>
</font></td>
  </tr>
  <tr>
    <td>Aviso de Recebimento </td>
    <td><font face="verdana" size="2">
      <select name="aviso" id="aviso">
        <option value="S">Sim</option>
        <option selected value="N">N&atilde;o</option>
      </select>
    </font></td>
  </tr>
  <tr>
    <td>Valor Declarado </td>
    <td>R$
      <input name="valor" type="text" id="valor"></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><input name="submit" type="submit" id="submit" value="Submit"></td>
  </tr>
</table>
</form>
<?php } else {

    function calcula_frete_correios($cep_origem, $cep_destino, $peso, $mao_propria, $aviso, $valor) {
        $conexao = fsockopen(" www.correios.com.br", 80, $errno, $errstr, 30);
        if (!$conexao) {
            echo "$errstr ($errno)<br />\n";
        }
        else {
            $saida = "GET /encomendas/precos/calculo.cfm?servico=40010&CepOrigem=$cep_origem&CepDestino=$cep_destino&Peso=$peso&MaoPropria=$mao_propria&AvisoRecebimento=$aviso&valorDeclarado=$valor HTTP/1.1\r\n";
            $saida .= "Host: www.correios.com.br\r\n";
            $saida .= "Connection: Close\r\n\r\n";

            fwrite($conexao, $saida);
            $resposta = "";
            while (!feof($conexao)) {
                $resposta .= fgets($conexao, 128);
            }
            fclose($conexao);
            ereg ("&Tarifa=([0-9]+\.[0-9]+)", $resposta, $reg);
            // essa aqui é a gambiarra dessa versão
            if ($reg[1] == "") ereg ("&Tarifa=([0-9]+)", $resposta, $reg);
            $resultado = $reg[1];
            return $resultado;
        }

    }

    // exemplo de uso!!!
    echo calcula_frete_correios ($cep_origem, $cep_destino, $peso, $mao_propria, $aviso, $valor);

?>
<?php } ?>

2008/1/15 Bruno Costa <bsilva...@gmail.com>:

Bruno Costa

unread,
Jan 15, 2008, 10:17:33 AM1/15/08
to php-b...@googlegroups.com
Ok!

Vou fazer aqui e qualquer novidade comunico.

Agradeço a atenção e ajuda prestada!

R.Lemos Empire NET

unread,
Jan 15, 2008, 10:31:00 AM1/15/08
to php-b...@googlegroups.com
de nada amigo, estamos ae pra isso ;)

2008/1/15 Bruno Costa <bsilva...@gmail.com>:
Reply all
Reply to author
Forward
0 new messages