Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

William Skaff

Mudança no cálculo de frete dos correios

Recommended Posts

Olá pessoal. Sou novato em ASP e preciso de ajuda de vcs. Tenho um sistema de loja virtual e nele existe o cálculo de frete dos correios. Porém o calculo do PAC parou de funcionar porque os correios mudaram a forma de calculo e agora utilizam o tamanho cúbico do produto para cálculo. Já vi vários artigos na net explicando como mudar (o melhor no kit da locaweb), porém não sei como fazer. Alguém pode me ajudar ? Segue o código abaixo que utilizo hj na loja virtual. Obrigado.

 

'calcula os fretes pelos correios
'41106 - Encomenda Normal
if encomenda_normal = "s" then

en_url = "http://www.correios.com.br/encomendas/precos/calculo.cfm?servico=41106&cepDestino="& cep_destino &"&CepOrigem="& cep_origem &"&peso="& session("peso") &""

Set en = CreateObject("Microsoft.XMLHTTP")
en.open "post", en_url, false
en.send
en_valor = en.responseText
set en = nothing

p = right(en_valor,len(en_valor)-instr(en_valor,"Tarifa"))
s = right(p,len(p)-instr(p,"Tarifa"))
enc = replace(replace(left(right(s,len(s)-6),5),"&",""),".",",")
enc = replace(enc, "e", "")
enc = replace(enc, "r", "")
enc = replace(enc, "a", "")
enc = replace(enc, "u", "")
enc = replace(enc, "i", "")
enc = replace(enc, "r", "")
if en_acrescimo <> 0 and en_acrescimo <> "" then
ence = acrescimo(enc, en_acrescimo)
else
ence = enc
end if

session("en") = ence
end if



'40010 = Sedex Convencional
if sedex_normal = "s" then
if sedex_seguro = "s" then
adicional_sn = "&ValorDeclarado="&valor_declarado&""
end if
sn_url="http://www.correios.com.br/encomendas/precos/calculo.cfm?Servico=40010&CepDestino="& cep_destino &"&CepOrigem="& cep_origem &"&Peso="& peso&""&adicional_sn&""
		
Set sn = CreateObject("Microsoft.XMLHTTP")
sn.open "post", sn_url,false
sn.send
sn_valor = sn.responseText
set sn = nothing
na = right(sn_valor,len(sn_valor)-instr(sn_valor,"Tarifa"))
nb = right(na,len(na)-instr(na,"Tarifa"))
nc = replace(replace(left(right(nb,len(nb)-6),5),"&",""),".",",")
nd = replace(replace(nc, "e", ""), "r", "")
if sedex_acrescimo <> 0 and sedex_acrescimo <> "" then
ne = acrescimo(nd, sedex_acrescimo)
else
ne = nd
end if
session("sn") = ne
end if


'40215 = Sedex 10
if sedex_10 = "s" then
if dez_seguro = "s" then
adicional_sd = "&ValorDeclarado="&valor_declarado&""
end if

sd_url="http://www.correios.com.br/encomendas/precos/calculo.cfm?Servico=40215&CepDestino="& cep_destino &"&CepOrigem="& cep_origem &"&Peso="& peso&""&adicional_sd&""
		
Set sd = CreateObject("Microsoft.XMLHTTP")
sd.open "post", sd_url,false
sd.send
sd_valor = sd.responseText
set sd = nothing
da = right(sd_valor,len(sd_valor)-instr(sd_valor,"Tarifa"))
db = right(da,len(da)-instr(da,"Tarifa"))
dc = replace(replace(left(right(db,len(db)-6),5),"&",""),".",",")
dd = replace(replace(dc, "e", ""), "r", "")
if dez_acrescimo <> 0 and dez_acrescimo <> "" then
de = acrescimo(dd, dez_acrescimo)
else
de = dd
end if

session("sd") = de
end if



'40045 = Sedex à Cobrar
if sedex_cobrar = "s" then
if cobrar_seguro = "s" then
adicional_sc = "&ValorDeclarado="&valor_declarado&""
end if

sc_url="http://www.correios.com.br/encomendas/precos/calculo.cfm?Servico=40045&CepDestino="& cep_destino &"&CepOrigem="& cep_origem &"&Peso="& peso&""&adicional_sc&""
Set sc = CreateObject("Microsoft.XMLHTTP")
sc.open "post", sc_url,false
sc.send
sc_valor = sc.responseText
set sc = nothing
ca = right(sc_valor,len(sc_valor)-instr(sc_valor,"Tarifa"))
cb = right(ca,len(ca)-instr(ca,"Tarifa"))
cc = replace(replace(left(right(cb,len(cb)-6),5),"&",""),".",",")
cd = replace(replace(cc, "e", ""), "r", "")
if cobrar_acrescimo <> 0 and cobrar_acrescimo <> "" then
ce = acrescimo(cd, dez_acrescimo)
else
ce = cd
end if

