Open jefersonoj opened 5 years ago
Acabei de abrir uma postagem com o mesmo problema.
Por enquanto estou deixando apenas 1 opção de frete.
Também fiz isso por enquanto
Aqui ainda funcionando. Vc configurou o código de contrato no módulo? Pode mandar um print da tela de configurações?
Não tenho configurado, qual é o campo?
Para o cálculo de frete são esses aqui...
O problema só esta acontecendo para quem não tem contrato...
Sacanagem isso! Só quem tem contrato agora pode consultar múltiplos serviços numa única chamada. É isso?!
Calma, ja aconteceu isso outras vezes, provavelmente já deve voltar a funcionar, ou vai precisar atualizar o modulo
Segue sugestão... Aguardo feedback Substituir a linha a seguir, pelo trecho mais abaixo. https://github.com/pedro-teixeira/correios/blob/bbfa63a26b687b8ba4ccbd38189174c541a78ec2/app/code/community/PedroTeixeira/Correios/Model/Carrier/CorreiosMethod.php#L181
Código para isolar o cálculo de frete por serviço.
// Início: Isolamento das consultas de cálculo de frete, para lojas sem contrato.
$dataServices = array('<Servicos>');
foreach ($this->_postMethodsExplode as $method) {
$this->_postMethods = $method;
$returnTemp = $this->_getCorreiosReturn();
if (!empty($returnTemp) && $returnTemp instanceof SimpleXMLElement) {
$dataServices[] = $returnTemp->asXML();
}
}
$dataServices[] = '</Servicos>';
$this->_postMethods = implode(',', $this->_postMethodsExplode);
$xml = new SimpleXMLElement(implode('', $dataServices));
$correiosReturn = isset($xml->cServico) ? $xml->cServico : false;
// Fim: Isolamento das consultas de cálculo de frete, para lojas sem contrato.
p.s. Código não testado! Utilize por sua conta em risco. Essa é uma solução paliativa. Contate seu desenvolvedor, para uma customização mais aprimorada.
Por enquanto estou deixando apenas 1 opção de frete.
Isso funcionou pra mim, mais acho que já já volta ao normal, mais por hora deixei só com uma opção de frete mesmo
Até agora não voltou...
Para quem utiliza o módulo para calculo e não tem contrato com os Correios, teremos alguma atualização no módulo aqui pelo Git? Será que volta a funcionar com o tempo, o problema seria em quanto tempo (Isso se depender dos correios atualizar mais algo na api deles)?
Ola bom dia, a todos, pelo que vi o sistema dos Correios não valida se o contrato é real ou não, para clientes sem o contrato aqui eu apenas cadastrei o cod administrativo e senha para: 99999999 e aparentemente funcionou normalmente, pelo que vi o sistema deles esta apenas verificando se os dados de contrato estão sendo informados ou não onde quando informei os dados fictícios deixou passar normal, lembrando que no caso ainda continuando os serviços sem contrato.
Ôpa! Loja 5 salvou. Já fiz o mesmo procedimento e funcionou corretamente.
Valeu.
Tenho no Magento 1.9.4 - o Correios do Pedro Teixeira - coloque 99999999 . - no usuario e senha do SRO - tanto no BakcEnd - no /admin - e tanto no config..xml - e não deu certo ! Alguma LUZ ?
Segue sugestão... Aguardo feedback Substituir a linha a seguir, pelo trecho mais abaixo. https://github.com/pedro-teixeira/correios/blob/bbfa63a26b687b8ba4ccbd38189174c541a78ec2/app/code/community/PedroTeixeira/Correios/Model/Carrier/CorreiosMethod.php#L181
Código para isolar o cálculo de frete por serviço.
// Início: Isolamento das consultas de cálculo de frete, para lojas sem contrato. $dataServices = array('<Servicos>'); foreach ($this->_postMethodsExplode as $method) { $this->_postMethods = $method; $returnTemp = $this->_getCorreiosReturn(); if (!empty($returnTemp) && $returnTemp instanceof SimpleXMLElement) { $dataServices[] = $returnTemp->asXML(); } } $dataServices[] = '</Servicos>'; $this->_postMethods = implode(',', $this->_postMethodsExplode); $xml = new SimpleXMLElement(implode('', $dataServices)); $correiosReturn = isset($xml->cServico) ? $xml->cServico : false; // Fim: Isolamento das consultas de cálculo de frete, para lojas sem contrato.
p.s. Código não testado! Utilize por sua conta em risco. Essa é uma solução paliativa. Contate seu desenvolvedor, para uma customização mais aprimorada.
Tento fazer essa alteração acima? Funcionou pra mim!
@jefersonoj DEU CERTO !
muito obrigado tche!
Parabéns ai por ajudar a galera !!
Segue sugestão... Aguardo feedback Substituir a linha a seguir, pelo trecho mais abaixo. https://github.com/pedro-teixeira/correios/blob/bbfa63a26b687b8ba4ccbd38189174c541a78ec2/app/code/community/PedroTeixeira/Correios/Model/Carrier/CorreiosMethod.php#L181
Código para isolar o cálculo de frete por serviço.
// Início: Isolamento das consultas de cálculo de frete, para lojas sem contrato. $dataServices = array('<Servicos>'); foreach ($this->_postMethodsExplode as $method) { $this->_postMethods = $method; $returnTemp = $this->_getCorreiosReturn(); if (!empty($returnTemp) && $returnTemp instanceof SimpleXMLElement) { $dataServices[] = $returnTemp->asXML(); } } $dataServices[] = '</Servicos>'; $this->_postMethods = implode(',', $this->_postMethodsExplode); $xml = new SimpleXMLElement(implode('', $dataServices)); $correiosReturn = isset($xml->cServico) ? $xml->cServico : false; // Fim: Isolamento das consultas de cálculo de frete, para lojas sem contrato.
p.s. Código não testado! Utilize por sua conta em risco. Essa é uma solução paliativa. Contate seu desenvolvedor, para uma customização mais aprimorada.
Tento fazer essa alteração acima? Funcionou pra mim!
@jefersonoj mto obrigado! salvou minha vida. Precisando só chamar!
Com certeza, qualquer código de contrato passa, nem precisa de senha
Como o amigo Loja5combr disse, basta colocar "99999999" nos campos conforme a figura abaixo que funciona.
Para quem estava perdido como eu, segue o caminho: MENU DO MAGENTO >SISTEMA>CONFIGURAÇÃO>FORMAS DE ENTREGA>CORREIOS - PEDRO TEIXEIRA. Nos campos "Código Administrativo dos Correios (Serviços Com Contrato)" e também "Senha Administrativa dos Correios (Serviços Com Contrato)" conforme figura abaixo basta colocar a sequencia de 9999999 e salvar.
Obrigado Loja5combr
Hehe foi bom o tempo que durou mas os Correios já esta validando o cod. administrativo, agora não passa mais com os dados fictícios.
Aqui não funcionou mais o "99999999", e nem o trecho de código, ambos exibem a mesma mensagem, alguém com mais alguma solução?
@rangelleithold, postei essa solução há uma semana. Dá uma olhada... https://github.com/pedro-teixeira/correios/issues/447#issuecomment-535134963
@rafaelpatro Acho que tinha feito algo errado antes, agora funcionou, obrigado pessoal!
Aqui nem substituindo conforme mencionado acima está dando certo :/
Bom dia ! Aqui , estava funcionando ! agora não está mais !! algum dica ?!?!?
Aqui tbm parou de funcionar... pelo que vi desde ontem, pois não entrou nenhuma venda de ontem para hj
Só esta funcionando para uma opção de serviço, igual a semana passada quando começou o erro
Pessoal retirei os códigos dos campos na administração e fiz a alteração citada pelo @rafaelpatro https://github.com/pedro-teixeira/correios/issues/447#issuecomment-535134963
Está funcionando normalmente com PAC e SEDEX.
através deste post também resolvi meu beó
https://github.com/pedro-teixeira/correios/issues/447#issuecomment-535134963
@rafaelpatro seu código resolveu perfeitamente, obrigado.. Sugiro um pull-merge pois muitas lojas ainda utilizam os serviços sem contrato.
Eu fiz um If para só isolar quando nenhum contrato estiver definido.
Segue:
$nCdEmpresa = $this->getConfigData('cod_admin');
$sDsSenha = $this->getConfigData('senha_admin');
if (!empty($nCdEmpresa) && !empty($sDsSenha)) {
$correiosReturn = $this->_getCorreiosReturn();
} else {
// Início: Isolamento das consultas de cálculo de frete, para lojas sem contrato.
$dataServices = array('<Servicos>');
foreach ($this->_postMethodsExplode as $method) {
$this->_postMethods = $method;
$returnTemp = $this->_getCorreiosReturn();
if (!empty($returnTemp) && $returnTemp instanceof SimpleXMLElement) {
$dataServices[] = $returnTemp->asXML();
}
}
$dataServices[] = '</Servicos>';
$this->_postMethods = implode(',', $this->_postMethodsExplode);
$xml = new SimpleXMLElement(implode('', $dataServices));
$correiosReturn = isset($xml->cServico) ? $xml->cServico : false;
// Fim: Isolamento das consultas de cálculo de frete, para lojas sem contrato.
}
@rafaelpatro A rotina funciona muito bem, coloquei em 6 lojas que não tem contrato! Abraços
Obrigado pelo feedback! Parece que foi positivo. Se alguém se animar de fazer uma PR, será muito bem vinda. Estou meio sem tempo. Seria interessante colocar uma condição, como fez o @gilano aqui. Abraço! Até a próxima cagada dos Correios kkkk
Já fizeram um #449 mas está dando erro interno no Travis
Segue sugestão... Aguardo feedback Substituir a linha a seguir, pelo trecho mais abaixo. https://github.com/pedro-teixeira/correios/blob/bbfa63a26b687b8ba4ccbd38189174c541a78ec2/app/code/community/PedroTeixeira/Correios/Model/Carrier/CorreiosMethod.php#L181
Código para isolar o cálculo de frete por serviço.
// Início: Isolamento das consultas de cálculo de frete, para lojas sem contrato. $dataServices = array('<Servicos>'); foreach ($this->_postMethodsExplode as $method) { $this->_postMethods = $method; $returnTemp = $this->_getCorreiosReturn(); if (!empty($returnTemp) && $returnTemp instanceof SimpleXMLElement) { $dataServices[] = $returnTemp->asXML(); } } $dataServices[] = '</Servicos>'; $this->_postMethods = implode(',', $this->_postMethodsExplode); $xml = new SimpleXMLElement(implode('', $dataServices)); $correiosReturn = isset($xml->cServico) ? $xml->cServico : false; // Fim: Isolamento das consultas de cálculo de frete, para lojas sem contrato.
p.s. Código não testado! Utilize por sua conta em risco. Essa é uma solução paliativa. Contate seu desenvolvedor, para uma customização mais aprimorada.
Solução deu certo aqui! Muito Obrigado....
Obrigado a todos, em especial a @rafaelpatro e @gilano Tá funcionando 100% pra mim também.
Segue sugestão... Aguardo feedback Substituir a linha a seguir, pelo trecho mais abaixo. https://github.com/pedro-teixeira/correios/blob/bbfa63a26b687b8ba4ccbd38189174c541a78ec2/app/code/community/PedroTeixeira/Correios/Model/Carrier/CorreiosMethod.php#L181
Código para isolar o cálculo de frete por serviço.
// Início: Isolamento das consultas de cálculo de frete, para lojas sem contrato. $dataServices = array('<Servicos>'); foreach ($this->_postMethodsExplode as $method) { $this->_postMethods = $method; $returnTemp = $this->_getCorreiosReturn(); if (!empty($returnTemp) && $returnTemp instanceof SimpleXMLElement) { $dataServices[] = $returnTemp->asXML(); } } $dataServices[] = '</Servicos>'; $this->_postMethods = implode(',', $this->_postMethodsExplode); $xml = new SimpleXMLElement(implode('', $dataServices)); $correiosReturn = isset($xml->cServico) ? $xml->cServico : false; // Fim: Isolamento das consultas de cálculo de frete, para lojas sem contrato.
p.s. Código não testado! Utilize por sua conta em risco. Essa é uma solução paliativa. Contate seu desenvolvedor, para uma customização mais aprimorada.
Após compilar, isso resolveu o problema.
@jefersonoj Fiz aqui no meu e deu certo inclusive deixei um BKP na raiz caso volte a dar pau de novo
Segue sugestão... Aguardo feedback Substituir a linha a seguir, pelo trecho mais abaixo. https://github.com/pedro-teixeira/correios/blob/bbfa63a26b687b8ba4ccbd38189174c541a78ec2/app/code/community/PedroTeixeira/Correios/Model/Carrier/CorreiosMethod.php#L181
Código para isolar o cálculo de frete por serviço.
// Início: Isolamento das consultas de cálculo de frete, para lojas sem contrato. $dataServices = array('<Servicos>'); foreach ($this->_postMethodsExplode as $method) { $this->_postMethods = $method; $returnTemp = $this->_getCorreiosReturn(); if (!empty($returnTemp) && $returnTemp instanceof SimpleXMLElement) { $dataServices[] = $returnTemp->asXML(); } } $dataServices[] = '</Servicos>'; $this->_postMethods = implode(',', $this->_postMethodsExplode); $xml = new SimpleXMLElement(implode('', $dataServices)); $correiosReturn = isset($xml->cServico) ? $xml->cServico : false; // Fim: Isolamento das consultas de cálculo de frete, para lojas sem contrato.
p.s. Código não testado! Utilize por sua conta em risco. Essa é uma solução paliativa. Contate seu desenvolvedor, para uma customização mais aprimorada.
Aqui funcionou de boa, mto obg pela ajuda!
Eu estou com esse mesmo problema no aplicativo dos correios.
Testei a solução do @rafaelpatro, substituindo a linha: $correiosReturn = $this->_getCorreiosReturn(); pelo código disponibilizado.
Porém não obtive sucesso, continuo com a mesma mensagem de "Máximo de 1 código de serviço por consulta". A loja não possui contrato com os Correios. Alguma luz?
@pablodonagraca Pode ser cache na sua loja. O código continua funcionando.
@rdvetromilla O cache da loja está desativado, eu testei em uma aba de navegação privada também.
@rdvetromilla, certifique que a compilação esteja desligada. E que aplicou a alteração no diretório Magento correto. Editado: Desculpe @jefersonoj, confundi e coloquei seu nome.
@rafaelpatro Após desligar a compilação a solução funcionou. Muito obrigado!
Galera, como informado pelo valdeir2000 no link https://forum.opencartbrasil.com.br/viewtopic.php?t=21171
parece que na documentação é necessário utilizar esse código e senha do contrato dos correios
Contrato com os Correios Código: 08082650 Senha: 564321
quando forem inserir o código, utilizar os campos informado pelo nosso amigo rafaelpatro.
Obrigado pela ajuda de todos!
@ThomasYasuhide deu certo com esse código e senha. muito obrigado!
Alguém com o mesmo problema?