Re: [MÓDULO] Frete Grátis via PAC
Enviado: 13 Ago 2013, 12:35
Alguma solução para a versão 1.5.4.1 ?
Por um e-commerce livre, confiável e profissional.
https://forum.opencartbrasil.com.br/
leandro.caetano escreveu:Eu não entendi o que eu faço com esse código! Insiro ele num novo arquivo xml e subo pelo ftp? Ou eu modifico o módulo dos Correios?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á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á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á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á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>
leandro.caetano escreveu:olá,Funcionou perfeitamente! Estou usando a versão 1.5.4.
você deve criar um xml e jogar no servidor via FTP. Depois disso é apenas ter o módulo "Frete Gratis" habilitado e configurado.
Esta alteração foi implementada na versão 1.5.4.
abraços,
ewippel escreveu:Legal!!!! Qualquer coisa estou a disposição.leandro.caetano escreveu:olá,Funcionou perfeitamente! Estou usando a versão 1.5.4.
você deve criar um xml e jogar no servidor via FTP. Depois disso é apenas ter o módulo "Frete Gratis" habilitado e configurado.
Esta alteração foi implementada na versão 1.5.4.
abraços,
Valeu, Leandro!
leandro.caetano escreveu:Em 1.5.6.3 será que funciona ou precisaria de adaptações?ewippel escreveu:Legal!!!! Qualquer coisa estou a disposição.leandro.caetano escreveu:olá,Funcionou perfeitamente! Estou usando a versão 1.5.4.
você deve criar um xml e jogar no servidor via FTP. Depois disso é apenas ter o módulo "Frete Gratis" habilitado e configurado.
Esta alteração foi implementada na versão 1.5.4.
abraços,
Valeu, Leandro!