Fórum OpenCart Brasil

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

#37422
Comigo essa substituição que foi feita ja deu certo. Mudando o local e tals.

Agora eu gostaria que não aparecesse a taxa de juros nas parcelas. Teria como retirar essa parte em negrito sem que o calculo deixasse de ser feito? Eu apenas não quero informar esses dados ao cliente. Ou mesmo deixar de acrescentar os juros e no lugar do texto aparecer "sem juros"

"R$ 101,00
ou 12x de R$ 10,76
com juros de 3.99% ao mês"
#37424
É só remover a parte do código que exibe isso. No entanto isto é ilegal perante o Código de Defesa do Consumidor, que exige que a quantidade de parcelas, o valor de cada parcela e a taxa de juros sejam todas exibidas junto ao preço do produto de modo que o cliente não tenha que fazer contas para saber o quanto vai efetivamente pagar.
#37425
Mas é exatamente por isso. Se eu retirasse a parte na qual fala de juros, minha intenção é vender sem juros ja que o parcelamento será feito no cartão. Não incluindo os juros e não escondendo o preço verdadeiro... EX: R$100.00 ou 10x R$10.00

Quando eu deixo os juros 0 está ocorrendo um erro:

Monitor LG LED 23´ Widescreen - Black Piano
R$ 588,12 Warning: Division by zero in C:\wamp\www\opencart\catalog\view\theme\testandotheme\parcelamento.php on line 30
ou 12x de R$ 0,00
sem juros
#37430
Tem duas variáveis no código que permitem especificar a quantidade máxima de parcelas e quais parcelas serão sem juros... Leia o código novamente por favor.
#37458
denisgomes escreveu:O povo pediu e eu atendi: agora você pode mostrar o parcelamento dos produtos na página inicial e/ou nas categorias! Com cálculo direto, sem depender de rotinas de outros sites.

Atenção: este tutorial destina-se a exibir o parcelamento em qualquer listagem de produtos (página inicial, módulo "Produtos em destaque", categorias, etc). Para exibir o parcelamento na página do produto em si, você deve usar o meu outro tutorial.

Características
- Facilmente configurável no código
- Permite definir a quantidade máxima de parcelas
- Faz cálculos de parcelamentos com juros ou sem juros
- Duas fórmulas para cálculo do parcelamento: juros simples (usado no Pagamento Digital) e tabela Price (usado no PagSeguro e outros)

Sua loja do OpenCart agora vai exibir a listagem de produtos como as grandes lojas:
<Nome do produto>
R$ 30,00
ou 12x de R$ 4,00
sem juros
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 há um espaço depois do R$).

Para inserir
1. Abra a pasta /catalog/view/theme/<seu tema> e crie um arquivo com o nome parcelamento.php.
2. Neste arquivo, insira o seguinte código:
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 = 3.99;
$moeda_da_loja = 'R$ ';
$tipo_de_calculo = 0;

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_parcela = ($preco_numero * pow(1+($juros/100), $qtd_parcelas))/$qtd_parcelas;
}
if ($tipo_de_calculo == 1) {
  $valor_parcela = ($preco_numero * ($juros/100))/(1-(1/(pow(1+($juros/100), $qtd_parcelas))));
}

// Exibe as frases de parcelamento
echo '<br />ou ' . $qtd_parcelas . 'x de ' . $moeda_da_loja . number_format($valor_parcela, 2, ',', '.');
if ($juros == 0) { echo '<br />sem juros'; } else { echo '<br />com juros de ' . $juros . '% ao m&ecirc;s'; }

?>
3. Decida onde você deseja inserir a exibição de parcelamento.
No OpenCart a chamada de exibição de preço do produto é realizada por vários arquivos (templates). Por exemplo: há um template para a página inicial, outro para as categorias, etc. Você deve abrir os arquivos referentes à seção do site onde você deseja inserir o parcelamento e colocar a chamada para a função de parcelamento.

Segue uma lista não completa de templates usados no OpenCart:
Listagem de produtos na categoria/departamento: /catalog/view/theme/<seu tema>/template/product/category.tpl
Comparação de produtos: /catalog/view/theme/<seu tema>/template/product/compare.tpl
Listagem de produtos de um fabricante/marca: /catalog/view/theme/<seu tema>/template/product/manufacturer_list.tpl
Pesquisa de produtos na loja: /catalog/view/theme/<seu tema>/template/product/search.tpl
Lista de produtos em promoção: /catalog/view/theme/<seu tema>/template/product/special.tpl
Módulo Novos produtos: /catalog/view/theme/<seu tema>/template/module/latest.tpl
Módulo Produtos em destaque: /catalog/view/theme/<seu tema>/template/module/featured.tpl
Módulo Produtos mais vendidos: /catalog/view/theme/<seu tema>/template/module/bestseller.tpl

Observe que no OpenCart 1.5 houve uma mudança na forma como os módulos são inseridos e utilizados. Os módulos acima (e outros) podem ser configurados para serem exibidos na barra lateral, no topo, no rodapé, na página inicial, etc.

4. Abra o arquivo de template desejado, localize a parte onde o preço é exibido e insira a chamada para a função.
Procure pela palavra price ou $price. Isso o ajudará a localizar o trecho da página onde o preço é exibido. Observe que cada tema possui uma forma diferente de exibir o preço, por isso o código fonte pode variar muito. Além disso, alguns templates podem chamar a exibição de preço mais de uma vez.

