Sistema para Calcular Frete SEDEX e PAC a partir de CEP informado.

CSS, Expressões Regulares, HTML, Internet, Javascript, PHP, Sites Comentar >> Marcelo Korjenioski

Estava pre­ci­sando cal­cu­lar o envio de SEDEX para ven­der alguns pro­du­tos no mer­cado livre e fui pro­cu­rar no Goo­gle se alguem já tinha cri­ado algo para sim­pli­fi­car o cal­culo para agi­li­zar para o usuá­rio.
Entrei um código no fórum http://forum.prestashopbr.com e fiz alguma alte­ra­ções para se encai­xar no que eu pre­ci­sava. Estou com­par­ti­lhando o código.

Exem­plo fun­ci­o­nando.

<?php
if($_POST) {
function frete($cod_servico,$cep_origem,$cep_destino,$peso,$comprimento=0,$altura=0,$largura=0) {
$cep_destino = eregi_replace("([^0-9])","",$cep_destino);
$cep_origem = eregi_replace("([^0-9])","",$cep_origem);

// Crio um objeto para manipular o XML.
$doc = new DomDocument;

// Carrega o arquivo XML com um arquivo DOMDocument
$doc->Load("http://ws.correios.com.br/calculador/CalcPrecoPrazo.aspx?StrRetorno=xml&amp;nCdServico=" . $cod_servico . "&amp;nVlPeso=" . $peso . "&amp;sCepOrigem=" . $cep_origem . "&amp;sCepDestino=" . $cep_destino . "&amp;nCdFormato=1&amp;nVlComprimento=" . $comprimento . "&amp;nVlAltura=" . $altura . "&amp;nVlLargura=" . $largura);

// Defino o nome do elemento pai (root).
$root = $doc->getElementsByTagName('cServico');

// Defino o nome dos elementos filhos no arquivo XML que eu desejo.
$children = array('Valor','PrazoEntrega');

// Faço um loop para pegar todos os elementos pai (root) encontrados.
$valor = array();
for ($i=0; $i < $root->length; $i++) {
// Pega o valor do atributo do elemento pai  (root).
$id =  $root->item($i)->getElementsByTagName('Codigo')->item(0)->nodeValue;

if($root->item($i)->getElementsByTagName('Erro')->item(0)->nodeValue > 0) {
echo $root->item($i)->getElementsByTagName('MsgErro')->item(0)->nodeValue;
die;
}

// Busca por elementos filhos (child) definidos no array
foreach ($children as $child) {
$valor[$id][$child] = $root->item($i)->getElementsByTagName($child)->item(0)->nodeValue;
}
}

return $valor;
}

// Código do Serviço que deseja calcular, veja tabela acima:
if ($_POST['cep-destino']) {
//$cod_servico = $_POST['servico'];
$cep_origem = '81010210';// CEP de Origem, em geral o CEP da Loja
$cep_destino = $_REQUEST['cep-destino'];// CEP de Destino, você pode passar esse CEP por GET ou POST vindo de um formulário
$peso = '0.300';// Peso total do pacote em Quilos, caso seja menos de 1Kg, ex.: 300g, coloque 0.300
// COMPRIMENTO: comprimento do volume em centímetros - somente número de 16 a 60
$comprimento = 30;
// ALTURA: altura do volume em centímetros - somente número de 2 a 60
$altura = 15;
// LARGURA: largura do volume em centimetros - somente número de 5 a 60
$largura = 20;
$fretes = frete('41106,40010',$cep_origem,$cep_destino,$peso,$comprimento,$altura,$largura);

foreach ($fretes as $servico => $campos ) {
$valor = str_replace(",", ".", $campos['Valor']);
$valor = $valor  + 4.00;
$valor = number_format($valor,2, ',', '');
if($servico == '41106') {
echo " Valor PAC " . $valor  . " prazo de entrega {$campos['PrazoEntrega']} dia(s).<br/>";
} elseif ($servico == '40010') {
echo " Valor SEDEX " . $valor  . " prazo de entrega {$campos['PrazoEntrega']} dia(s).<br/>";
}
}
}

} else {
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd</a>">
<html xmlns="<a href="http://www.w3.org/1999/xhtml">http://www.w3.org/1999/xhtml</a>">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link href="<a href="http://demo.phaneronsoft.com/img/favicon.ico">http://demo.phaneronsoft.com/img/favicon.ico</a>" rel="shortcut icon" type="image/x-icon" />
<title>Sistema para Calcular Frete SEDEX e PAC a partir de CEP informado. | Phaneronsoft</title>
<script src="<a href="http://ajax.googleapis.com/ajax/libs/prototype/1.6.0.3/prototype.js">http://ajax.googleapis.com/ajax/libs/prototype/1.6.0.3/prototype.js</a>" type="text/javascript"></script>
<script type="text/javascript">
function submitForm() {
/*
usa método request() da classe Form da prototype, que serializa os campos
do formulário e submete (por POST como default) para a action especificada no form
*/
function mostrarLoading(){
$('loading').style.display = 'block';
$('value').innerHTML = ' ';
}

$('form-pesquisa-repasse').request({
onLoading:mostrarLoading,
onComplete: function(transport){
/*
se o retorno for diferente de -1, entende-se que não houve problemas, então apaga-se
os campos do formulário usando o método reset() da classe Form
*/
if(transport.responseText !=-1)  {
$('loading').style.display = 'none';
$('value').innerHTML = transport.responseText;
} else {
$('form-pesquisa-repasse').reset();
$('loading').style.display = 'none';
$('value').innerHTML = 'Erro ao consultar';
}
}

});
return false;
}
</script>
<style type="text/css">

* {
font-family:"Trebuchet MS","Lucida Grande",Verdana,Tahoma,Helvetica,Arial,sans-serif;
font-size:12px;
font-style:normal;
font-variant:normal;
font-weight:normal;
line-height:normal;
}

body {
background:#FFFFFF none repeat scroll 0 0;
height:100%;
margin:0;
margin-top:20px;
width:100%;
}

div#wrapper {
margin:auto;
position:relative;
width:450px;
z-index:0;
}

.select {
text-transform:uppercase;
width:99%;
border:1px solid #B6B6B6;
display:block;
}

.formSearch fieldset {
border:1px solid #CCCCCC;
margin:0;
padding:0 10px;
}

label {
display:block;
/*float:left;*/
margin-right:4px;
padding-bottom:5px !important;
}

legend {
color:#1E398D;
font-family:"Legacy Sans ITC TT Bold","Trebuchet MS","Lucida Grande",Verdana,Tahoma,Helvetica,Arial,sans-serif;
font-size:1.5em;
padding:10px 5px;
}

.button {
background:#F5EED3;
border:1px solid #CCCCCC;
color:#666666;
cursor:pointer;
font-size:12px;
font-weight:bold;
letter-spacing:1px;
margin:10px 0 0;
overflow:visible;
text-transform:uppercase;
width:150px;
}

.formMain .inline {
margin:15px 0 0 !important;
}

.text,  .select,  .textarea, .password {
border:1px solid #B6B6B6;
display:block;
text-transform:uppercase;
}

fieldset span.nameField {
color:#666666;
text-transform:uppercase;
}

h3 {
border-bottom:1px solid #F58220;
margin:0;
padding:0;
}

h3 span {
-x-system-font:none;
color:#1E398D;
font-family:"Legacy Sans ITC TT Bold","Trebuchet MS","Lucida Grande",Verdana,Tahoma,Helvetica,Arial,sans-serif;
font-size:1.5em;
font-style:normal;
font-variant:normal;
font-weight:bold;
line-height:normal;
}

#value {
-x-system-font:none;
color:#9B0000;
font-family:"Legacy Sans ITC TT Bold","Trebuchet MS","Lucida Grande",Verdana,Tahoma,Helvetica,Arial,sans-serif;
font-size:1.5em;
font-style:normal;
font-variant:normal;
font-weight:bold;
line-height:normal;

}

#rastrear {
padding-top:30px;
}

#loading {
display:none;
color:#9B0000;
font-family:"Legacy Sans ITC TT Bold","Trebuchet MS","Lucida Grande",Verdana,Tahoma,Helvetica,Arial,sans-serif;
font-size:1.5em;
font-style:normal;
font-variant:normal;
font-weight:bold;
line-height:normal;
text-transform:capitalize;
}
</style>

</head>
<body>
<center>
</center>
<div id="wrapper">
<h3>
<span>Pesquisa valor de frete</span>

