LojaExemplo: Resolucao do problema de calculo de frete (e-sedex)

  • Olá,

    Recentemente o Phil compartilhou um script no forum para que as lojas efetuem os cálculos de frete direto nos Correios. O script funciona muito bem, mas alguns lojistas estavam com problemas apenas com o E-sedex. Examinei o código de cálculo mais a fundo e descobri que toda tentativa de consulta vinha como retorno o valor R$ 0,00.

    Efetuei algumas pesquisas e descobri que para fazer cálculo do E-sedex direto nos Correios o lojista precisa ter um contrato, pois diferente do PAC e SEDEX essa forma de frete não tem padrão e é exclusiva a alguns lojistas que tem contrato com os Correios. Na LojaExemplo só funcionava porque parece que a Locaweb tinha contrato com os Correios (me corrijam se eu estiver errado) e no código fonte existia um login e senha, por isso antes funcionava.

    Bom vamos lá!

    Se você envia produtos por E-sedex de certo terá contrato com os Correios. Os dados que irá precisar serão o login e senha que usa para entrar no endereço: http://www.corporativo.correios.com.br/encomendas/servicosonline/default.cfm?e=1004

    Estou usando o arquivo disponibilizado pelo Phil como base.

    Na linha 80 do arquivo “cep_frete.asp” troque o trecho:

    entrada = entrada & ”      <nCdEmpresa>”&CodEmpresaCorreio&”</nCdEmpresa> “
    entrada = entrada & ”      <sDsSenha>”&SenhaEmpresaCorreio&”</sDsSenha> “

    Por esse:

    entrada = entrada & ”      <nCdEmpresa>SEU LOGIN</nCdEmpresa> “
    entrada = entrada & ”      <sDsSenha>SUA SENHA</sDsSenha> “

    SEU LOGIN = seguencia de numeros que usa para entrar no endereço dos correios que passei acima
    SUA SENHA = a senha utilizada para entrar no endereço dos correios que passei cima

    Com essa simples alteração terá o cálculo do E-sedex direto nos correios.

    Corrigindo um problema citado pela Regina nos comentarios abaixo segue a resolução:

    Para resolver troque seguinte linha do arquivo cep_frete.asp:

    If Application(“DisponivelESedex”) = “sim” Then

    Por:

    If Application(“DisponivelESedex”) = “sim” and session(“valortemp_ESedex”) <> “vazio” Then

    Esse código esta aproximadamente na linha 243.

    Com essa modificação quando o cliente tiver um cep não coberto pelo E-sedex o mesmo não vai aparecer, assim mostrando o restante e evitando de travar.

    Abraço e espero ter ajudado.



    Related Posts Plugin for WordPress, Blogger...




    agosto 6th, 2010 | Jeann | 12 Comentários | Tags:,

Sobre o autor

Em breve.

12 Comentarios

  • Philip 08.06.2010

    Obrigado pelo reconhecimento! =)
    Espero ter ajudado!

    [ ]‘s

  • [...] modificação é para mostrar o prazo de entrega do PAC, Sedex e E-sedex consultando direto nos correios. Estou baseando  no arquivo cep_frete.asp disponibilizado pelo [...]

  • Primeiramente quero agradecer a super ajuda com esse código!
    Está quase tudo perfeito :o str:
    Quando o Correios realiza a entrega de E-Sedex no cep indicado, está tudo maravilha, aparece todas as opções de frete.
    O problema está quando o Correios não tem E-sedex para aquele CEP, aí não aparece nenhum, Sedex e/ou Pac.
    Você tinha notado isso? Tentei entender o que está acntecendo, mas não entendi nada.
    Obrigada!!

  • Olá Regina.

    Por coincidência hoje antes de enviar seu comentário haviam me passado o mesmo problema.

    Para resolver troque seguinte linha do arquivo cep_frete.asp:

    If Application(“DisponivelESedex”) = “sim” Then

    Por:

    If Application(“DisponivelESedex”) = “sim” and session(“valortemp_ESedex”) = “vazio” Then

    Esse código esta aproximadamente na linha 243.

    Com essa modificação quando o cliente tiver um cep não coberto pelo E-sedex o mesmo não vai aparecer, assim mostrando o restante e evitando de travar.

    Abraço

  • Bom dia Jeann,

    Mudei a linha mas agora o erro é:

    Microsoft VBScript compilation error ’800a03f9′
    Expected ‘Then’
    /LOJA/cep_frete.asp, line 234
    If Application(“DisponivelESedex”) = “sim” and session(“valortemp_ESedex”) “vazio” Then
    —————————————————————————^

    Abraços e muito obrigado.

  • Olá Regina,

    Esqueci de um sinal de “<>” me desculpe, segue a linha corrigida:

    If Application(“DisponivelESedex”) = “sim” and session(“valortemp_ESedex”) <> “vazio” Then

    Abraço.

  • Esta correção eu havia feito….
    Mas o resultado foi: não vem erro e nem os outros fretes.
    http://www.lentech.com.br/loja/

  • Fiz o teste com o cep 13454000 e deu certo, qual cep esta tentando?

    Aguardo resposta.

  • Para o CEP citado acima há E-Sedex:
    RETIRAR NA LOJA ( 0,00 )
    PAC ( 14,00 )
    E-SEDEX ( 12,27 )
    SEDEX ( 16,00 )

    Estou fazendo o teste com o CEP: 65950000
    Este não entrega E-Sedex, mas entrega Sedex.

  • testei o Cep que me passou na loja que apliquei a resolução desse problema e deu certo {editado}, me passe seu arquivo cep_frete.asp para o E-mail {editado para evitar span} pois deve estar alguma linha errada.

    Aguardo resposta.

  • Olá Jeann,

    Antes de tudo, obrigado pela contribuição.
    Peguei o script do Phil e alterei TODAS as linhas que estava diferentes do original Locaweb, no meu arquivo cep_frete.asp (que foi modificado para frete grátis).
    Porém, os fretes ficam todos zerados…
    Ao voltar ao original, ele calcula apenas o SEDEX e diz:
    E-SEDEX: E-Sedex não suportado. Utilize diretamente o WebService dos Correios http
    PAC: Pac não suportado. Utilize diretamente o WebService dos Correios http

    Não entendi… O anterior funciona e o novo não…

    Pode me ajudar?

    Grato.

  • Jeann, testei e está tudo certo na sua loja.
    Não entendo porque não acontece na minha.
    Enviei o arquino no seu e-mail.
    Obrigada pela atenção.
    Abraços
    Regina

Comente aqui

* Nome, Email e comentário são obrigatórios