Erro no site: "Atenção: Não há opções de entrega disponíveis. Por favor, contate-nos para assistência!"
Erro ao investigar o webservice dos correios: "Área com entrega temporariamente sujeita a prazo diferenciado".
Esse erro ocorre apenas para alguns CEPs, nem sempre aparece,
E vamos lá aos códigos...
No "catalog/model/shipping/correios.php" altere
if($servico['Erro'] == 0 && $valor_frete_sem_adicionais > 0)
substitua por
if(($servico['Erro'] == 0 || $servico['Erro'] == 10 ) && $valor_frete_sem_adicionais > 0)
(cuidado para não comer a chave "{" do if )
Porém eu acho importante esse erro aparecer para o comprador pois ele deve saber que o produto vai ter problemas na entrega. Então testo se o erro é o 10 e incluo a mensagem no título do tipo da entrega.
Procure os seguintes códigos abaixo no mesmo arquivo e adicione as linhas em laranja:
// texto a ser exibido para Sedex a Cobrar
if($servico['Codigo'] == $this->correios['Sedex a Cobrar']){
$title = sprintf($this->language->get('text_'.$servico['Codigo']), $servico['PrazoEntrega'], $this->currency->format($cost));
if($servico['Erro'] == 10) $title .= ' ('.$servico['MsgErro'].')';
$text = $this->currency->format($this->tax->calculate($cost, $this->config->get('correios_tax_class_id'), $this->config->get('config_tax')));
}
else{
$title = sprintf($this->language->get('text_'.$servico['Codigo']), $servico['PrazoEntrega']);
if($servico['Erro'] == 10) $title .= ' ('.$servico['MsgErro'].')';
$text = $this->currency->format($this->tax->calculate($cost, $this->config->get('correios_tax_class_id'), $this->config->get('config_tax')));
}
Galera, gostaria de contar com a colaboração de vocês para melhorar isso ou até checar se a solução é realmente adequada. Fiz essa alteração a poucos minutos e já estou publicando pois vejo que ela é bem emergencial, mas é sempre bom construir soluções de maneira colaborativa.
Abraços !
Obrigado, amigo. De muitissima ajuda
ResponderExcluirParabéns Marcos!
ResponderExcluirComo deixar a mensagem de alerta abaixo do nome Correios?
Olá Jano !
ExcluirO método de envio "Correios" tem subtipos "Sedex" e "PAC". Os erros enviados pelo webservice são para cada subtipo.Deve-se estar ciente que será unificado o erro para todos os subtipos retornados.
Na prática, teria que arrumar um jeito de colocar o erro numa variável e ela poder ser lida na função getQuote($address) do arquivo correios.php, aí ela ser concatenada na linha
'title' => $this->language->get('text_title')."
Erro tal, exemplo",
(linha da função getQuote)
Boa sorte !
Obrigado, Marcos!
ResponderExcluirSuas dicas foram magníficas. Parabéns pelo trabalho e pela boa vontade em repartir conosco os seus conhecimentos.
Que Deus lhe abençoe!
Marcos, com esta modificação que tu nos passou a mensagem irá continuar aparecendo mas disponibilizando a escolha dos fretes ao cliente?? Pois assim, eu quero que a mensagem apareça mas que o cliente possa selecionar uma opção de frete. É possível? Como posso proceder? Gratidão. T+
ResponderExcluirEssa alteração faz exatamente isso.
ExcluirMantém as opções de frete, porém avisa da restrição de entrega dos correios.
Faça um backup do arquivo e, posteriormente, aplique as alterações, creio que chegará ao resultado esperado!
Abs
Grata Marcos :) :)
ExcluirMuito obrigada! Irei fazer esta mudança.
Sucesso.
Oi Marcos,
ResponderExcluirPrimeiramente, muito obrigado pela informação.
Estou usando o módulo dos correios do Júlio César, versão modulocorreios3.4.5oc151 e notei que a primeira linha que você sugeriu modificar (if($servico['Erro'] == 0 && $valor_frete_sem_adicionais > 0) está comentada // na versão acima. No seu lugar tem if($valor_frete_sem_adicionais > 0). Será que posso substituí-la pela sua recomendação? Já fiz um teste e parece que deu certo mas tenho algumas dúvidas em relação a possíveis efeitos colaterais. ;-)
Mais uma vez muito obrigado por partilhar as suas dicas.
--Fausto
Obrigado pela dica, muito útil, funcionou certinho.
ResponderExcluirSó continua o problema ao simular o frete, vc pode me dar uma dica de como resolver na simulação do frete esse erro tbm?
desde já obrigado.
Fantástico. Estamos com este problema há bastante tempo e agora foi resolvido com 2 minutos. Agradeço imensamente por compartilhar. Grande abraço!
ResponderExcluirEste comentário foi removido pelo autor.
ResponderExcluirEste comentário foi removido pelo autor.
ExcluirExclui o outro comentário pois descobri que o erro era algo simples que esqueci de preencher no formulário.
ResponderExcluirPorem gostaria de saber se sabe como colocar no formulário do o campo dimensões e peso, assim o vendedor já preenche e não da erro no modulo dos correios.
Outro erro que tenho, no cadastro de vendedor da erro quando a pagina puxa os estados e por consequência não consigo salvar nada do cadastro.
Agradeço