Manual de cálculo de preços e prazos via webservice
Calculadora de preços e prazos do Melhor Envio
A calculadora de preços e prazos do Melhor Envio é destinada a todos que necessitem calcular em seu ambiente de forma personalizada, o preço, prazo de entrega, e desconto para envios com etiquetas do Melhor Envio.
As informações necessárias para o cálculo são:
CEP do remetente
o Deve conter 8 dígitos, sem “-” ou “.”
CEP do restinatário
o Deve conter 8 dígitos, sem “-” ou “.”
Peso (em Kg)
o Ex: 1.1 para 1Kg e 100g, 1 para 1Kg, 0.1 para 100g, 0.01 para 10g, 0.001 para 1g.
Altura (em cm)
o Ex: 100 para 1 metro, 10 para 10cm. É aceito “,” ou “.” Como separador decimal. O mesmo acontece com os demais
campos que pedem cm.
Largura (em cm)
Comprimento (em cm)
Aviso de Recebimento
o “s” ou “S” para envios com Aviso de Recebimento. Outros valores para envio sem Aviso de Recebimento.
Valor Declarado
o Deve ser “0” ou valores entre 12,00 e 10000,00. É aceito tanto “,” quanto “.” Como separador decimal. Não colocar valores que não sejam numéricos, ou mais de um separador decimal.
Mão Própria
o “s” ou “S” para envios com Mão Própria. Outros valores para
envio sem Mão Própria.
Manual de cálculo de preços e prazos via webservice
As informações devem ser passadas por URL, com o método GET.
A URL de consulta é: “http://melhorenvio.com.br/ws/calculadora”
Um exemplo de consulta à calculadora do Melhor Envio é:
http://melhorenvio.com.br/ws/calculadora/?destinatario_cep=96040760
&remetente_cep=12233002&peso=1&altura=105&largura=28.4&compri mento=20&AR=n&VD=0&MP=n
O retorno de dados é feito através de um XML.
Exemplo de implementação de consulta em php:
<?php
$cep_do_destinatario = '12233002'; // cep do destinatário apenas com números
$cep_do_remetente = '96040760'; // cep do remetente apenas com números
$peso_em_Kg = 1.5; // valores em cm
$altura_em_cm = 2; // valores em cm
$largura_em_cm = 11; // valores em cm
$comprimento_em_cm = 16; // valores em cm
$aviso_de_recebimento = 'n'; // 's' ou 'n'
$valor_declarado = 0; // “0” ou valores a cima de R$12,00 e a baixo de R$10.000,00
$mao_propria = 'n'; // 's' ou 'n'
$calculadora='http://melhorenvio.com.br/calculadora/?destinatario_cep='. $cep_do_destinatario.'&remetente_cep='.
$cep_do_remetente.'&peso='.$peso_em_Kg.'&altura='.$altura_em_cm.'&largura='.$largura_em_cm.'&comprimento='.$comprim ento_em_cm.'&AR='.$aviso_de_recebimento.'&VD='.$valor_declarado.'&MP='.$mao_propria;
// Carrega o XML de Retorno
$xml = simplexml_load_file($calculadora);
$envio_economico = $xml->envio->economico;
$envio_expresso = $xml->envio->expresso;
echo 'O envio economico custa apenas R$'.$envio_economico->valor.
'<br/>E na agencia o custo e de R$'.$envio_economico->valor_da_agencia.
'<br/>O prazo de entrega e de ate '.$envio_economico->prazo.' dias uteis'.
'<br/>O erro registrado foi '.$envio_economico->erro.
' e a mensagem desse erro e "'.$envio_economico->mensagem_erro.'"'.
Manual de cálculo de preços e prazos via webservice
'<br/>O servico escolhido para o envio economico e: '.$envio_economico->servico.
'<br/>Entrega domicilar pode ser feita no endereco de destino?
Resposta: '.$envio_economico->entrega_domiciliar.
'<br/>Entregas podem acontecer no sabado, no endereco de destino, com o servico escolhido?
Resposta: '.$envio_economico->entrega_sabado;
echo '<br/>
<br/>O envio expresso custa apenas R$'.$envio_expresso->valor.
'<br/>E na agencia o custo e de R$'.$envio_expresso->valor_da_agencia.
'<br/>O prazo de entrega e de ate '.$envio_expresso->prazo.' dias uteis'.
'<br/>O erro registrado foi '.$envio_expresso->erro.
' e a mensagem desse erro e "'.$envio_expresso->mensagem_erro.'"'.
'<br/>O servico escolhido para o envio expresso e: '.$envio_expresso->servico.
'<br/>Entrega domicilar pode ser feita no endereco de destino?
Resposta: '.$envio_expresso->entrega_domiciliar.
'<br/>Entregas podem acontecer no sabado, no endereco de destino, com o servico escolhido?
Resposta: '.$envio_expresso->entrega_sabado;
?>
A resposta retornada a essa consulta será:
<melhor_envio>
<envio>
<economico>
<valor>20.46</valor>
<valor_da_agencia>24.20</valor_da_agencia>
<prazo>7</prazo>
<erro>B0</erro>
<mensagem_erro/>
<entrega_domiciliar>S</entrega_domiciliar>
<entrega_sabado>N</entrega_sabado>
<servico>PACcontrato</servico>
</economico>
<expresso>
<valor>45.98</valor>
<valor_da_agencia>56.90</valor_da_agencia>
<prazo>2</prazo>
<erro>B0</erro>
<mensagem_erro/>
<entrega_domiciliar>S</entrega_domiciliar>
<entrega_sabado>S</entrega_sabado>
<servico>eSEDEX</servico>
</expresso>
<erro>B0</erro>
<mensagem_erro/>
</envio>
</melhor_envio>
Manual de cálculo de preços e prazos via webservice
Uma consulta com valores inválidos retornará um erro. Por exemplo, repetindo a consulta anterior, mas com a variável $cep_do_destinatario tendo o valor igual a ‘1’, a resposta será a seguinte:
<melhor_envio>
<envio>
<economico>0</economico>
<expresso>0</expresso>
<erro>A02</erro>
<mensagem_erro>O cep de destino deve ter 8 digitos.</mensagem_erro>
</envio>
</melhor_envio>