Vejamos um exemplo usando o arquivo /template/product/category.tpl do tema padrão do OpenCart 1.5: próximo da linha 77 você encontrará o bloco:
Código: Selecionar todos
      <?php if ($product['price']) { ?>
      <div class="price">
        <?php if (!$product['special']) { ?>
        <?php echo $product['price']; ?>
        <?php } else { ?>
        <span class="price-old"><?php echo $product['price']; ?></span> <span class="price-new"><?php echo $product['special']; ?></span>
        <?php } ?>
Abaixo deste bloco insira a chamada:
Código: Selecionar todos
<? include $_SERVER['DOCUMENT_ROOT'] . '/catalog/view/theme/<seu tema>/parcelamento.php'; ?>
Mude <seu tema> acima para o nome da pasta do tema usado na sua loja. Se você estiver usando o tema padrão, coloque default. Verifique se existe algum outro bloco semelhante a este no resto do arquivo e, se houver, insira a chamada novamente.

Atenção: Algumas empresas de hospedagem impedem ou limitam a utilização da diretiva include alegando motivos de segurança (conversa fiada, mas enfim...). Este tutorial utiliza a diretiva include para que você possa usar esta rotina em diversos lugares e posteriormente alterar os parâmetros dela (taxa, parcelas, etc) alterando apenas um arquivo (parcelamento.php). Se você receber uma mensagem de erro no local onde inseriu o parcelamento, provavelmente a sua empresa de hospedagem bloqueou a utilização do include. Para resolver isso, escolha outra empresa de hospedagem ou então coloque todo o código do arquivo parcelamento.php no lugar da linha acima.

5. É isso aí!

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

$qtd_parcelas = Define a quantidade máxima de parcelas aceita pela loja.
$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
- A função escreverá automaticamente 'com juros' ou 'sem juros' de acordo com a configuração correspondente.
- 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$".
- Se o cálculo estiver errado ou não aparecer, verifique se você colocou um espaço em branco após o "R$" na configuração de moeda de sua loja.
- Se o cálculo não aparecer, será necessário revisar a forma como o tema de sua loja funciona. Alguns temas trabalham de forma diferente e é necessário fazer pequenas alterações no código.

- O comando include em PHP exige que seja informado o nome da pasta onde se encontra o arquivo parcelamento.php. Se a sua loja apresentar algum erro do tipo 'include file not found', verifique se você digitou o nome da pasta corretamente. O comando include é necessário para que você possa alterar posteriormente a quantidade de parcelas e juros em toda loja apenas alterando este arquivo.
- Este tutorial modifica um arquivo padrão (core) do OpenCart. Se você atualizar a versão da sua loja você terá de reaplicar estas alterações.

Dúvidas?
No que eu puder ajudar, é só perguntar.

Alguém conseguiu fazer funcionar na versão 1.5.4??????????
Preciso disso!


Obg.
#38339
Bom dia pessoal.
Para quem perguntou, o método funciona perfeito na versão 1.5.4.

Estou com um impasse, ao buscar produtos, no resultado da busca, na opção grade ele me dá o parcelamento, porém ao modificar para a opção lista, não aparece o mesmo parcelamento. Algum ajuste???

Abs,
#38346
binhacardoso, as visualizações de grade e de lista certamente são controladas por duas seções diferentes no arquivo SEARCH.TPL, uma que faz a exibição em grade e outra que faz a exibição em lista. Leia o conteúdo deste arquivo e faça as modificações de acordo. Ele deve ser parecido com o CATALOG.TPL, portanto fácil de entender e modificar.
#38644
E aí @denisgomes blz cara?

Eu instalei um módulo de atualização de preços simultâneo - Live Update Product Price with Option Price - (segue link abaixo):

http://www.opencart.com/index.php?route ... on_id=7507

Na camiseta do link abaixo quando na opção "Tipo" é selecionado "Manga Longa (+R$ 10,00)", as outras opções relacionadas mais abaixo não sofrem alterações:

http://www.metaospano.com/sao-francisco-assis

DESCONTO: 10% - Essa parte é criada pela "Extensão de Desconto" - http://www.opencart.com/index.php?route ... on_id=4498

Parcele com o PagSeguro em: (essa parte é criada pela extensão de parcelamento)
2x de R$22,45 sem juros (essa parte é criada pela extensão de parcelamento)
3x de R$15,72 com juros (essa parte é criada pela extensão de parcelamento)
4x de R$11,94 com juros (essa parte é criada pela extensão de parcelamento)
Juros de 2,50% ao mês (essa parte é criada pela extensão de parcelamento)

10 camisetas ou mais por R$42,90 (cada) - Essa opção é criada na aba "Descontos" do produto no admin do Opencart!
20 camisetas ou mais por R$40,90 (cada) - Essa opção é criada na aba "Descontos" do produto no admin do Opencart!

Alguém poderia me ajudar a resolver esses bugs? (Já tentei com o cara do módulo, mas ele não faz personalizações)!

Desde já Muito Obrigado!!!
#38645
Olá witalovs.

É um problema complicado esse, e uma fraqueza do OpenCart na minha opinião. Cada extensão funciona bem sozinha mas para funcionarem em conjunto é necessário integrá-las. A extensão Live Update Product Price with Option Price é que fica responsável por atualizar o preço quando o usuário escolhe a opção e ele só faz isso no preço do OpenCart. Para atualizar os outros é preciso modificá-la para fazer as alterações nesses outros lugares também (o desconto e o preço parcelado).

Isso não é um defeito da extensão porque sozinha ela funciona como esperado. Você complementou a loja com essas duas outras modificações, então você deverá modificar a Live Update para alterar esses outros preços também. Você ou outro programador. Boa sorte! :D

PS. O sistema de parcelamento que criei nem é um módulo, é uma modificação do template usado na sua loja para exibir o preço de outras formas.
  • 1
  • 9
  • 10
  • 11
  • 12
  • 13
  • 19