Página 1 de 3

[TUTORIAL] Exibir preço do produto com desconto!

Enviado: 16 Fev 2014, 12:51
por leandrorppo
Olá!
Como vi alguns pedidos de como exibir o preço do produto com desconto, segue a solução (testado na versão 1.5.5.1):
Código: Selecionar todos
    <?php
     //Leandro R.P.P.O
     if (!$special) {
     $preco_sw = str_replace(',','.',str_replace('.','', str_replace("R$","",$price)));
     } else {
     $preco_sw = str_replace(',','.',str_replace('.','', str_replace("R$","",$special)));
     } 
     ?>
    
     <?php 
     $preço_sw;
     $percentual = 5 / 100; // 5%
     $valor_final = $preco_sw - ($percentual * $preco_sw);
     $valor_sw =  number_format($valor_final, 2, ',', '.'); 
     ?>

     <font color="#F15A23" size="5"><strong>R$ <?php echo $valor_sw ; ?></strong></font>
No exemplo abaixo o código na página de produtos:
Imagem
Lembrando que o preço com desconto não será inserido no carrinho de compras, é apenas a EXIBIÇÃO como solicitado em alguns tópicos:
https://forum.opencartbrasil.com.br/ ... =12&t=9697
https://forum.opencartbrasil.com.br/ ... %25#p48406
https://forum.opencartbrasil.com.br/ ... =21&t=9474
O módulo ideal para aplicar os descontos nos tipos de pagamentos: https://forum.opencartbrasil.com.br/ ... +pagamento
Abraço a todos e boas vendas.

Re: [TUTORIAL]EXIBIR preço do produto com desconto!

Enviado: 17 Fev 2014, 09:10
por daniloavenoso
Bom dia amigo!!

Primeiramente obrigado pela ajuda!

Porém não consegui fazer funcionar!

Coloco em meu templat product.tpl e não exibe nada. O que será?

Re: [TUTORIAL]EXIBIR preço do produto com desconto!

Enviado: 17 Fev 2014, 12:34
por leandrorppo
Olá, tudo bem?
Desculpe, tinha esquecido de inserir a última linha, já corrigi acima, tente agora que dará certo.

Re: [TUTORIAL]EXIBIR preço do produto com desconto!

Enviado: 17 Fev 2014, 15:05
por daniloavenoso
Perfeito...agora foi!!

Muito obrigado! Seria possível inserir esse desconto no preço dos produtos dos módulos?

Re: [TUTORIAL]EXIBIR preço do produto com desconto!

