correios icon indicating copy to clipboard operation
correios copied to clipboard

Política de Frete Grátis

Open ciromendoncajr opened this issue 7 years ago • 4 comments

Boa tarde Galera,

Desde a atualização de política de fretes do correios estou tendo problemas pelo seguinte:

O Módulo tem a opção de escolher qual a forma de entrega será gratuita (No meu caso eu setava o PAC) porém agora com a nova política dos correios algumas regiões o sedex é mais em conta que o PAC e portanto extinguiu o serviço de PAC. Assim a minha política de frete free parou de funcionar, pois oferece frete grátis Brasil acima de determinado valor ( não posso colocar o sedex ) e se deixo o PAC as cidades que teriam vantagem ficam sem a opção de frete gratuito! Alguém sabe como solucionar isso?

abs

ciromendoncajr avatar Aug 03 '17 19:08 ciromendoncajr

Ola boa tarde,

Encontrou alguma solução? Estou com o mesmo problema.

rafaeldimas avatar Sep 20 '17 18:09 rafaeldimas

Prezados, Bom dia. Eu utilizo o módulo do Pedro Teixeira e também estava com o mesmo problema. A seguinte solução resolveu para mim:

1)Adicionei um novo atributo no módulo do Pedro Teixeira. Para isso, modifiquei o arquivo system.xml que fica no diretorio 'app/code/community/PedroTeixeira/Correios/etc'. Logo após a tag <free_method>, adicionei o seguinte:

                      <free_method_2 translate="label">
                        <label>2&#176; Serviço Para Entrega Gratuita</label>
                        <frontend_type>select</frontend_type>
                        <frontend_class>free-method</frontend_class>
                        <source_model>PedroTeixeira_Correios_Model_Source_PostMethods</source_model>
                        <sort_order>31</sort_order>
                        <show_in_default>1</show_in_default>
                        <show_in_website>1</show_in_website>
                        <show_in_store>1</show_in_store>
                        <comment>Se o primeiro serviço de entrega gratuita não estiver disponível, 
						o sistema tentará a segunda opção.
                            Lembre-se de habilitar o serviço.
                        </comment>
                    </free_method_2>

Isso permitirá que eu selecione na adm do magento qual o outro método de entrega dos correios que deve ser usado, caso o primeiro não esteja disponível. Na verdade, a lógica irá sempre usar como serviço de entrega gratuita, o de menor custo;

2)Fiz uma modificação no arquivo Abstract.php que fica em 'html/app/code/core/Mage/Shipping/Model/Carrier'. IMPORTANTE: não modificar o arquivo diretamente nesse diretório. Copiar o arquivo para o diretório 'html/app/code/local/Mage/Shipping/Model/Carrier' e ai sim fazer as seguintes modificações: 2.1) Localizar o método 'protected function _updateFreeMethodQuote($request)'. Está mais ou menos na linha 337. Dentro do método, substituir o código (começa mais ou menos na linha 349):

  if (is_object($this->_result)) {
        foreach ($this->_result->getAllRates() as $i=>$item) {
            if ($item->getMethod() == $freeMethod) {
                $freeRateId = $i;
                break;
            }
        }
    }

Por esse:

	$freeMethodAlt = Mage::getStoreConfig('carriers/pedroteixeira_correios/free_method_2');
	//Variáveis para fazer o teste de qual serviço é o mais barato e deve ser o de entrega gratuita
	$valorFreteAtual = 10000;
	$nomeMetodo = '';
	
	if (is_object($this->_result)) {
            //varre todos os métodos de entrega disponíveis
		foreach ($this->_result->getAllRates() as $i=>$item) {		
			//pega o nome do método. se estiver preenchido, significa que é válido
			$nomeMetodo = $item->getMethod();		
			if ($nomeMetodo != ''){
				//verifica se o metodo de envio é mais barato do que o já setado atualmente. se sim, seta ele.
				if ($valorFreteAtual > $item->getPrice()){
					if (($item->getMethod() == $freeMethod) || ($item->getMethod() == $freeMethodAlt)){
						$valorFreteAtual = $item->getPrice();
						$freeRateId = $i;
					}
				}
			}
		}
	}

Pronto! Depois disso é só rodar novamente o cálculo de frete e ver se resolveu.

Abraços!

arleifc avatar Sep 26 '17 12:09 arleifc

Acho que pode fechar esta issue @pedro-teixeira

williangringo avatar Jun 07 '18 22:06 williangringo

Pessoal, boa noite!

Estou com o mesmo problema. A solução apresentada pelo @arleifc resolveu o problema?

maurofilhobh avatar Jun 24 '18 02:06 maurofilhobh