Carrinho Compras – Calcular Valor Do Frete

Há algumas semanas atrás, comentamos sobre carrinho de compras, porém, atendendo a pedidos dos visitantes do webmaster.pt, hoje falaremos mais sobre este assunto.

Uma das maiores dificuldades de quem trabalha com vendas através da Internet é a “cobrança de preço justo”. Isto é: Alguns compradores estão na mesma cidade onde a empresa ou o vendedor estão, outros estão em outros Estados ou Países!

Se você for analisar a situação, nada mais justo que o Internauta que mora em outro Estado ou País pagar um pouco mais caro, concorda comigo?

Analisei na Internet sobre este assunto e pouco se fala sobre este assunto! O pouco que falam é cópia um do outro, importando às outras soluções os mesmos erros e dúvidas!

Por este motivo, nosso foco de hoje será elaborar script que calcule o valor do frete (para você posteriormente implementar no carrinho de compras).

Como de costume, no final de nossa matéria, disponibilizamos o código fonte para testes.

Como Funciona A Busca?

Antes de pensarmos em programar, o ideal é sabermos como o script funciona este script!

Nosso trabalho será apenas o de capturar os dados principais através do formulário, tratá-los junto ao site dos correios e em seguida, retornar em tela a informação necessária às suas atividades!

Descreverei abaixo qual a finalidade dos campos principais (que deverão passar suas informações ao site dos correios através do método GET):

nCdServico: Hoje um dos mais usados é o “40010”, porém, baseado nos exemplos abaixo, você pode alterar conforme sua necessidade.

  • 40215 – SEDEX 10
  • 40010 – SEDEX CONVENCIONAL
  • 40096 – SEDEX
  • 40045 – SEDEX A COBRAR
  • 40290 – SEDEX HOJE
  • 41017 – Encomenda Normal

sCepOrigem: Neste campo você poderá passar ao formulário o CEP de onde será retirado o produto a ser enviado.

sCepDestino: Através deste campo seu cliente poderá informar o CEP para onde será entregue o produto.

nVlPeso: Deverá ser apresentado (pelo administrador do site) o peso do produto.

OBS.: deverá ser usado peso máximo de 30. Caso haja necessidade de separar as casas decimais, deverá usar por exemplo 0.2

Bem… existem outros campos que você trará o resultado, mas… chega de teoria, né? Vamos agora à parte prática!

Através dos códigos abaixo você poderá trazer em tela as informações necessárias para implementar seu carrinho de compras.

Veja o código da página “index.php”:





:: WebMaster.PT - Implementando um Carrinho de Compras ::


Pesquisa valor de frete

Filtrar Referência




* Digitar somente número no CEP





Página Inicial

OBS.: Como você pode ver, o código acima não está limpo!

Nossa finalidade principal é apresentar a qualidade disponível no script que tratará as informações!

Veja abaixo como vai ficar a página “calcularfrete.php”


(.*)\<\/Valor>/",$info,$tarifa)) {

$total = $tarifa[1] + EMBALAGEM;
}
if(preg_match("/\(.*)\<\/PrazoEntrega>/",$info,$PrazoEntrega)) {implementando-um-c
$PrazoEntrega = $PrazoEntrega[1];
}
}

// Neste exemplo estamos usando apenas PAC e SEDEX. Caso seja necessário, utilize outras opções.
switch ($cod_servico) {
case 41106:
$nome_servico = " PAC ";
break;
case 40010:
$nome_servico = " 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) and ($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 . ' prazo entrega de ' . $PrazoEntrega . ' dia(s) ';
} else {implementando-um-c
echo 'Erro ao consultar verifique se CEP esta correto';
}
}
?>

Após calcular o CEP, o script retornará as informações (conforme imagem a seguir)

O Script retorna as informações

Bem… talvez de início você fique meio perdido, mas… se você analisar detalhadamente o script “calcularFrete.php”, certamente não terá qualquer problema ao implementar sua loja virtual.

Não perca nossas próximas matérias!

Estaremos falando ainda mais sobre o carrinho de compras e scripts que podem facilitar ainda mais a vida do vendedor ou dono do site.

Download do código utilizado neste tutorial: Carrinho Compras – Calcular Valor Do Frete

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)

15 Responses

    1. Olá! O erro que eu vejo no URL que você indicou é: Parse error: syntax error, unexpected T_VARIABLE in /home/belojard/public_html/ficheiros/calcularFrete.php on line 77 Ora, este ficheiro calcularFrete.php fecha a tag php na linha 65. Termina aí o código. Você alterou o ficheiro. E o erro é de sintaxe do PHP. Um Abraço! Rui Soares

  1. olá ainda nao consegui, vc tem um link dele funcionando ou poderia enviar para meu email os dois scripts para eu publicar no servidor, tanto o index.php (form) quanto o calcularfrete.php tenho muito interesse nisto, tenho um trabalho pendente que depende deste sistema, pois o que eu fiz dá erro na ENCOMENDA NORMAL só dá certo no SEDEX.

  2. Parabéns pelo tutorial mas em um primeiro teste não rodou, claro que não sou um as no php mas de cara informa uma url inválida. Se tiver um tempinho da uma revisada. Parabéns mais uma vez.

  3. Ta dando erro…. eu testei o codigo baixado e da esse erro….
    Warning: file (http://shopping.correios.com.br/wbm/shopping/script/CalcPrecoPrazo.aspx?StrRetorno=xml&nCdServico=40010&nVlPeso=2&sCepOrigem=13060-854&sCepDestino=03534000&nCdFormato=1&nVlComprimento=20&nVlAltura=15&nVlLargura=20) [function.file]: failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in /home/th51807/public_html/teste/calcularFrete.php on line 28

    Warning: Invalid argument supplied for foreach() in /home/th51807/public_html/teste/calcularFrete.php on line 31
    Erro ao consultar verifique se CEP esta correto

  4. Olá, parabéns pela matéria…
    Bom, eu estou com o mesmo problema relatado pelo amigo Robson e não consigo resolver, preciso de uma ajuda porque é muito importante este script… outro detalhe se tenho vários itens no carrinho com tamanhos diferentes como calcular o montante deste itens no frete ou o peso?
    No aguardo, Ronaldo

  5. olá pessoal to com o mesmo erro, podem me ajudar?
    Warning: file (http://shopping.correios.com.br/wbm/shopping/script/CalcPrecoPrazo.aspx?StrRetorno=xml&nCdServico=40010&nVlPeso=2&sCepOrigem=13060-854&sCepDestino=03534000&nCdFormato=1&nVlComprimento=20&nVlAltura=15&nVlLargura=20) [function.file]: failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in /home/th51807/public_html/teste/calcularFrete.php on line 28 

    Warning: Invalid argument supplied for foreach() in /home/th51807/public_html/teste/calcularFrete.php on line 31 
    Erro ao consultar verifique se CEP esta correto

    1. Olá Jocimar! Penso que testei todos os scripts do Quemuel em ambiente Linux e MySQL. Um dia destes, publicamos um carrinhos de compras completo e open source. Um Abraço! Rui

  6. Ola tbm estou com erro ao consultar cep podedia colocar um trecho onde ser trocado pelo novo endereço.

Leave a Reply to Rui Soares Cancel reply

Your email address will not be published. Required fields are marked *


Como Criar Um Site, Blog - WebMaster.pt