Enviado: 17 Fev 2014, 15:32
por daniloavenoso
Eu tentei inserir o mesmo código no template dos módulos, mas o preço com desconto aparece R$ 0,00 :(

Re: [TUTORIAL]EXIBIR preço do produto com desconto!

Enviado: 17 Fev 2014, 15:40
por leandrorppo
Na minha loja como utilizo o parcelamento do @denisgomes adaptei o mesmo para exibir o desconto nos módulos:
Código: Selecionar todos
<?php
/*
  Configuracoes do sistema de parcelamento
  ----------------------------------------
  $qtd_parcelas = Define a quantidade de parcelas a ser exibida para os produtos
  $juros = Taxa de juros mensal (deixe em 0 para parcelamento sem juros)
  $moeda_da_loja = Permite especificar a moeda utilizada na loja

  $tipo_de_calculo = Permite escolher o tipo de calculo a ser utilizado
  0 = Juros simples (Pagamento Digital)
  1 = Tabela Price (PagSeguro e outros)
*/

$qtd_parcelas = 12;
$juros = 0.000000001;
$moeda_da_loja = 'R$ ';
$tipo_de_calculo = 0;
$parcela_minima = 5.00;

if (!$product['special']) {
  $preco_numero = str_replace(',','.',str_replace('.','', str_replace($moeda_da_loja,"",strip_tags($product['price']))));
} else {
  $preco_numero = str_replace(',','.',str_replace('.','', str_replace($moeda_da_loja,"",strip_tags($product['special']))));
}

// Calcula o valor da parcela de acordo com o tipo de calculo utilizado
if ($tipo_de_calculo == 0) {
  $valor_total = ($preco_numero * pow(1+($juros/100), $qtd_parcelas));
  $max_parcelas = intval($valor_total/$parcela_minima);
  if ($max_parcelas < $qtd_parcelas) { $qtd_parcelas = $max_parcelas; }
  $valor_parcela = $valor_total/$qtd_parcelas;
}
if ($tipo_de_calculo == 1) {
  $valor_total = ($preco_numero * ($juros/100));
  $max_parcelas = intval($valor_total/$parcela_minima);
  if ($max_parcelas < $qtd_parcelas) { $qtd_parcelas = $max_parcelas; }
  $valor_parcela = $valor_total/(1-(1/(pow(1+($juros/100), $qtd_parcelas))));
}

// Exibe as frases de parcelamento
echo '<span style="font-size:14px; color: #444444;">Em até </span><span style="font-size:14px; color: #F15A23;">' . $qtd_parcelas . 'x<span style="font-size:14px; color: #444444;"> de </span>' . $moeda_da_loja . number_format($valor_parcela, 2, ',', '.') . '</span><br/>';
if ($juros == 0) { echo '<br />sem juros'; } else { echo ''; }
//Linhas adicionadas para o desconto
$percentual = 5 / 100; // 5%
$valor_final = $preco_numero - ($percentual * $preco_numero);
$valor_sw =  number_format($valor_final, 2, ',', '.'); 
?>
<font color="#999999" size="2">ou à vista</font> <font color="#F15A23" size="3"><strong>R$ <?php echo $valor_sw ; ?></strong></font>


Re: [TUTORIAL]EXIBIR preço do produto com desconto!

Enviado: 18 Fev 2014, 08:29
por daniloavenoso
Consegui fazer funcionar, inclusive adicionei parcelamento e desconto a vista no total do carrinho também.

Obrigado.

Re: [TUTORIAL]EXIBIR preço do produto com desconto!

Enviado: 18 Fev 2014, 08:53
por leandrorppo
Se puder por favor postar as modificações que fez para melhorar mais o código ficaria agradecido.

Re: [TUTORIAL]EXIBIR preço do produto com desconto!

Enviado: 18 Fev 2014, 15:00
por daniloavenoso
Para o desconto no total do carrinho inseri no catalog/view/theme/SEU TEMA/template/module/cart.tpl e catalog/view/theme/SEU TEMA/template/checkout/cart.tpl o código abaixo (o local vai depender do template):

Código: Selecionar todos
<?php
     $preco_sw = str_replace(',','.',str_replace('.','', str_replace("R$","",$total['text'])));
     $preço_sw;
     $percentual = 5 / 100; // 5%
     $valor_final = $preco_sw - ($percentual * $preco_sw);
     $valor_sw =  number_format($valor_final, 2, ',', '.'); 
     ?>

     <div style="font-size: 14px; background-color:#85AA1F; color:#fff; padding: 3px; float:right; clear:right;">ou R$ <?php echo $valor_sw ; ?> no depósito bancário.</div>

Para parcelamento, nos mesmo arquivos inseri o seguinte código (cabe a cada um aplicar a taxa de juros ideal):
Código: Selecionar todos
<div style="float: right; clear:right;"><?php
                /*
                  Configuracoes do sistema de parcelamento
                  ----------------------------------------
                  $maximo_parcelas = Define a quantidade maxima de parcelas aceita pela loja
                  $parcela_minima = Valor minimo da parcela aceito pela loja
                  $parcelas_sem_juros = Define quantas parcelas nao terao juros
                  $juros = Taxa de juros mensal
                  $moeda_da_loja = Permite especificar a moeda utilizada na loja

                  $tipo_de_calculo = Permite escolher o tipo de calculo a ser utilizado
                  0 = Juros simples (Pagamento Digital)
                  1 = Tabela Price (PagSeguro e outros)
                */


                $maximo_parcelas = 12;
                $parcela_minima = 5;
                $parcelas_sem_juros = 1;
                $juros = 1.75;
                $moeda_da_loja = 'R$ ';
                $tipo_de_calculo = 0;

                $preco_numero = str_replace(',','.',str_replace('.','', str_replace($moeda_da_loja,"",strip_tags($total['text']))));
                
                if ($preco_numero >= $parcela_minima*2) {

                // Titulo

                echo '<table width="100%">';

                // Inicia a primeira coluna
                echo '<div style="float: left; font-family: tahoma; font-size: 12px;">';

                // Exibicao das parcelas
                for ($p = 1; $p <= $maximo_parcelas; $p++) {

                  // Se a parcela nao tiver juros
                  if ($p <= $parcelas_sem_juros) {
                    $valor_parcela = $preco_numero / $p;
                  }

                  // Se a parcela tiver juros
                  if ($p > $parcelas_sem_juros) {
                    if ($tipo_de_calculo == 0) {
                      $valor_parcela = ($preco_numero * pow(1+($juros/100), $p))/$p;
                    }
                    if ($tipo_de_calculo == 1) {
                      $valor_parcela = ($preco_numero * ($juros/100))/(1-(1/(pow(1+($juros/100), $p))));
                    }
                  }

                  // Escreve a parcela se ela for maior do que a parcela minima
                  if ($valor_parcela >= $parcela_minima) {
                    $valor_parcela = number_format($valor_parcela, 2, ',', '.');
                    if ($p <= $parcelas_sem_juros) {
                      echo '<span style="color: darkgreen;">' . $p . 'x de ' . $moeda_da_loja . $valor_parcela . ' </span><br />';
                    } else {
                      echo $p . 'x de ' . $moeda_da_loja . $valor_parcela . ' <br />';
                    }
                  }

                  // Fecha a primeira coluna e inicia a segunda
                  if ($p == intval($maximo_parcelas/2)+0) { echo '</div><div style="float: left; font-family: tahoma; font-size: 12px; margin-left: 29px;">'; }
                }

                // Fecha a segunda coluna e finaliza
                echo '</div>';
				echo '</table><br />';
                }
              ?>
			  </div>

Re: [TUTORIAL]EXIBIR preço do produto com desconto!

Enviado: 18 Fev 2014, 15:01
por daniloavenoso
adicionem alguns itens no carrinho e vejam o resultado:

www.cromusmotoparts.com.br