correios icon indicating copy to clipboard operation
correios copied to clipboard

Restringir CEPs em Valor Fixo

Open leonardobussolo opened this issue 6 years ago • 9 comments

Não estou encontrando uma forma de restringir a forma de entrega "Valor Fixo" para determinados Ceps (ou cidade/estado), apenas por país. Utilizo a opção de Valor Fixo para a forma de entrega "Retirar na Loja" e preciso limitar a apenas a cidade de São Paulo.

Alguém consegue me ajudar?

leonardobussolo avatar Jul 10 '18 17:07 leonardobussolo

@leonardobussolo, isso é bem simples de fazer. No arquivo de configuração do módulo, localize a tag add_postmethods. Adicione o trecho a seguir.

<sedex_grande_sao_paulo>
	<code>04162</code>
	<price>5.00</price>
	<days></days>
	<from>
		<zip>01000000</zip>
		<weight>0</weight>
		<size>0</size>
	</from>
	<to>
		<zip>09999999</zip>
		<weight>30</weight>
		<size>30</size>
	</to>
</sedex_grande_sao_paulo>

Nesse caso, suas cotações para o serviço Sedex, para Grande São Paulo serão reajustadas. Valor: 5 reais Prazo: 1 dia

Coloque seu código de serviço vigente na tag code. Pode cadastrar quantas tags vc quiser...

  • para serviços diferentes, Pac, Carta, Sedex, Sedex 10
  • para faixas de peso diferentes (De 0 a 10kg = R$5,00 | De 10 a 30kg = R$10,00)
  • para faixas de tamanho (cm) diferentes
  • para faixas de CEP (cidade, estado, região, etc) diferentes

rafaelpatro avatar Jul 16 '18 17:07 rafaelpatro

@rafaelpatro

Consegui fazer a restrição conforme sua orientação. Tenho a necessidade do PAC(04510) aparecer somente para MG (30000000 - 39999999)

é possível ?

Obrigado.

r1tt3r avatar Sep 24 '18 18:09 r1tt3r

É só remover a faixa geral https://github.com/pedro-teixeira/correios/blob/2c828ac48627de551b7faed83f22f814b5c8bdef/app/code/community/PedroTeixeira/Correios/etc/config.xml#L611

Coloca essa aqui no lugar...

<minas_gerais>30000000,39999999</minas_gerais>

rafaelpatro avatar Sep 24 '18 19:09 rafaelpatro

@rafaelpatro Rafael,

Parece que funcionou porém depois que fiz essa alteração, quando realizo uma busca de CEP que não seja de MG está estourando erro no servidor -> Internal Server Error

PHP Fatal error: Allowed memory size of 2097152000 bytes exhausted (tried to allocate 130968 bytes) in /Applications/XAMPP/xamppfiles/htdocs/moncaviste/lib/Varien/Object.php on line 629

Quando busco CEPs de MG, funciona normalmente. Estou em um xamp local, testei na AWS mesmo erro. Talvez eu possa aumentar a memória, mas será que tem algum motivo especifico ?

Fiz outro teste também, alterando o arquivo config.xml, deixando somente serv_04669 e serv_04162, PAC e Sedex com contrato que vou utilizar. O erro persistiu.

r1tt3r avatar Sep 25 '18 17:09 r1tt3r

Pode mandar seu arquivo config.xml pra eu verificar? E um print da tela de configurações do módulo (todos os campos / não esquece de ocultar os dados sensíveis).

rafaelpatro avatar Sep 25 '18 19:09 rafaelpatro

@rafaelpatro

Rafael, segue:

correios

config.xml.zip

r1tt3r avatar Sep 25 '18 19:09 r1tt3r

Desconfio que vc tenha encontrado um bug. Consegue testar desativando a Divisão de Pacotes?

rafaelpatro avatar Sep 25 '18 20:09 rafaelpatro

@rafaelpatro Desativando Divisão de pacotes o erro não acontece :)

r1tt3r avatar Sep 25 '18 20:09 r1tt3r

Parece que temos um problema nesse método... https://github.com/pedro-teixeira/correios/blob/2c828ac48627de551b7faed83f22f814b5c8bdef/app/code/community/PedroTeixeira/Correios/Model/Carrier/CorreiosMethod.php#L925

Uma correção seria validar o peso antes de dividir. Acho que qualquer coisa maior do que 0.001 seria suficiente.

rafaelpatro avatar Sep 25 '18 20:09 rafaelpatro