Pular para o conteúdo

Fernando Soares - Mantendo sua Tecnologia

Increase font size Decrease font size Default font size
Você está aqui:  Início Fórum Projetos Plugin de envio Correios para VirtueMart Promoção frete gratuito
Pular para o conteúdo
Bem-Vindo, Visitante
Username: Password: Lembrar-me
  • Página:
  • 1
  • 2

TÓPICO: Promoção frete gratuito

Promoção frete gratuito 11 Set 2009 16:45 #2321

Salve,

Um cliente teve a necessidade de fazer uma promoção onde os fretes de compras a partir de um certo valor não seriam cobrados.

Demorei um bocado para chegar a uma solição simples e limpa. Disto isto, mão na massa... Nos arquivos do componente (correios_encom_pac.php e correios_sedex.php):


1. Cáclulo do frete
Na função 'list_rates', substituir tudo entre o texto 'Final Obtém o valor do frete do site dos Correios' e o final da função por:
if($order_total < gratis_acima_de){
		$Total_Shipping_Handling = $APcharge + $Order_Handling_Fee;
		$free_shipping = false;
		$ship_text = "<strong>".$CURRENCY_DISPLAY->getFullValue($Total_Shipping_Handling)."</strong>";
		$ship_text .= " (".$Order_WeightKG." Kg - Aprox. ".$prazo.")";
 
	} else {
		$Total_Shipping_Handling = 0;
		$free_shipping = true;
		$ship_text = "<strong>Frete grátis!</strong> Compra acima de ".$CURRENCY_DISPLAY->getFullValue(gratis_acima_de);
		$ship_text .= " - Aprox. ".$prazo;
	}
 
	// THE ORDER OF THOSE VALUES IS IMPORTANT:
	// ShippingClassName|carrier_name|rate_name|totalshippingcosts|rate_id	
	$shipping_rate_id = urlencode( $this->classname."|Correios_Brasil|Encomenda_PAC|".$Total_Shipping_Handling);
	$_SESSION[$shipping_rate_id] = 1;
 
	$html = "\n<input type=\"radio\" name=\"shipping_rate_id\" id=\"correios_encomenda\" checked=\"checked\" value=\"$shipping_rate_id\" />\n";
	$html .= "<label for=\"Correios_encomenda_shipping_rate\">Correios - PAC - ";
	//$html .= "Correios - Encomenda PAC";
	//$html .= "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- ";
	$html .= $ship_text;
	$html .= "</label>";
 
	echo $html;
	return true;


2. Exibição da configuração
Na função 'show_configuration', inserir a linha de tabela (TR)
<tr>
  <td><strong>Frete gratuito acima de:</strong></td>
  <td>
    <input type="text" name="gratis_acima_de" class="inputbox" value="<?php echo gratis_acima_de ?>" />
  </td>
  <td>
    <?php echo mm_ToolTip("Fretes acima deste valor não serão cobrados. Formato 400.00") ?>
  </td>
</tr>


3. Gravação da configuração
Na função 'write_configuration' insira a seguinte linha no array $my_config_array:
"gratis_acima_de" => $d['gratis_acima_de'],

Essa mereçe entrar para a próxima versão, não é Fernando? :cheer: Assim não preciso replicar quando fizer upgrade...

Anexos:
Última Edição: 11 Set 2009 16:46 por Helio Ricardo. Razão: Organização do texto
O administrador desabilitou o acesso público de escrita.

Re: Promoção frete gratuito 22 Set 2009 11:05 #2376

  • Fernando Soares
  • Fernando Soares's Avatar
  • OFFLINE
  • Administrador
  • Mantendo sua Tecnologia
  • Postagens: 1685
  • Thank you received: 25
  • Karma: 35
Olá,

Show de bola Helio Ricardo !!! Com certeza vou estudar esta possibilidade para os próximos módulos.

Normalmente esta opção é definida diretamente na configuração do VirtueMart em "LOJA > Editar Loja" opção "Quantia Mínima para Entrega Grátis:".

Ah, gostei muito do tema!

Abraços
Hospedagem Joomla e VirtueMart!
Soluções para sua Loja Virtual (e-commerce).
Manutenção de computadores em Santa Cruz do Sul e região.
Siga-me no Twitter: twitter.com/fernando_soares
Última Edição: 22 Set 2009 11:06 por Fernando Soares.
O administrador desabilitou o acesso público de escrita.

Re:Promoção frete gratuito 25 Set 2009 15:45 #2441

Oi, gostei muito da solução! E aproveitando o tópico.. Eu estou precisando fazer algo um pouquinho diferente...

Ao invés de frete grátis a partir de determinado valor ou peso, preciso de frete grátis a partir de determinada faixa de cep. Ou seja, a partir da cidade onde a loja está o frete é grátis. Eu coloquei as faixas de cep nos módulos do correio, mas aí o módulo ignora. Como faria então para não cobrar frete somente neste caso? Existe algum outro módulo no virtuemart que eu posso usar como paleativo? Ou teria que alterar o código do módulo dos correios como fez o amigo Hélio?

Abraços
O administrador desabilitou o acesso público de escrita.

Re:Promoção frete gratuito 25 Set 2009 17:33 #2442

Agora descobri que minha pergunta foi até bastante óbvia... Mas, de qualquer forma coloco aqui a solução que encontrei para aqueles que precisarem disso. Para o frete grátis para uma cidade (no caso a mesma cidade onde está a loja física) basta configurar normalmente os módulos de PAC e SEDEX com a exceção da faixa de cep da cidade. E depois ativar o módulo padrão de envio do Virtuemart e configurá-lo com essa mesma faixa de CEP e com preço 0,00 no frete. Assim, quando o cliente informar essa faixa de cep, entra em cena esse módulo informando o preço 0,00.

Espero que seja de ajuda a solução.

Abraços
O administrador desabilitou o acesso público de escrita.

Dúvidas 27 Abr 2010 12:24 #3556

Olá!

Quando você diz: com a exceção da faixa de cep da cidade. Você quer dizer para em Faixa de CEPs deixar: = Não usar faixa de CEs = ?

Você fala para ativar o módulo padrão de envio do VirtueMart. Como chama esse módulo? Ele já vem instalado? Preciso instalá-lo?

Grato,

Fábio
O administrador desabilitou o acesso público de escrita.
  • Página:
  • 1
  • 2
Time to create page: 0.296 seconds