</h3>
<form id="form-pesquisa-repasse" action="" method="post" onsubmit="submitForm(); return false;" class="formMain formSearch wsizep100">
<fieldset>
<legend>Filtrar Referência</legend>
<label class="wsize010" for="cep-destino">
<span class="nameField">CEP Destino</span>
<input id="cep-destino" class="text" type="text" value="" maxlength="9" title="CPF destino" name="cep-destino" tabindex="2"/>
</label>
<label for="pesquisar" class="wsize010">
<input type="button" onclick="submitForm(); return false;" value="pesquisar" class="button inline"/>
</label>
</fieldset>
</form>
<span>* Digitar somente número no CEP</span>
<br />
<span id="value"></span>
<span id='loading'>Pesquisando...</span>
</div>
</body>
</html>
<?php
} // fim else

?>

Caso tenha alguma duvida deixe um comen­tá­rio que terei pra­zer em aju­dar.
Comen­tá­rios são bem vin­dos assim posso melho­rar a qua­li­dade dos tuto­ri­ais aqui apresentados.

<?php

//script original pego em http://forum.prestashopbr.com/viewtopic.php?f=9&amp;t=322&amp;start=30

#####################################
# Código dos Serviços dos Correios  #
#    FRETE PAC = 41106       #
#    FRETE SEDEX = 40010       #
#    FRETE SEDEX 10 = 40215       #
#    FRETE SEDEX HOJE = 40290    #
#    FRETE E-SEDEX = 81019       #
#    FRETE MALOTE = 44105       #
#    FRETE NORMAL = 41017       #
#   SEDEX A COBRAR = 40045       #
#####################################
if($_POST) {
// Código do Serviço que deseja calcular, veja tabela acima:
if ($_POST['servico']) {
$cod_servico = $_POST['servico'];
}
// CEP de Origem, em geral o CEP da Loja
$cep_origem = '81010210';
// CEP de Destino, você pode passar esse CEP por GET ou POST vindo de um formulário

$cep_destino = $_POST['cep-destino'];

$cep_destino = eregi_replace("([^0-9])","",$cep_destino);

// Peso total do pacote em Quilos, caso seja menos de 1Kg, ex.: 300g, coloque 0.300
$peso = '0.300';
// URL de Consulta dos Correios
$correios = "http://www.correios.com.br/encomendas/precos/calculo.cfm?servico=".$cod_servico."&amp;cepOrigem=".$cep_origem."&amp;cepDestino=".$cep_destino."&amp;peso=".$peso."&amp;MaoPropria=N&amp;avisoRecebimento=N&amp;resposta=xml";

// Capta as informações da página dos Correios
$correios_info = file($correios);
// Processa as informações vindas do site dos correios em um Array
foreach($correios_info as $info){
// Busca a informação do Preço da Postagem
if(preg_match("/\<preco_postal>(.*)\<\/preco_postal>/",$info,$tarifa)){
$embalagem = 4.00; // Aqui você  pode colocar o valor da embalagem para envio do produto
$total = $tarifa[1] + $embalagem;
}
}

// Neste exemplo estou colocando apenas PAC e SEDEX
switch ($cod_servico) {
case 41106:
$nome_servico = "Valor do frete via PAC ";
break;
case 40010:
$nome_servico = "Valor do frete via SEDEX ";
break;
}

// Caso venha valor de resposta é numerio e maior que o custo da embalagem senão ocorreu algum erro na solicitação.
if(is_numeric($total) &amp;&amp; ($total > $embalagem)) {
// Quando encontra o valor da postagem, exibe na página formatando em padrão de moeda 10,89
// Caso você não queira formatar basta comentar a linha abaixo que será exibido assim 10.89 e basta executar o comando abaixo
$total = number_format($total,2,',','.');
echo $nome_servico . $total;
} else {
echo 'Erro ao consultar verifique se CEP esta correto';
}
} else {
?>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/prototype/1.6.0.3/prototype.js" type="text/javascript"></script>
<script type="text/javascript">
function submitForm(form) {
/*
usa método request() da classe Form da prototype, que serializa os campos
do formulário e submete (por POST como default) para a action especificada no form
*/
form.request({
onComplete: function(transport){
/*
se o retorno for diferente de -1, entende-se que não houve problemas, então apaga-se
os campos do formulário usando o método reset() da classe Form
*/

if(transport.responseText !=-1)  {
$('value').innerHTML = transport.responseText;
} else {
form.reset();
$('value').innerHTML = 'Erro ao consultar';
}
}
});
return false;
}

</script>
<style type="text/css">

* {
font-family:"Trebuchet MS","Lucida Grande",Verdana,Tahoma,Helvetica,Arial,sans-serif;
font-size:12px;
font-style:normal;
font-variant:normal;
font-weight:normal;
line-height:normal;
}

body {
background:#FFFFFF none repeat scroll 0 0;
height:100%;
margin:0;
margin-top:20px;
width:100%;
}

div#wrapper {
margin:auto;
position:relative;
width:450px;
z-index:0;
}

