Fórum OpenCart Brasil

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

#10992
Pessoal INstalei e funciono tudo Normalmente, só notei um problema quando o produto tem alguma opção como Selecionar a Voltagem o Modulo do Pagamento Digital não é exibido.
Alguém tem a loja com os dois funcionando ao mesmo tempo ?

EDIT

Consegui resolver, coloquei ele bem abaixo do preço no mesmo DIV que funciono.
#11131
Pessoal, eu tenho o código abaixo que funfava direitinho nas versões 1.4
Fui testar na versão 1.5 e ele não encontra o valor do produto para calcular.
Alguem pode me dizer como altera?!
Código: Selecionar todos
<!-- INICIO CODIGO  -->
  <?php
  
$preco = ($preco_sem_sinal); // recebe a variável $product_price e transforma em número
// fator de multiplicação
$taxa1 = 1;
$taxa2 = 0.51495;
$taxa3 = 0.34670;
$taxa4 = 0.26255;
$taxa5 = 0.21210;
$taxa6 = 0.17847;
$taxa7 = 0.15446;
$taxa8 = 0.13645;
$taxa9 = 0.12246;
$taxa10 = 0.11127;
$taxa11 = 0.10212;
$taxa12 = 0.09450;
?>
<table width="330"; height: 154px; align="center"; dir="ltr" class="floatbox"; text-align: center; div style="background: #F7F7F7; border: 1px solid #DDDDDD; padding: 10px; margin-top: 2px; margin-bottom: 15px;">
<caption></caption>
<tbody style="text-align: center;">
<tr style="text-align: center;">
  <td height="25" colspan="2" style="text-align: center; background-color: #cccccc; font-size: 14px; font-weight: bold; font-size: 14px;">PARCELE EM ATÉ 12 VEZES</td>
  </tr>
<tr style="text-align: center;">
<td style="text-align: center;"><span style="color: #262626;"><strong>à vista </strong><?php echo 'R$ '.number_format($preco*$taxa1, 2, ',', '.'); ?></span></td>
<td style="text-align: center;"><span style="color: #262626;"><strong>7 x </strong><?php echo 'R$ '.number_format($preco*$taxa7, 2, ',', '.'); ?></span></td>
</tr>
<tr style="text-align: center;">
<td style="text-align: center;"><span style="color: #262626;"><strong>2 x </strong><?php echo 'R$ '.number_format($preco*$taxa2, 2, ',', '.'); ?></span></td>
<td style="text-align: center;"><span style="color: #262626;"><strong>8 x </strong><?php echo 'R$ '.number_format($preco*$taxa8, 2, ',', '.'); ?></span></td>
</tr>
<tr style="text-align: center;">
<td style="text-align: center;"><span style="color: #262626;"><strong>3 x </strong><?php echo 'R$ '.number_format($preco*$taxa3, 2, ',', '.'); ?></span></td>
<td style="text-align: center;"><span style="color: #262626;"><strong>9 x </strong><?php echo 'R$ '.number_format($preco*$taxa9, 2, ',', '.'); ?></span></td>
</tr>
<tr style="text-align: center;">
<td style="text-align: center;"><span style="color: #262626;"><strong>4 x </strong><?php echo 'R$ '.number_format($preco*$taxa4, 2, ',', '.'); ?></span></td>
<td style="text-align: center;"><span style="color: #262626;"><strong>10 x </strong><?php echo 'R$ '.number_format($preco*$taxa10, 2, ',', '.'); ?></span></td>
</tr>
<tr style="text-align: center;">
<td style="text-align: center;"><span style="color: #262626;"><strong>5 x </strong><?php echo 'R$ '.number_format($preco*$taxa5, 2, ',', '.'); ?></span></td>
<td style="text-align: center;"><span style="color: #262626;"><strong>11 x </strong><?php echo 'R$ '.number_format($preco*$taxa11, 2, ',', '.'); ?></span></td>
</tr>
<tr style="text-align: center;">
<td style="text-align: center;"><span style="color: #262626;"><strong>6 x </strong><?php echo 'R$ '.number_format($preco*$taxa6, 2, ',', '.'); ?></span></td>
<td style="text-align: center;"><span style="color: #262626;"><strong>12 x </strong><?php echo 'R$ '.number_format($preco*$taxa12, 2, ',', '.'); ?></span></td>
</tr>
<tr style="text-align: center;">
  <td colspan="2" style="text-align: center; background-color: #cccccc; font-size: 14px; font-weight: bold;">PAGUE A VISTA, POR TRANSFERÊNCIA BANCÁRIA E GANHE 5% DE DESCONTO! <br />
  </tr>
</tbody>
</table>
    </div>
  </div>
#11182
Veja se isso ajuda:

Edite o arquivo product.tpl que fica em /catalog/view/theme/default/template/product


Localize a linha:
Código:
<?php if ($minimum > 1) { ?>
<div class="minimum"><?php echo $text_minimum; ?></div>
<?php } ?>

Acrescente logo abaixo:
Código:

<?php $preco_sem_sinal = str_replace(',','.',str_replace('.','', str_replace("R$","",$price))); ?>
</div><iframe src ="https://www.pagamentodigital.com.br/sit ... alor=<?php echo $preco_sem_sinal;?>&key=42D1140A4201B23D628ED&nmp=12" width="400" height="280"></iframe>
<div>
#11192
Nas minhas lojas eu utilizo este que funciona muito bem:
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á.

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;">'

1. Abra o arquivo /catalog/view/theme/default /template/product/product.tpl.
2. Escolha onde você quer inserir as opções de parcelamento.

Parcelamento com cartão de crédito

Código:


<table width="350">
<?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 -->
#12942
henriquekravitz escreveu:Veja se isso ajuda:

Edite o arquivo product.tpl que fica em /catalog/view/theme/default/template/product


Localize a linha:
Código:
<?php if ($minimum > 1) { ?>
<div class="minimum"><?php echo $text_minimum; ?></div>
<?php } ?>

Acrescente logo abaixo:
Código:

<?php $preco_sem_sinal = str_replace(',','.',str_replace('.','', str_replace("R$","",$price))); ?>
</div><iframe src ="https://www.pagamentodigital.com.br/sit ... alor=<?php echo $preco_sem_sinal;?>&key=42D1140A4201B23D628ED&nmp=12" width="400" height="280"></iframe>
<div>
m.lirangi escreveu:Henrique, obrigada!
Mas não é isso q quero, eu não quero vincular ao pagdigital, quero usar aquela base de calculos e formatação que está lá, mas falta algo naquele script q não sei o que é!
Vc pode ajudar?!
Márcia, use o código dele, mas somente a primeira linha, de <? a ?>

Isso cria a variável $preco_sem_sinal e faz o seu mod funcionar.

Obs: tem um outro meio de passar o valor sem o sinal para a product.tpl (menos gambiarrado) pra funcionar com qualquer moeda.

Faz parte desse meu tutorial: https://forum.opencartbrasil.com.br/ ... 1707#p8738

Primeira alteração (catalog/controller/product/product.php)
  • 1
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

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 […]