Fórum OpenCart Brasil

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

Suporte geral sobre problemas técnicos para OpenCart v2.x.
Por newtwo
#59545
Estou a procura de um mod ou como fazer algo parecido como a img abaixo.
Para versão 2.0.1.1 - Vou aplicar em Tema Pavo Megashop ( com Paypal )

Quero a parte de exibir o parcelamento com base no valor total do produto

Caso alguém tenha um tuto como fazer, agradeço.

Imagem
Por leandromello
#61848
Eu utilizo este código e funciona bem... ele tem uma falha, porque arredonda os centavos
Abaixo está para 10x sem juros, mas é só alterar as configurações do próprio código para alterar as parcelas com juros e sem juros.

Este código peguei aqui no Fórum mesmo, ele está alterado para mostrar somente uma linha 10x sem juros, mas se mexer ai, dá para mostrar a tabela com todo o parcelamento.
Código: Selecionar todos
<!-- Parcelamento em 10x -->
            <div>
              <?php
                $maximo_parcelas = 10;
                $parcela_minima = 2;
                $parcelas_sem_juros = 10;
                $juros = 1.99;
                $moeda_da_loja = 'R$ ';
                $tipo_de_calculo = 1;

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

                // Inicia a primeira coluna
                echo '<div style="width: 250px; float:left;">';

                // Exibicao das parcelas
                for ($p = 10; $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 'ou em até ' . $p . 'x de ' . $moeda_da_loja . $valor_parcela . ' sem juros<br />';
                    } else {
                      echo 'em até ' . $p . 'x de ' . $moeda_da_loja . $valor_parcela . '<br />';
                    }
                  }

                  // Fecha a primeira coluna e inicia a segunda
                  if ($p == intval($maximo_parcelas/2)+1) { echo '</div><div style="width: 200px; float:right;">'; }
                }

                // Exibe os juros utilizados e o valor minimo da parcela se esta for maior que zero
                if ($parcelas_sem_juros < $maximo_parcelas) {
                  $juros = number_format($juros, 2, ',', '.');

                }
                if ($parcela_minima > 0) {
                  $parcela_minima = number_format($parcela_minima, 2, ',', '.');
                  echo '';
                }

                // Fecha a segunda coluna
                echo '</div>';
              ?>
          </div>
            <!-- Parcelamento em 10x -->