Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Máximo de 1 código de serviço por consulta. #447

Open
jefersonoj opened this issue Sep 25, 2019 · 49 comments
Open

Máximo de 1 código de serviço por consulta. #447

jefersonoj opened this issue Sep 25, 2019 · 49 comments

Comments

@jefersonoj
Copy link

25-09-2019 13-06-24
Alguém com o mesmo problema?

@guittavares
Copy link

Acabei de abrir uma postagem com o mesmo problema.

Por enquanto estou deixando apenas 1 opção de frete.

@jefersonoj
Copy link
Author

Também fiz isso por enquanto

@rafaelpatro
Copy link
Contributor

Aqui ainda funcionando.
Vc configurou o código de contrato no módulo? Pode mandar um print da tela de configurações?

image

@jefersonoj
Copy link
Author

Não tenho configurado, qual é o campo?

image

@rafaelpatro
Copy link
Contributor

Para o cálculo de frete são esses aqui...
image

@yurirn
Copy link

yurirn commented Sep 25, 2019

O problema só esta acontecendo para quem não tem contrato...

@rafaelpatro
Copy link
Contributor

Sacanagem isso! Só quem tem contrato agora pode consultar múltiplos serviços numa única chamada. É isso?!

@yurirn
Copy link

yurirn commented Sep 25, 2019

Calma, ja aconteceu isso outras vezes, provavelmente já deve voltar a funcionar, ou vai precisar atualizar o modulo

@rafaelpatro
Copy link
Contributor

Segue sugestão... Aguardo feedback
Substituir a linha a seguir, pelo trecho mais abaixo.

$correiosReturn = $this->_getCorreiosReturn();

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.

@lGustavo206
Copy link

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

@philsouza2016
Copy link

Até agora não voltou...

@goncalocruz77
Copy link

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)?

@loja5combr
Copy link

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.

http://ws.correios.com.br/calculador/CalcPrecoPrazo.aspx?nCdServico=04510%2C04014&nCdEmpresa=999999999&sDsSenha=999999999&sCepDestino=22450000&sCepOrigem=22450000&nVlAltura=8%2C10&nVlLargura=16%2C00&nVlDiametro=0&nVlComprimento=16%2C00&nVlPeso=3%2C00&nCdFormato=1&sCdMaoPropria=N&nVlValorDeclarado=0&sCdAvisoRecebimento=N&StrRetorno=xml

@goncalocruz77
Copy link

Ôpa! Loja 5 salvou. Já fiz o mesmo procedimento e funcionou corretamente.

Valeu.

@filipenunes75
Copy link

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 ?

@jefersonoj
Copy link
Author

Segue sugestão... Aguardo feedback
Substituir a linha a seguir, pelo trecho mais abaixo.

$correiosReturn = $this->_getCorreiosReturn();

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!

@filipenunes75
Copy link

@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.

$correiosReturn = $this->_getCorreiosReturn();

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!

@rafatriolo
Copy link

@jefersonoj mto obrigado! salvou minha vida. Precisando só chamar!

@MagnoAlves
Copy link

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

image

@loja5combr
Copy link

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.

@rangelleithold
Copy link

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?

@rafaelpatro
Copy link
Contributor

@rangelleithold, postei essa solução há uma semana. Dá uma olhada...
#447 (comment)

@rangelleithold
Copy link

@rafaelpatro Acho que tinha feito algo errado antes, agora funcionou, obrigado pessoal!

@castilio1
Copy link

Aqui nem substituindo conforme mencionado acima está dando certo :/

@filipenunes75
Copy link

Bom dia ! Aqui , estava funcionando ! agora não está mais !! algum dica ?!?!?

@davicassis
Copy link

davicassis commented Oct 3, 2019

Aqui tbm parou de funcionar... pelo que vi desde ontem, pois não entrou nenhuma venda de ontem para hj

@davicassis
Copy link

Só esta funcionando para uma opção de serviço, igual a semana passada quando começou o erro

@goncalocruz77
Copy link

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.

@alexandresoaresramos
Copy link

através deste post também resolvi meu beó

#447 (comment)

@rdvetromilla
Copy link

@rafaelpatro seu código resolveu perfeitamente, obrigado.. Sugiro um pull-merge pois muitas lojas ainda utilizam os serviços sem contrato.

@gilano
Copy link

gilano commented Oct 7, 2019

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.
}

@lettitech
Copy link

@rafaelpatro A rotina funciona muito bem, coloquei em 6 lojas que não tem contrato!
Abraços

@rafaelpatro
Copy link
Contributor

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

@rdvetromilla
Copy link

Já fizeram um #449 mas está dando erro interno no Travis

@emersonc
Copy link

Segue sugestão... Aguardo feedback
Substituir a linha a seguir, pelo trecho mais abaixo.

$correiosReturn = $this->_getCorreiosReturn();

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....

@leojavadev
Copy link

Obrigado a todos, em especial a @rafaelpatro e @gilano
Tá funcionando 100% pra mim também.

@leoamf
Copy link

leoamf commented Oct 16, 2019

Segue sugestão... Aguardo feedback
Substituir a linha a seguir, pelo trecho mais abaixo.

$correiosReturn = $this->_getCorreiosReturn();

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.

@Moi250
Copy link

Moi250 commented Nov 8, 2019

@jefersonoj Fiz aqui no meu e deu certo inclusive deixei um BKP na raiz caso volte a dar pau de novo

@cacs200281
Copy link

Segue sugestão... Aguardo feedback
Substituir a linha a seguir, pelo trecho mais abaixo.

$correiosReturn = $this->_getCorreiosReturn();

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!

@ehammo
Copy link

ehammo commented Nov 11, 2019

Eu estou com esse mesmo problema no aplicativo dos correios.

@ehammo
Copy link

ehammo commented Nov 11, 2019

Screenshot_20191111-181428

@pablodonagraca
Copy link

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?

@rdvetromilla
Copy link

@pablodonagraca Pode ser cache na sua loja. O código continua funcionando.

@pablodonagraca
Copy link

@rdvetromilla O cache da loja está desativado, eu testei em uma aba de navegação privada também.

@rafaelpatro
Copy link
Contributor

rafaelpatro commented Nov 15, 2019

@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.

@pablodonagraca
Copy link

@rafaelpatro Após desligar a compilação a solução funcionou. Muito obrigado!

@ThomasYasuhide
Copy link

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!

@MarcioGimenez
Copy link

@ThomasYasuhide deu certo com esse código e senha. muito obrigado!

eneiasramos added a commit to gamuzatech/tolucastore-magento that referenced this issue Jun 17, 2021
eneiasramos added a commit to gamuzatech/tolucastore-magento that referenced this issue Jun 17, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests