correios
correios copied to clipboard
Restringir CEPs em Valor Fixo
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, 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
Consegui fazer a restrição conforme sua orientação. Tenho a necessidade do PAC(04510) aparecer somente para MG (30000000 - 39999999)
é possível ?
Obrigado.
É 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 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.
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).
Desconfio que vc tenha encontrado um bug. Consegue testar desativando a Divisão de Pacotes?
@rafaelpatro Desativando Divisão de pacotes o erro não acontece :)
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.