Em um site que estou desenvolvendo ocorreu que eu estava recebendo mensagens de erro na página de cálculo de frete:

There was an error calculating the shipping cost. Error (Serviço indisponível para o trecho informado.)

Apesar do erro, o sistema exibia valores corretos para as opções SEDEX e PAC.

Após testar um cep de são paulo, descobri que o erro era causado pelo serviço SEDEX 10, que não está disponível na minha região.

Acredito que essas mensagens de erro precisam ficar mais claras. Elas precisam informar qual o serviço que não está disponível, ou então não exibir mensagens de erro desse tipo quando houverem outros serviços disponíveis.

Outra opção seria manter o radiobox do serviço indisponível mas deixá-lo desabilitado.

Comments

pedrorocha’s picture

StatusFileSize
new4.71 KB

Realmente, isso não estava sendo tratado. Eu acabei de mudar um pouco a estrutura do código para passar a tratar erros, mas só tratei 1 dos erros, que é quando o endereço está inválido(erro -3). Agora é necessário verificar cada um dos erros e criar mensagens para cada um.

pedrorocha’s picture

Priority: Normal » Major
Status: Active » Needs review
recidive’s picture

Status: Needs review » Needs work

@pedrorocha: não entendi o propósito das mudanças na indentação. Não são necessárias e tornam a leitura do patch difícil.

Use 'elseif' em vez de 'else if' de acordo com o "Coding Standards".

pedrorocha’s picture

Status: Needs work » Needs review
StatusFileSize
new3.91 KB

A indentação foi em trechos que excedem 80 caracteres, como também diz o Coding Standards. O CS, na verdade, não especifica exatamente essa situação de parâmetros excessivos, então nem acho válido entrarmos muito no mérito. Retirei isso.

Segue novamente.

pedrorocha’s picture

StatusFileSize
new4.22 KB

Troquei para switch(), que nesse caso de vários tipos de erros a tratar, fica com uma legibilidade melhor.

pedrorocha’s picture

Dei uma pesquisada ali e vi que eu mesmo já tinha deixado tudo documentado, só falta fazer: http://drupal.org/node/1498562.

No entanto, o "buraco é mais embaixo". Cada tipo de envio pode ser recusado ou não, dependendo dos dados(como dito pelo Marcus, na localidade dele, um dos tipos não podia), então o tratamento disso deve ser mais aprofundado.

pedrorocha’s picture

StatusFileSize
new5.36 KB

Agora sim! Fiz o trabalho "direito", tentando resolver logo tudo.

Deu um pouco mais de trabalho, mas acho que agora ele está tratando de forma genérica, pegando a mensagem de erro enviada pelo próprio WS dos Correios. O único "contra" disso é caso alguém queira usar esse módulo em outros idiomas, já que a mensagem vem em PT-BR, mas como 99,99% dos casos serão atendidos do jeito que está, quem precisar desse 0,01% que esquente a cabeça..rsrs

recidive’s picture

Mais um ótimo patch, @pedrorocha.

Precisamos de alguém para testar. @Marcus VBP, você poderia confirmar que as alterações do @pedrorocha resolvem o seu problema?

pedrorocha’s picture

Status: Needs review » Closed (fixed)

Commitei no branch 7.x-2.x. Vou esperar corrigir o http://drupal.org/node/1612194 para criar o beta2