.formMain .select {
text-transform:uppercase;
width:99%;
border:1px solid #B6B6B6;
display:block;
}

.formSearch fieldset {
border:1px solid #CCCCCC;
margin:0;
padding:0 10px;
}

.formMain label {
display:block;
float:left;
margin-right:4px;
padding-bottom:5px !important;
}

.formMain legend {
color:#1E398D;
font-family:"Legacy Sans ITC TT Bold","Trebuchet MS","Lucida Grande",Verdana,Tahoma,Helvetica,Arial,sans-serif;
font-size:1.5em;
padding:10px 5px;
}

.formMain .button {
background:#F5EED3;
border:1px solid #CCCCCC;
color:#666666;
cursor:pointer;
font-size:12px;
font-weight:bold;
letter-spacing:1px;
margin:10px 0 0;
overflow:visible;
text-transform:uppercase;
width:100%;
}

.formMain .inline {
margin:15px 0 0 !important;
}

.formMain .text, .formMain .select, .formMain .textarea, .formMain .password {
border:1px solid #B6B6B6;
display:block;
text-transform:uppercase;
}

.formMain fieldset span.nameField {
color:#666666;
text-transform:uppercase;
}

h3 {
border-bottom:1px solid #F58220;
margin:0;
padding:0;
}

h3 span {
-x-system-font:none;
color:#1E398D;
font-family:"Legacy Sans ITC TT Bold","Trebuchet MS","Lucida Grande",Verdana,Tahoma,Helvetica,Arial,sans-serif;
font-size:1.5em;
font-style:normal;
font-variant:normal;
font-weight:bold;
line-height:normal;
}

#value {
-x-system-font:none;
color:#9B0000;
font-family:"Legacy Sans ITC TT Bold","Trebuchet MS","Lucida Grande",Verdana,Tahoma,Helvetica,Arial,sans-serif;
font-size:1.5em;
font-style:normal;
font-variant:normal;
font-weight:bold;
line-height:normal;
}
</style>

</head>
<body>
<div id="wrapper">
<h3>
<span>Pesquisa valor de frete</span>

</h3>
<form id="form-pesquisa-repasse" action="" method="post" onsubmit="submitForm(this); return false;">
<fieldset>
<legend>Filtrar Referência</legend>
<label for="servico">
<span>Envio</span>
<select id="servico" name="servico" title="Serviços dos Correios" tabindex="1">
<option value="41106">PAC</option>
<option value="40010">SEDEX</option>
</select>
</label>
<label for="cep-destino">
<span>CEP Destino</span>
<input id="cep-destino" type="text" value="" maxlength="9" title="CPF destino" name="cep-destino" tabindex="2"/>
</label>
<label for="pesquisar">
<input type="submit" id="pesquisar" name="pesquisar" tabindex="3"  value="Pesquisar" />
</label>
</fieldset>
</form>
<span>* Digitar somente número no CEP</span>
<br />
<span id="value"></span>
</div>
</body>
</html>
<?php
} // fim else
?>
Com­par­ti­lhe com seus ami­gos:
  • Print
  • Facebook
  • Google Bookmarks
  • PDF
  • RSS
  • Twitter
  • LinkedIn



