Fórum OpenCart Brasil

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

#18035
O Juros do Pagamento Digital é maior, mesmo. Eles e o Dinheiro Mail cobram juros com BEGIN (parcela no início do período) enquanto o PagSeguro e o MoIP cobram sem BEGIN (com vencimento do juros no fim do mês).
#18090
Renato Frota escreveu:O Juros do Pagamento Digital é maior, mesmo. Eles e o Dinheiro Mail cobram juros com BEGIN (parcela no início do período) enquanto o PagSeguro e o MoIP cobram sem BEGIN (com vencimento do juros no fim do mês).
Renato, na verdade eu acho que não é nem pelo fato de cobrar mais ou menos juros. Acho que a sutileza está justamente em como o juros é cobrado.

Enquanto no Pagamento Digital, se vc oferecer um pagamento de 3x sem juros, e o cliente optar por pagar de 5x por exemplo, ele pagará o juros por todo o período (inclusive os 3 meses q vc ofereceu). Enquanto o Pagseguro cobrará do cliente somente pelos 2 meses adicionais de juros - e continuará lhe cobrando pelos 3 que ofereceu.

Sacou?
#18091
@tecoad, parece ser a explicação mais lógica. Ao pessoal do thread, vou verificar essa informação assim que possível.
#18099
Realmente é isso.

Mas o que eu falei, também é válido. O juros do MoIP / Pag Seguro é menor que do Pagamento Digital.

Resultado: cada intermediador ganha num aspecto. O Pagamento Digital permite uma melhor escolha dos métodos aceitos e tal, mas o PS é o que se torna mais "ajustável" no final das contas, pois você determina o "valor mínimo" que quer ganhar na venda, conforme o preço ofertado + o numero de parcelas sem juros. Se o cliente pagar em mais vezes, o Pag Seguro cobra dele o juros. Se o cliente pagar em menos vezes ou à vista, ótimo, você ganha mais ainda! Adorei isso.

A propósito: sugeri isso pro MoIP há quase 2 anos e não me deram ouvidos.
#18114
Renato, vou te ser bem sincero.
Utilizo o Pagamento Digital há 6 meses, e não deixaria nunca de usar. Exceto pelo fato de que o tenho tido alguns problemas com relação a política de cadastro do Pagamento Digital...
Enquanto eles 'obrigam' o seu cliente a criar um login e senha - para se cadastrar no site deles, acabo perdendo a venda pois muitos clientes efetuaram uma compra há algum tempo atrás, em algum outro site, e ao finalizar a compra em meu site - acabam descobrindo que o CPF deles já está vinculado a uma conta do Pagamento Digital. Muitos não lembram a senha, tão pouco o email que usaram neste cadastro - para usar o 'Esqueci a senha'. Nisto quem perde é o lojista.

Acabei começando a usar o Pagseguro porque ele oferece o checkout mais simples, só com a necessidade de inserir os dados do cartão - o que é mais importante. Fazendo-se com que 'criar uma senha' fosse opcional.
Acho que é questão de tempo, mas o Pagamento Digital irá se tocar deste fato...
#18119
@tecoad, sempre usei o PagSeguro e nunca havia percebido esse detalhe do Pagamento Digital exigir cadastro. Você tocou num assunto importante, a possibilidade de usar o sistema de pagamento sem que o cliente seja obrigado a fazer cadastro é importantíssimo. Oras, alguns clientes nem querem fazer cadastro na própria loja (querem fazer checkout como visitante) - ainda bem que o OC oferece isso!

É claro que alguns clientes não ligam pra isso, mas outros sim, e acho que é válido tentar agradar ao máximo possível de clientes. Perder uma venda por causa de uma senha esquecida? Pára com isso...
#20881
denisgomes escreveu:Atualização de 22/05/2011
- Corrigido problema causado por alguns templates que faziam com que o cálculo não funcionasse (obrigado andersonnarciso!). Veja a explicação aqui.

Atualização de 25/10/2010
- Adicionada opção de parcela mínima a pedido de NathanMuniz
- Adicionado cálculo de parcelas seguindo a Tabela Price usada pelo PagSeguro
- A moeda para exibição dos valores agora pode ser configurada
- A fórmula de cálculo das parcelas agora pode ser configurada
- As parcelas sem juros são exibidas na cor verde

Atualização de 16/06/2011
- Acrescentadas instruções sobre a configuração da moeda da loja, caso o parcelamento não apareça

Leia o post completo para conhecer todas as novidades.

Olá a todos!
Comecei a usar o OpenCart para montar a minha loja virtual e já estou nessa há alguns meses. Hoje andando pelo fórum vi o tópico do usuário thiiix7 onde ele explica como inserir as opções de parcelamento através de um sistema fornecido pelo Pagamento Digital. Inspirado por esse tópico, resolvi colaborar com a comunidade e criar outra função que faz o cálculo diretamente através do PHP, sem depender de um sistema externo.

