
Um dos grandes problemas de quem está pensando em montar uma Loja Virtual (e-Commerce) é o tal do cálculo de frete, isso dava uma dor de cabeça enorme para os desenvolvedores, pois para quase qualquer procedimento de compra online, o frete é vital, e necessita ser calculado e adicionado ao valor total que o cliente irá pagar.
Há algum tempo atrás, o site dos Correios disponibilizou um WebService para cálculo de valores e tarifas de postagem para seus principais serviços, como Sedex e PAC. No momento em que essa ferramenta foi disponibilizada, nos facilitou a vida, pois tínhamos uma forma funcional e com valores corretos para cálculo, e não como se utilizava há tempos atrás com um valor aproximado, muitas vezes maior do que realmente a postagem custava.
Para utilização, precisamos passar alguns parâmetros que são obrigatórios para que o WebService nos dê um retorno bem sucedido, que são o CEP de Origem, que no caso deve ser o da Loja Virtual, o CEP de Destino, que será o da pessoa que está comprando na Loja por exemplo, e o Peso total da encomenda (em Quilos, no caso se o peso for menos que 1Kg, deve se usar “0.3″ por exemplo para representar 300g), juntamente com o Código do Serviço de envio que será utilizado, no caso Sedex, PAC, Sedex 10, etc… Esses códigos dos tipos de serviços estão disponíveis junto no script, além disso é necessário informar as dimensões do pacote, no caso deste script ele já vem com valores de uma embalagem padrão, mas é recomendável que se ajuste conforme o cálculo.
Código dos Serviços
- 41106: PAC
- 40010: SEDEX
- 40045: SEDEX a Cobrar
- 40215: SEDEX 10
Código da Função de Cálculo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <?php function calcula_frete($servico,$CEPorigem,$CEPdestino,$peso,$altura='4',$largura='12',$comprimento='16',$valor='1.00'){ //////////////////////////////////////////////// // Código dos Serviços dos Correios // 41106 PAC // 40010 SEDEX // 40045 SEDEX a Cobrar // 40215 SEDEX 10 //////////////////////////////////////////////// // URL do WebService $correios = "http://ws.correios.com.br/calculador/CalcPrecoPrazo.aspx?nCdEmpresa=&sDsSenha=&sCepOrigem=".$CEPorigem."&sCepDestino=".$CEPdestino."&nVlPeso=".$peso."&nCdFormato=1&nVlComprimento=".$comprimento."&nVlAltura=".$altura."&nVlLargura=".$largura."&sCdMaoPropria=n&nVlValorDeclarado=".$valor."&sCdAvisoRecebimento=n&nCdServico=".$servico."&nVlDiametro=0&StrRetorno=xml"; // Carrega o XML de Retorno $xml = simplexml_load_file($correios); // Verifica se não há erros if($xml->cServico->Erro == '0'){ return $xml->cServico->Valor; }else{ return false; } } ?> |
Exemplo de Uso:
1 2 3 | <?php echo calcula_frete('40010','93800000','90200210 ','0.5'); ?> |
.
Como sempre, eu disponibilizo o arquivo PHP do artigo aqui para Download.
Qualquer dúvida ou sugestão, escreva um comentário.



















Grátis: API de CEPs para qualquer Linguagem
CodeIgniter e Zend – Frameworks PHP
Curso: e-Commerce – Tendências de Vendas Online (2ª Edição)
Google Shopping vem ai !! O que há de novo ??