View Comments to “Sistema para Calcular Frete SEDEX e PAC a partir de CEP informado.”

  1. Cristiane Schwinden Says:

    olá,
    pro­mei­ra­mente obri­gada pela dica do cal­culo de frete, vc pode­ria me dizer se tem q ins­ta­lar algo adi­ci­o­nal para q este script fun­ci­one? copiei o codigo e colei, sal­vei como correio.php, publi­quei na locaweb mas quando clico em cal­cu­lar a página fica em branco.
    abraços

  2. Marcelo Korjenioski Says:

    Olá Cris­ti­ane,
    Não é neces­sá­rio ins­ta­lar nada.
    O plug­gin do Word­Press fez uma bagunça no código.
    Já cor­rigi e tes­tei. Qual­quer duvida me pro­cure. Irei tes­tar os códi­gos que são pos­ta­dos para que este tipo de pro­blema não ocorra.

  3. palloma Says:

    ola como faço pra colo­car esse cal­culo de cep no mer­cado livre?? obrigada.

  4. Marcelo Korjenioski Says:

    Olá Pal­loma.

    Basta hos­pe­dar este código em um ser­vi­dor que suporte PHP e colo­car link desta página na des­cri­ção do pro­duto.
    Este ser­vi­dor é gra­tuito http://www.phpnet.us/ com ele já é pos­si­vel tes­tar o código basta fazer o cadas­tro.
    Segue o link direto para cadas­tro.
    http://www.phpnet.us/signup.php

  5. Rafael Says:

    Na Locaweb já pos­sui um script pronto para cal­cu­lar frete pelos cor­reios. Muito mais sim­ples para quem ja uti­liza a locaweb. Basta pro­cu­rar na locaweb como uti­li­zar.
    Muito fáá­cil!
    Valewww

    *Não des­me­re­cendo o código do amigo aqui.
    Só para faci­liar msm para quem uti­liza a locaweb! =]

  6. Marcelo Korjenioski Says:

    Obri­gado por com­par­ti­lhar a infor­ma­ção Rafael.
    A Locaweb sem­pre tem ótimas solu­ções para seus cli­en­tes.
    Segue o wiki com a solu­ção.
    http://wiki.locaweb.com.br/pt-br/C%C3%A1lculo_de_Frete

  7. Fabio Says:

    Boa tarde Rafael, esse codigo é muito bom, mais tenho uma duvida, no caso de frete via PAC, eu tenho de infor­mar as dimen­sões, Lar­gura, Com­pri­mento e Altura. Onde se encon­tra esses cam­pos no codigo? Muito obrigado.

  8. Marcelo Korjenioski Says:

    Olá Fabio.
    Não tem como setar as dimen­sões do PAC pelo menos não mos­tra no link do cor­reio.
    Acesse http://www.correios.com.br/encomendas/precos/calculo.cfm
    Abra o fonte desta pagina e veja que tem um javas­cript que abre um pop e nele tem todos os para­me­tros. Se encon­trar algo post aqui por favor.

  9. Marcelo Korjenioski Says:

    Olhando no fonte do javas­cript da pagina para
    cal­cu­lar frete vi que a parte de dimen­sões do pacote PAC só não pode ultra­pas­sar alguns valo­res que estão neste link

    Aqui esta o código de vali­da­ção. Pro­cure pela fun­ção validarCaixa.

  10. Marcelo Korjenioski Says:

    Para faci­li­tar a vida eu adi­ci­o­nei uma ER para dei­xar somente numero na entrada do CEP destino.

  11. Mokarzel Says:

    Tem como eu usar esse código no Word Press, junto com o sis­tema de e-commerce?
    Obrigado!

  12. Marcelo Korjenioski Says:

    É pos­sí­vel usar o código acre­dito que com peque­nas mudan­ças vc irá con­se­guir inte­grar com o sis­tema já que este código é sim­ples e não depende de nenhuma biblioteca.

  13. Marcelo Korjenioski Says:

    Lan­çada uma nova versão.

  14. Phaneronsoft » Blog Archive » Bibliotecas AJAX que o google fornece diminuem a carga no seu servidor. Says:

    […] um exem­plo aqui no site sobre  Sis­tema para Cal­cu­lar Frete SEDEX e PAC a par­tir de CEP infor­mado eu faço o uso do pro­totype para res­ga­tar os dados via […]

  15. Diogo Says:

    Oi amigo, achei muito inte­res­sante você pas­sar esse script, vou tes­talo ainda no ser­vi­dor. O pro­blema é que fui abrir e tes­tar link de exem­plo e deu erro. Espero que o pro­blema seja aqui, rs. Mais tudo bem, espero ler mais arti­gos seu com PHP, abra­ços!!!! :-)

  16. Marcelo Korjenioski Says:

    Não é erro com seu ser­vi­dor não… eu pos­tei o código em ver­são HTML e foi con­ver­tido os && (and) para &amp; obri­gado pela ajuda Diogo.

  17. Diogo Says:

    valeu, to vendo agora está tudo per­feito. Sua demons­tra­ção está fun­ci­o­nando e tes­tei aqui em loca­lhost está per­feito. Eu que­ria colo­car um campo com a opção de Quan­ti­da­des de pro­duto. Vou ten­tar aqui, obri­gado e abraços.

  18. Leandro Says:

    Amigo, repa­rou q o eSe­dex retorna como código de ser­viço invá­lido?
    Obrigado.

  19. Marcelo Korjenioski Says:

    Vi que no site do cor­reio não esta mais retor­nando valor para este tipo de ser­viço. Mas o código é esta.
    Per­cebi tam­bém que somente o PAC e SEDEX estão fun­ci­o­nando. Assim que tiver um tempo vou ten­tar cor­ri­gir este pro­blema. Se alguém encon­trar uma solu­ção favor pos­tar aqui.

  20. Rodrigo Peixoto Says:

    Muito obri­gado cara, usei seu script pra colo­car neste site aqui http://www.flaroots.com.br na gale­ria de even­tos tem um link com­prar foto e lá eu colo­quei o script cal­cu­lar frete. Obrigado!

  21. Phaneronsoft » Blog Archive » Sistema para rastrear entregas no Correio. Says:

    […] Como não gosto de ficar aper­tando F5 no site dos cor­reios que vive com pro­ble­mas resolvi fazer a con­sulta via Ajax. O codigo é sim­ples e apro­vei­tei a ideia do sis­tema para cal­cu­lar frete. […]

  22. DR DOG Says:

    Olá Mar­celo tudo bem?
    Gos­ta­ria que você me aju­dasse a colo­car na minha pri­meira pagina de meu blog/site
    Tres ban­ners tipo cal­cule seu frete aqui
    sendo 1 para cada ítem,
    ao entrar no meu blog/site verá que já fiz váris ten­ta­ti­vas e não con­se­gui por não enten­der nada de sites.
    Pode me aju­dar?
    Abra­ços
    Dr Dog — Silvio

  23. Marcelo Korjenioski Says:

    Olá Dr Dog.
    Se seu Blog for no Word­Press vc pode aci­di­o­nar o código cri­ando um Wid­gets de campo per­so­na­li­zado assim basta colar o código neste campo.

  24. jose Says:

    O MERCADO LIVRE É UMA PORCARIA MESMO, NEM UM CALCULADOR DE FRETE OFERECE PARA OS USUÁRIOS.

  25. Marcelo Korjenioski Says:

    Seria bom um cal­cu­la­dor de frete no ML aju­da­ria muita gente.

  26. Luiz Carlos Says:

    Olá amigo! temo como arru­mar este código já cori­gido para quen eu colo­que em meu site? http://comerciobr.com.br
    Ou se alguem tem outro melhor e mais prá­tico. Estou acei­tando ajuda.
    Obrigado

  27. Phaneronsoft » Blog Archive » Sistema para Calcular Frete SEDEX e PAC versão 1.1 ( PAC esta funcionando ) Says:

    […] Sis­tema para Cal­cu­lar Frete 1.1 […]

  28. Diogo Says:

    Não tes­tei o script, mas eu uso um simi­lar e não está mais fun­ci­o­nando o cal­culo do PAC. Parece que os cor­reios remo­veu o PAC desse cal­culo. Já ten­tei pas­sar as vari­a­veis que agora sao obri­ga­to­rias para cal­cu­lar o pac: o for­mato, com­pri­mento, lar­gura, altura, mas nada. Se alguem sou­ber de algo, da um toque, farei o mesmo. valeu.

  29. Marcelo Korjenioski Says:

    Ocor­reu uma mudança sim neste post vc vai encon­trar a nova docu­men­ta­ção e uma exem­plo do PAC funcionando.

  30. Diogo Says:

    Muito obri­gado cama­rada. Deu certo!

  31. Michael Says:

    Cara per­feito! Tudo que eu estava pre­ci­sando. É difi­cil encon­trar quem com­par­ti­lha infor­ma­ção assim. Obrigado!

  32. Marcelo Cajaíba Says:

    Olá o cal­culo do frete sem­pre arre­donda tipo se no site dos cor­reios eu cal­culo dá 17,20 no desse codigo dá 17,00 como cor­ri­gir isso

  33. Marcelo Korjenioski Says:

    Fiz uma alte­ra­ção no código. O pro­blema estava que nos cor­reios o valor vem com vir­gula e estava colo­cando o custo adi­ci­o­nal com ponto.
    Obri­gado pelo aviso.

  34. rennan Says:

    Mar­celo exce­lente cal­cu­la­dor de frete, mas estou com um pro­blema na linha 11
    $doc->Load(“<a href=“http://shopping.correios.com.br/
    Logo depois do // o edi­tor acha que é comen­ta­rio pq?

  35. Marcelo Korjenioski Says:

    Já foi cor­ri­gido o link por favor faca um teste.

  36. Edno Nunes Ferreira Says:

    Cara valeu mesmo, nem tes­tei em meus códi­gos, mas se fun­ci­ona eu me viro aqui, apa­ren­te­mente vc sal­vou minha pele pq meus sites para­ram de cal­cu­lar os fre­tes por causa de alguma mudança :/
    valeu!

  37. carlos Says:

    da um erro;

    Input string was not in a cor­rect format.

    oq ue faço

  38. Cesimar Dias Says:

    Mar­celo, per­feito seu código. Depois de muito pro­cu­rar pela net, juro pra você que o seu foi o unico codigo que deu certo. Vlw!

  39. Jano Says:

    Olá. Gos­ta­ria de saber o que está cau­sando o erro no site https://mixcolorinformatica.websiteseguro.com/frete_pac.php .
    Inserí o novo código, atu­a­li­zado por você, porém não exibe os valo­res nem o prazo.
    Obrigado.

  40. Jano Says:

    Olá.
    Tes­tei o código no site http://www.mixcolorinformatica.com.br/frete_pac e não está fun­ci­o­nando. O código é exa­ta­mente igual ao que você pos­tou, o que pode estar ocor­rendo ? Existe alguma dire­tiva que tem que ser ati­vada para o script fun­ci­o­nar ?
    Att

  41. Jano Says:

    Olá.
    Tes­tei o último código pos­tado para cál­culo do PAC, mas o mesmo não fun­ci­ona no site: http://www.mixcolorinformatica.com.br/frete_pac.php

    Pre­cisa ati­var alguma dire­tiva para fun­ci­o­nar o script ?
    Att.

  42. Débora Says:

    Olá Mar­celo,
    Gos­ta­ria de saber como eu faço para cal­cu­lar o frete quando há mais de um item no car­ri­nho? Tipo somos todas as medi­das e cal­culo como uma só? Por­que nos cor­reios existe um limite onde o comprimento+largura+altura nao pode ultra­pas­sar 150 cm? Você já desen­vol­vou algo nesse sentido?

  43. Marcelo Korjenioski Says:

    Ainda não tenho pronto nada pronto Débora mas já senti a neces­si­dade igual a você. O cal­culo para efe­tuar este tipo de infor­ma­ção é com­plexo já que tere­mos dife­ren­tes tama­nhos de emba­la­gens então para faci­li­tar o cal­culo se fizer um algo­ri­timo que se baseia em quan­tos itens cabem na emba­la­gem em que eles irão ser envi­ado fica mais facil. Irei fazer minha mono­gra­fia cri­ando um sis­tema para fazer este tipo de cal­culo quando ter­mi­nar irei dis­po­ni­bi­li­zar aqui no blog.
    Obrigado.

  44. Rodrigo Says:

    Olá Mar­celo… estou com o seguinte erro que apa­re­ceu do nada… e não fiz alte­ra­ção nenhuma no código.

    War­ning: DOMDocument::load() [domdocument.load]: URL file-access is disa­bled in the ser­ver con­fi­gu­ra­tion in /home/rodrigo/public_html/frete.php on line 11

    War­ning: DOMDocument::load(http://shopping.correios.com.br/wbm/shopping/script/CalcPrecoPrazo.aspx?StrRetorno=xml&nCdServico=41106,40010&nVlPeso=1&sCepOrigem=03633000&sCepDestino=01000000&nCdFormato=1&nVlComprimento=16&nVlAltura=2&nVlLargura=11) [domdocument.load]: fai­led to open stream: no sui­ta­ble wrap­per could be found in /home/rodrigo/public_html/frete.php on line 11

    War­ning: DOMDocument::load() [domdocument.load]: I/O war­ning : fai­led to load exter­nal entity “http://shopping.correios.com.br/wbm/shopping/script/CalcPrecoPrazo.aspx?StrRetorno=xml&nCdServico=41106,40010&nVlPeso=1&sCepOrigem=03633000&sCepDestino=01000000&nCdFormato=1&nVlComprimento=16&nVlAltura=2&nVlLargura=11″ in /home/rodrigo/public_html/frete.php on line 11

  45. Marcelo Korjenioski Says:

    Isso é pro­blema de cone­xão com os cor­reios. Tenho que arru­mar o codigo para tra­tar exceção.

  46. Débora Says:

    Olá Mar­celo, tive um pro­blema pare­cido tb ao imple­men­tar. Apa­rece a seguinte men­sa­gem de erro: Mes­sage: DOMDocument::load() [domdocument.load]: URL file-access is disa­bled in the ser­ver configuration

    File­name: frete/consultafrete_helper.php

    O site estar hos­pe­da­dos na Insite.

  47. danilo Says:

    Olá mar­celo esse cal­culo do frete esta muito bom, só que estou com o mesmo pro­blema do rapaz que fez a per­gunda de numero 44. pro­blema na cone­xao com os cor­reios, na parte que o frete fica sepa­rado no meu site tive que colo­car um outro codigo que so fun­ci­ona o sedex, eu mas no car­ri­nho de com­pra to usando esse e quando tava fun­ci­o­nando tava uma mara­vi­lha pode me aju­dar a con­ser­tar esse erro ? obrigado.

  48. carlos Says:

    Cara, boa tarda, nova­mente esta dando erro na url do cor­reios, testa nova­mente para vc ver o resul­dado…
    O que pode­mos fazer para arru­mar isso?

  49. Carlos Says:

    Bom Galera, Veri­fi­quei na net sobre a url dos correios,(“Pois tive alguns pro­ble­mas com cli­en­tes”), e desde 02/08 que foi mudada, bom no arquivo acima que uti­lizo tb. em meus e-commerce mudei a url antiga para esta:
    http://ws.correios.com.br/calculador/CalcPrecoPrazo.aspx?
    aki no meu site deu certo, qual­quer coisa esta­mos ae, se alguem saber outra forma, comenta ai, vamos com­par­ti­lhar conhe­ci­men­tos.
    abs..

  50. Marcelo Korjenioski Says:

    O ser­viço esta fora desde ontem você con­se­guiu fazer o ser­viço fun­ci­o­nar Carlos?

  51. Marcelo Korjenioski Says:

    Pois é os cor­reios não tem uma boa ideia sobre o que é um web­ser­vice. Eles vivem mudando os para­me­tros com muita fre­quen­cia. Isso difi­culta muito o tra­ba­lho. Espero que um dia con­si­gam esta­bi­li­zar o serviço.

  52. Suelem Cabral Says:

    não con­sigo fazer fun­ci­o­nar.. so dá esse erro: Input string was not in a cor­rect format.

  53. Carlos Says:

    tenho tbm alguns anun­cios no mer­cado livre, mas como posso fazer agra­deco se puder me aju­dar , sei q o ML tra­ba­lha em html mas ‚nao sei por onde comeco para colo­car 1 cal­cu­la­dor no meu anun­cio,
    grato! meu email> estudiobase@hotmail.com

  54. Eluis3451 Says:

    Ola tbem tenho anun­cio no mer­cado livre e nao sei aonde acho o cal­culo de frete e como faço pra colo­car passo a passo no anun­cio do mer­cado livre eluis3451@hotmail.com obri­gado aguardo resposta

Deixe um comentário

blog comments powered by Disqus
Designed by NattyWP Wordpress Themes.
Images by desEXign.