Fórum OpenCart Brasil

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

#48489
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.
Editado pela última vez por leandrorppo em 01 Ago 2014, 11:16, em um total de 5 vezes.
#48515
Olá, tudo bem?
Desculpe, tinha esquecido de inserir a última linha, já corrigi acima, tente agora que dará certo.
#48521
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>

#48541
Se puder por favor postar as modificações que fez para melhorar mais o código ficaria agradecido.
#48562
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>
Editado pela última vez por daniloavenoso em 18 Fev 2014, 16:26, em um total de 3 vezes.

Gente preciso de ajuda urgente. Na migraç&a[…]

Caro @reds , muito obrigado pela resposta.

PHP 8+ incompatibilidade

Toda tradução para a versão 3[…]

Ola @alex3257 Se você precisa apenas ver […]