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.
| Comment | File | Size | Author |
|---|---|---|---|
| #7 | handle-error-messages-1559870-5.patch | 5.36 KB | pedrorocha |
| #5 | handle-error-messages-1559870-4.patch | 4.22 KB | pedrorocha |
| #4 | handle-error-messages-1559870-3.patch | 3.91 KB | pedrorocha |
| #1 | handle-error-messages-1559870-0.patch | 4.71 KB | pedrorocha |
Comments
Comment #1
pedrorocha commentedRealmente, 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.
Comment #2
pedrorocha commentedComment #3
recidive commented@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".
Comment #4
pedrorocha commentedA 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.
Comment #5
pedrorocha commentedTroquei para switch(), que nesse caso de vários tipos de erros a tratar, fica com uma legibilidade melhor.
Comment #6
pedrorocha commentedDei 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.
Comment #7
pedrorocha commentedAgora 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
Comment #8
recidive commentedMais 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?
Comment #9
pedrorocha commentedCommitei no branch 7.x-2.x. Vou esperar corrigir o http://drupal.org/node/1612194 para criar o beta2