Características
- Facilmente configurável no código
- Roda diretamente no sistema da loja sem depender de servidores externos
- Permite definir a quantidade máxima de parcelas
- Permite definir o valor mínimo para parcelamento
- Permite definir quantas parcelas não terão juros (para lojas que utilizam, p.ex., até 3x sem juros ou até 12x com juros de 1,99% ao mês)
- Duas fórmulas para cálculo do parcelamento: juros simples e tabela Price

Imagem

Antes de começar
Acesse a configuração de moeda da sua loja e certifique-se de que o símbolo de moeda seja igual a "R$ " (sem aspas e com um espaço no final). Devido a uma limitação do OpenCart, a função de cálculo de parcelamento precisa remover o símbolo manualmente antes de fazer os cálculos, e ela está programada para remover o R$ com espaço no final. Se você não fizer esta alteração, o cálculo de parcelamento não funcionará.

Se sua loja usa outra moeda ou se você quiser usar o R$ sem o espaço no final, basta alterar a variável $moeda_da_loja abaixo (repare que nesta variável um espaço depois do R$).

Para inserir
1. Abra o arquivo /catalog/view/theme/<seu tema>/template/product/product.tpl.
2. Escolha onde você quer inserir as opções de parcelamento. Eu inseri depois do seguinte bloco de código (que exibe a classificação do produto):
Código: Selecionar todos
                  <?php echo $text_no_rating; ?>
                  <?php } ?></td>
              </tr>
			  <?php } ?>
            </table>
            <br />
3. Insira o seguinte código:
Código: Selecionar todos
            <!-- Exibicao de parcelas -->
            <b>Parcelamento no cart&atilde;o de cr&eacute;dito</b><br />
            <table width="100%">
              <?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.99;
                $moeda_da_loja = 'R$ ';
                $tipo_de_calculo = 0;

                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: 50%; float:left;">';

                // Exibicao das parcelas
                for ($p = 2; $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 . ' sem juros</span><br />';
                    } else {
                      echo $p . 'x de ' . $moeda_da_loja . $valor_parcela . ' com juros<br />';
                    }
                  }

                  // Fecha a primeira coluna e inicia a segunda
                  if ($p == intval($maximo_parcelas/2)+1) { echo '</div><div style="width: 50%; 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, ',', '.');
                  echo '<span style="font-size: smaller;">Juros de ' . $juros . '% ao m&ecirc;s</span>';
                }
                if ($parcela_minima > 0) {
                  $parcela_minima = number_format($parcela_minima, 2, ',', '.');
                  echo '<br /><span style="font-size: smaller;">Parcela m&iacute;nima de ' . $moeda_da_loja . $parcela_minima . '</span>';
                }

                // Fecha a segunda coluna
                echo '</div>';
              ?>
            </table>
            <br />
            <!-- Exibicao de parcelas -->
4. É só isso!

Configurando
O código é auto-explicativo e bem comentado. Basta fazer as alterações desejadas:

$maximo_parcelas = Define a quantidade máxima de parcelas aceita pela loja.
$parcela_minima = Valor minimo da parcela aceito pela loja. Escreva apenas os números e utilize ponto para separar as casas decimais (p.ex. 10.00)
$parcelas_sem_juros = Define quantas parcelas não terão juros.
$juros = Taxa de juros mensal. Escreva apenas os números e utilize ponto para separar as casas decimais (p.ex. 1.99)
$moeda_da_loja = Permite especificar a moeda utilizada na loja. Se a sua loja usa outra moeda além de R$, escreva aqui a moeda.
$tipo_de_calculo = Permite escolher o tipo de cálculo a ser utilizado no parcelamento: 0 = Juros simples (Pagamento Digital), 1 = Tabela Price (PagSeguro).

Observações
- Se houverem parcelas com juros, a função irá exibir a taxa de juros depois da última parcela. Se nenhuma das parcelas tiver juros, essa linha não será exibida.
- O OpenCart só disponibiliza o preço já formatado (R$ 130,00) e não como um número (130,00). Para fazer os cálculos das parcelas foi necessário fazer uma conversão para número usando a função str_replace. Você deve alterar a opção $moeda_da_loja e especificar o símbolo de moeda utilizado em sua loja caso ele seja diferente de "R$".
- O parcelamento é exibido em duas colunas através de <div>. Se você quiser colocar todas as parcelas em uma única coluna basta remover os blocos marcados como "inicia a primeira coluna", "fecha a primeira coluna e inicia a segunda", e "fecha a segunda coluna".
- Se o valor mínimo para a parcela for superior a zero, a função irá exibir a frase "Parcela mínima de " e o valor correspondente.
- Para alterar a cor das parcelas sem juros basta modificar a linha que começa com echo '<span style="color: darkgreen;">'

Dúvidas?
No que eu puder ajudar, é só perguntar. Tenho certeza de que ainda farei inúmeras adaptações ao OpenCart ;)

Assim que minha loja estiver pronta postarei o link para que possam avaliar.
e no meu caso que não consegui resolver, ele fez foi abaixar todo o preço, estou usando o tema SHOPPICA... para fazer essas alterações. sou leigo em PHP, e não sei onde fica o local para colocar esse codigo.
  • 1
  • 8
  • 9
  • 10
  • 11
  • 12
  • 27