session("sc") = ce
end if

 

Obrigado à todos.

 

William

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode usar um webservice, e também existem alguns exemplos no forum , pode te ajudar

e aqui um link

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo, obrigado pela dica, mas acho que preciso de uma ajuda maior. Eu já utilizo hoje um webservice para os cálculos, mas com a mudança pelo correio, vou ter que mudar tbm. Eu já tinha puxado esse kit dos correios que você me passou, porém não estou entendendo como fazer isso. Sem querer abusar, é possível alguém fazer a modificação nas linhas do código que eu passei onde informa sobre o cálculo de encomenda normal ?

 

Obrigado,

 

William

 

você pode usar um webservice, e também existem alguns exemplos no forum , pode te ajudar

e aqui um link

 

Olá amigo, obrigado pela dica, mas acho que preciso de uma ajuda maior. Eu já utilizo hoje um webservice para os cálculos, mas com a mudança pelo correio, vou ter que mudar tbm. Eu já tinha puxado esse kit dos correios que você me passou, porém não estou entendendo como fazer isso. Sem querer abusar, é possível alguém fazer a modificação nas linhas do código que eu passei onde informa sobre o cálculo de encomenda normal ?

 

Obrigado,

 

William

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá o...

voce

^odefazer o sefuinte, entre em contatos com o correio para er mais detalhes sobre o cálculo, e depois com essa informação, você altera apenas a base de cálculo no code, e talvez até eles possam disponibilizar um webservice...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caros amigos do formum, o problema não é somente o calculo do frete normal PAC... já testei os procedimentos dos correios para o novo calculo e está perfeito tudo rodando, só que se vocês pararem para pensar este calculo só vai funcionar para 1 produto distinto, se ouver mais que um produto no carrinho de compras vocês vão ter que calcular todas as dimensões antes de calcular. É ai que entra o problema... e se tiver mais que um produto e dimensões diferentes? é por isso que eles estão solicitando as dimensões... então vamos colocar a cabeça para funcionar... em uma caixa o máximo da medida é 60 X 60 X 60. e a soma dos tres, comprimento, largura e altura não podem passar de 150cm... e o peso também não pode passar de 30. caso passe você terá que gravar o restante em outra variavel... e assim por diante. ao final, você tem que calcular as caixas separadamente e depois unir o valor de cada caixa... é bem mais complicado mas está ai o desafio para quem quiser seguir adiante neste calculo.

 

Exemplo... ParametroCarrinho = "CodProduto,Quantidade,ComprimentoXLarguraXAltura,Peso"

1. é necessário que este carrinho seja montado desta forma, pois a partir dai você tem a quantidade de loops que vai ter que dar em cada produto.

2. é necessário ordenar os produtos no carrinho pelo maior valor de comprimento.

3. é necessário controlar as camadas de comprimento, e gerar torres em cima destas camadas

4. a cada camada a sua altura chegando nas medidas dos correios abre uma camada de largura nova... chegando na ultima camada de largura, é necessário saber se podes ou não incluir uma nova camada no comprimento.

5. caso uma das camadas possua ainda espaços, tem que se definir em que local tenha espaço ainda para acoplar mais produtos.

6. se não tiver mais espaço, tem que abrir uma nova caixa...

7. ao trocar para o outro produto no loop, é necessário saber se esse novo produto não se encaixa nos espaços de caixas anteriores, se couber tem que incerir lá...

8. tem que ter um histórico dos loops gravando a ordem dos produtos, pois é através dela que o dono da loja vai comportar o seus produtos para a embalagem...

 

Bom já dei a barbada do que é necessário...

Então fico assim a disposição para que alguém ai também encontre a melhor forma de comportar estes produtos em um menor espaço na caixa...

Compartilhar este post


Link para o post
Compartilhar em outros sites

os correios tem obrigação defornecer dados mais detalhados sobre o cálculo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola! Pessoal,

 

Montei duas bases de dados, uma com todos os ceps do pais (base GPBe 2010) e outra com o valor do frete via Sedex e PAC para todos os destinos do pais, resumindo, desenvolvi um módulo PHP offline para consulta de ceps e frete via PAC e Sedex.

 

Aos interessados em participar / testar / avaliar / melhorar / usar o sistema, favor acompanhar o desenvolvimento no Forum iMasters, neste link: http://forum.imasters.com.br/index.php?/topic/407875-modulo-off-line-para-calculo-de-frete-dos-correios/

 

Abraço a todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você fez em php, este fórum é ASP

Compartilhar este post


Link para o post
Compartilhar em outros sites

você já deu oma olhada no laboratório de scripts???

Eu mesmo postei a umas 3 semanas o novo calculo de PAC dos correios...

É só pesquisar lá que você acha...

 

Att;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.