Fórum OpenCart Brasil

Por um e-commerce livre, confiável e profissional

#32616
++ UPDATE
Havia um pequeno erro no fechamento de um dos comentários que impossibilitava a funcionalidade correta do módulo. O código abaixo já está corrigido.

==
Fala pessoal

Em resposta ao tópico (https://forum.opencartbrasil.com.br/ ... f=39&t=472), estou disponibilizando a minha correção. Nesta mudança, caso vc tenha configurado o módulo "Frete Grátis" para valores acima de R$ XXX,XX e o total do carrinho for igual ou superior ao valor, a opção Frete Gratis não irá aparecer e a palavra "Grátis" aparecerá no lugar do valor do PAC.
O prazo de entrega é o mesmo calculado pelo PAC e as demais formas de pagamento irão aparecer normalmente, junto com seus valores.
Exemplo:

Imagem

OBS.:
* É necessário ter o módulo "Frete Gratis" habilitado e configurado. (dã!)
* É necessário ter o módulo Correios instalado e configurado (https://forum.opencartbrasil.com.br/ ... f=39&t=379)
* O frete grátis está configurado apenas para opção de "PAC - sem contrato", caso queira em outra forma de envio terá que alterar o código.
* As mudanças afetam a simulação de frete feita no carrinho e checkout final do pedido.

Como eu não tenho acesso a fazer upload do arquivo aqui no forúm, segue o código (tá comentado =D) do vqmod:
Código: Selecionar todos
<modification>
	<id>Frete Gratis via PAC</id>
	<version>1.0.0</version>
	<vqmver>2.1.5 </vqmver>
	<author> Leandro Caetano - leandrocaetano.info - leandrojcaetano@gmail.com </author>
	
	<!-- Alteração no checkout, na hora de finalizar o pedido-->
	<file name="catalog/view/theme/*/template/checkout/shipping_method.tpl">
	  <operation error="skip">
            <search position="replace" offset="22"><![CDATA[
                <table class="radio">
            ]]></search>
            <add><![CDATA[
				<table class="radio">
				<!-- Removido os titulos das formas de envio. Ex.: Frete Gratis, Correios, Retirada na Loja...-->
				<!-- Definindo variaveis que irão receber os valores, caso haja frete gratis-->
				<?php $gratis = null; 
				$gratis_valor = null;?>	
				
				<!-- Busca todos os métodos de envio -->
				<?php foreach ($shipping_methods as $shipping_method) { ?>
				<!--  Busca todos as formas de envio dentro dos métodos -->
				<?php foreach ($shipping_method['quote'] as $quote) { ?>
						<!-- Se houver frete gratis, configurado no módulo Frete Gratis -->
						<?php if ($quote['code'] == "free.free") { ?>
							<!-- Atribui à variavel o texto que aparecerá no lugar do valor do PAC -->
							<?php $gratis = "Gr&aacute;tis"; ?>
							<!-- Atribui à variavel o valor correspondente ao frete gratis (zero) -->
							<?php $gratis_valor = $quote['code']; ?>
							<!-- Verifica se é PAC (correios.41106), utilizando a codificação configurado no módulo "Correios" -->
						<?php } else if ($quote['code'] == "correios.41106") { ?>
						<tr class="highlight">
					<!-- Se a variável "gratis_valor" for diferente de null, é pq ela foi alterada dentro da condição do frete gratis.
						Logo, atribui-se o código de frete gratis (free.free), ao PAC. -->
						<?php if ($gratis_valor != null) $quote['code'] = $gratis_valor; ?>
							<!-- Verifica o código da forma de envio e printa o radiobutton na tela-->
							<td> <?php if ($quote['code'] == $code || !$code) { ?>
							  <?php $code = $quote['code']; ?>	  
							  <input type="radio" name="shipping_method" value="<?php echo $quote['code']; ?>" id="<?php echo $quote['code']; ?>" checked="checked" />
							  <?php } else { ?>
							  <input type="radio" name="shipping_method" value="<?php echo $quote['code']; ?>" id="<?php echo $quote['code']; ?>" />
							  <?php } ?></td>
							<td> <label for="<?php echo $quote['code']; ?>"><?php echo $quote['title']; ?></label></td>
							<!-- Se a variável "gratis" for diferente de null, é pq ela foi alterada dentro da condição do frete gratis. Logo, atribui-se o texto do frete gratis (Gr&aacute;tis), ao PAC. -->
							<?php if ($gratis != null) $quote['text'] = $gratis; ?> 
							<td style="text-align: right;"><label for="<?php echo $quote['code']; ?>"><?php echo $quote['text']; ?></label></td>
						</tr>
						<!-- Fim da condição PAC e segue para as demais formas de envio. -->
						<?php } else { ?>
						<tr class="highlight">
						<!-- Verifica o código da forma de envio e printa o radiobutton na tela-->
							<td> <?php if ($quote['code'] == $code || !$code) { ?>
							  <?php $code = $quote['code']; ?>	  
							  <input type="radio" name="shipping_method" value="<?php echo $quote['code']; ?>" id="<?php echo $quote['code']; ?>" checked="checked" />
							  <?php } else { ?>
							  <input type="radio" name="shipping_method" value="<?php echo $quote['code']; ?>" id="<?php echo $quote['code']; ?>" />
							  <?php } ?></td>
							<td> <label for="<?php echo $quote['code']; ?>"><?php echo $quote['title']; ?></label></td>
							<td style="text-align: right;"><label for="<?php echo $quote['code']; ?>"><?php echo $quote['text']; ?></label></td>
						</tr>
							<?php } ?>
					<?php } ?>
            ]]></add>
          </operation>
	</file>
	
	<!-- Alteração no carrinho, na simulação do frete -->
	<file name="catalog/view/theme/*/template/checkout/cart.tpl">
	<operation error="skip">
            <search position="replace" offset="26"><![CDATA[
                html += '  <table class="radio">';
            ]]></search>
            <add><![CDATA[
				html += '  <table class="radio">';
				<!-- Removido os titulos das formas de envio. Ex.: Frete Gratis, Correios, Retirada na Loja...-->
				<!-- Definindo variaveis que irão receber os valores, caso haja frete gratis-->	
				var gratis = null;
				var gratis_valor = null;

				<!-- Busca todos os métodos de envio -->
				for (i in json['shipping_method']) {
						<!--  Busca todos as formas de envio dentro dos métodos-->
						for (j in json['shipping_method'][i]['quote']) {
							<!-- Se houver frete gratis, configurado no módulo Frete Gratis -->
							if (json['shipping_method'][i]['quote'][j]['code'] == "free.free") {
								<!-- Atribui à variavel o texto que aparecerá no lugar do valor do PAC -->
								gratis = "Gr&aacute;tis";
								<!-- Atribui à variavel o valor correspondente ao frete gratis (zero) -->
								gratis_valor = json['shipping_method'][i]['quote'][j]['code'];
								<!-- Verifica se é PAC, utilizando a codificação configurado no módulo "Correios" -->
							} else if (json['shipping_method'][i]['quote'][j]['code'] == "correios.41106") {
							<!-- Se a variável "gratis_valor" for diferente de null, é pq ela foi alterada dentro da condição do frete gratis.	Logo, atribui-se o código de frete gratis (free.free), ao PAC. -->
									if (gratis_valor != null) json['shipping_method'][i]['quote'][j]['code'] = gratis_valor;
									
									html += '<tr class="highlight">';
									<!-- Verifica o código da forma de envio e printa o radiobutton na tela-->
									if (json['shipping_method'][i]['quote'][j]['code'] == '<?php echo $shipping_method; ?>') {
										html += '<td><input type="radio" name="shipping_method" value="' + json['shipping_method'][i]['quote'][j]['code'] + '" id="' + json['shipping_method'][i]['quote'][j]['code'] + '" checked="checked" /></td>';
									} else {
										html += '<td><input type="radio" name="shipping_method" value="' + json['shipping_method'][i]['quote'][j]['code'] + '" id="' + json['shipping_method'][i]['quote'][j]['code'] + '" /></td>';
									}
										
									html += '  <td><label for="' + json['shipping_method'][i]['quote'][j]['code'] + '">' + json['shipping_method'][i]['quote'][j]['title'] + '</label></td>';
									<!-- Se a variável "gratis" for diferente de null, é pq ela foi alterada dentro da condição do frete gratis. Logo, atribui-se o texto do frete gratis (Gr&aacute;tis), ao PAC. -->
									if (gratis != null) json['shipping_method'][i]['quote'][j]['text'] = gratis;
									html += '  <td style="text-align: right;"><label for="' + json['shipping_method'][i]['quote'][j]['code'] + '">' + json['shipping_method'][i]['quote'][j]['text'] + '</label></td>';
									html += '</tr>'; 
							<!-- Fim da condição PAC e segue para as demais formas de envio. -->		 
							} else {							
							html += '<tr class="highlight">';
							<!-- Verifica o código da forma de envio e printa o radiobutton na tela-->
							if (json['shipping_method'][i]['quote'][j]['code'] == '<?php echo $shipping_method; ?>') {
								html += '<td><input type="radio" name="shipping_method" value="' + json['shipping_method'][i]['quote'][j]['code'] + '" id="' + json['shipping_method'][i]['quote'][j]['code'] + '" checked="checked" /></td>';
							} else {
								html += '<td><input type="radio" name="shipping_method" value="' + json['shipping_method'][i]['quote'][j]['code'] + '" id="' + json['shipping_method'][i]['quote'][j]['code'] + '" /></td>';
							}
								
							html += '  <td><label for="' + json['shipping_method'][i]['quote'][j]['code'] + '">' + json['shipping_method'][i]['quote'][j]['title'] + '</label></td>';
							html += '  <td style="text-align: right;"><label for="' + json['shipping_method'][i]['quote'][j]['code'] + '">' + json['shipping_method'][i]['quote'][j]['text'] + '</label></td>';
							html += '</tr>';
							}
						}		
				}
			]]></add>
          </operation>
	</file>
</modification>
Abraços!!!
Editado pela última vez por leandro.caetano em 02 Fev 2013, 10:49, em um total de 1 vez.
#32646
Cara, tem que ver se o nome do arquivo responsável por carregar as informação de envio no ubercheckout.

No caso do checkout "normal" é esse: catalog/view/theme/*/template/checkout/shipping_method.tpl

abraços,
#34511
leandro.caetano escreveu:Cara, tem que ver se o nome do arquivo responsável por carregar as informação de envio no ubercheckout.

No caso do checkout "normal" é esse: catalog/view/theme/*/template/checkout/shipping_method.tpl

abraços,
Boa noite, não esta funcionando na versão 1.5.2.1 tem correção?? valew
#34792
cleitonmacedo escreveu:
leandro.caetano escreveu:Cara, tem que ver se o nome do arquivo responsável por carregar as informação de envio no ubercheckout.

No caso do checkout "normal" é esse: catalog/view/theme/*/template/checkout/shipping_method.tpl

abraços,
Boa noite, não esta funcionando na versão 1.5.2.1 tem correção?? valew
Olá,
O código acima já está com a correção.
#40811
Na 1.5.5.1 fiz funcionar da seguinte forma...
modifique o arquivo catalog/view/theme/default/template/checkout/cart.tpl , substitua da linha 249 a 273 e cole
Código: Selecionar todos
html += '  <table class="radio">';
				var gratis = null;
                var gratis_valor = null;
				
				for (i in json['shipping_method']) {
				for (j in json['shipping_method'][i]['quote']) {
					 <!-- Se houver frete gratis, configurado no módulo Frete Gratis -->
                     if (json['shipping_method'][i]['quote'][j]['code'] == "free.free") {
                        <!-- Atribui à variavel o texto que aparecerá no lugar do valor do PAC -->
                        gratis = "Gr&aacute;tis";
                        <!-- Atribui à variavel o valor correspondente ao frete gratis (zero) -->
                        gratis_valor = json['shipping_method'][i]['quote'][j]['code'];
                        <!-- Verifica se é PAC, utilizando a codificação configurado no módulo "Correios" -->
                     } else if (json['shipping_method'][i]['quote'][j]['code'] == "correios.41106") {
                     <!-- Se a variável "gratis_valor" for diferente de null, é pq ela foi alterada dentro da condição do frete gratis.   Logo, atribui-se o código de frete gratis (free.free), ao PAC. -->
                           if (gratis_valor != null) json['shipping_method'][i]['quote'][j]['code'] = gratis_valor;
                           
                           html += '<tr class="highlight">';
                           <!-- Verifica o código da forma de envio e printa o radiobutton na tela-->
                           if (json['shipping_method'][i]['quote'][j]['code'] == '<?php echo $shipping_method; ?>') {
                              html += '<td><input type="radio" name="shipping_method" value="' + json['shipping_method'][i]['quote'][j]['code'] + '" id="' + json['shipping_method'][i]['quote'][j]['code'] + '" checked="checked" /></td>';
                           } else {
                              html += '<td><input type="radio" name="shipping_method" value="' + json['shipping_method'][i]['quote'][j]['code'] + '" id="' + json['shipping_method'][i]['quote'][j]['code'] + '" /></td>';
                           }
                              
                           html += '  <td><label for="' + json['shipping_method'][i]['quote'][j]['code'] + '">' + json['shipping_method'][i]['quote'][j]['title'] + '</label></td>';
                           <!-- Se a variável "gratis" for diferente de null, é pq ela foi alterada dentro da condição do frete gratis. Logo, atribui-se o texto do frete gratis (Gr&aacute;tis), ao PAC. -->
                           if (gratis != null) json['shipping_method'][i]['quote'][j]['text'] = gratis;
                           html += '  <td style="text-align: right;"><label for="' + json['shipping_method'][i]['quote'][j]['code'] + '">' + json['shipping_method'][i]['quote'][j]['text'] + '</label></td>';
                           html += '</tr>'; 
                     <!-- Fim da condição PAC e segue para as demais formas de envio. -->       
                     } else {                     
                     html += '<tr class="highlight">';
                     <!-- Verifica o código da forma de envio e printa o radiobutton na tela-->
                     if (json['shipping_method'][i]['quote'][j]['code'] == '<?php echo $shipping_method; ?>') {
                        html += '<td><input type="radio" name="shipping_method" value="' + json['shipping_method'][i]['quote'][j]['code'] + '" id="' + json['shipping_method'][i]['quote'][j]['code'] + '" checked="checked" /></td>';
                     } else {
                        html += '<td><input type="radio" name="shipping_method" value="' + json['shipping_method'][i]['quote'][j]['code'] + '" id="' + json['shipping_method'][i]['quote'][j]['code'] + '" /></td>';
                     }
                        
                     html += '  <td><label for="' + json['shipping_method'][i]['quote'][j]['code'] + '">' + json['shipping_method'][i]['quote'][j]['title'] + '</label></td>';
                     html += '  <td style="text-align: right;"><label for="' + json['shipping_method'][i]['quote'][j]['code'] + '">' + json['shipping_method'][i]['quote'][j]['text'] + '</label></td>';
                     html += '</tr>';
                     }


e depois use a primeira parte do XML do leandro.caetano
Código: Selecionar todos
<modification>
   <id>Frete Gratis via PAC</id>
   <version>1.0.0</version>
   <vqmver>2.1.5 </vqmver>
   <author> Leandro Caetano - leandrocaetano.info - leandrojcaetano@gmail.com </author>
   
   <!-- Alteração no checkout, na hora de finalizar o pedido-->
   <file name="catalog/view/theme/*/template/checkout/shipping_method.tpl">
     <operation error="skip">
            <search position="replace" offset="22"><![CDATA[
                <table class="radio">
            ]]></search>
            <add><![CDATA[
            <table class="radio">
            <!-- Removido os titulos das formas de envio. Ex.: Frete Gratis, Correios, Retirada na Loja...-->
            <!-- Definindo variaveis que irão receber os valores, caso haja frete gratis-->
            <?php $gratis = null; 
            $gratis_valor = null;?>   
            
            <!-- Busca todos os métodos de envio -->
            <?php foreach ($shipping_methods as $shipping_method) { ?>
            <!--  Busca todos as formas de envio dentro dos métodos -->
            <?php foreach ($shipping_method['quote'] as $quote) { ?>
                  <!-- Se houver frete gratis, configurado no módulo Frete Gratis -->
                  <?php if ($quote['code'] == "free.free") { ?>
                     <!-- Atribui à variavel o texto que aparecerá no lugar do valor do PAC -->
                     <?php $gratis = "Gr&aacute;tis"; ?>
                     <!-- Atribui à variavel o valor correspondente ao frete gratis (zero) -->
                     <?php $gratis_valor = $quote['code']; ?>
                     <!-- Verifica se é PAC (correios.41106), utilizando a codificação configurado no módulo "Correios" -->
                  <?php } else if ($quote['code'] == "correios.41106") { ?>
                  <tr class="highlight">
               <!-- Se a variável "gratis_valor" for diferente de null, é pq ela foi alterada dentro da condição do frete gratis.
                  Logo, atribui-se o código de frete gratis (free.free), ao PAC. -->
                  <?php if ($gratis_valor != null) $quote['code'] = $gratis_valor; ?>
                     <!-- Verifica o código da forma de envio e printa o radiobutton na tela-->
                     <td> <?php if ($quote['code'] == $code || !$code) { ?>
                       <?php $code = $quote['code']; ?>     
                       <input type="radio" name="shipping_method" value="<?php echo $quote['code']; ?>" id="<?php echo $quote['code']; ?>" checked="checked" />
                       <?php } else { ?>
                       <input type="radio" name="shipping_method" value="<?php echo $quote['code']; ?>" id="<?php echo $quote['code']; ?>" />
                       <?php } ?></td>
                     <td> <label for="<?php echo $quote['code']; ?>"><?php echo $quote['title']; ?></label></td>
                     <!-- Se a variável "gratis" for diferente de null, é pq ela foi alterada dentro da condição do frete gratis. Logo, atribui-se o texto do frete gratis (Gr&aacute;tis), ao PAC. -->
                     <?php if ($gratis != null) $quote['text'] = $gratis; ?> 
                     <td style="text-align: right;"><label for="<?php echo $quote['code']; ?>"><?php echo $quote['text']; ?></label></td>
                  </tr>
                  <!-- Fim da condição PAC e segue para as demais formas de envio. -->
                  <?php } else { ?>
                  <tr class="highlight">
                  <!-- Verifica o código da forma de envio e printa o radiobutton na tela-->
                     <td> <?php if ($quote['code'] == $code || !$code) { ?>
                       <?php $code = $quote['code']; ?>     
                       <input type="radio" name="shipping_method" value="<?php echo $quote['code']; ?>" id="<?php echo $quote['code']; ?>" checked="checked" />
                       <?php } else { ?>
                       <input type="radio" name="shipping_method" value="<?php echo $quote['code']; ?>" id="<?php echo $quote['code']; ?>" />
                       <?php } ?></td>
                     <td> <label for="<?php echo $quote['code']; ?>"><?php echo $quote['title']; ?></label></td>
                     <td style="text-align: right;"><label for="<?php echo $quote['code']; ?>"><?php echo $quote['text']; ?></label></td>
                  </tr>
                     <?php } ?>
               <?php } ?>
            ]]></add>
          </operation>
   </file>
</modification> 
Uninhibited dating for men

Make dating stress-free and enjoyable with the bes[…]

Ola @alex3257 Isso deveria aparecer sim, Veja […]

Erro ao acessar ADMIN

Ola @raildoaraujo Se em sua versão for e[…]

Botão impirmir

O Botão imprimir não funciona quando[…]