Criar módulo para Magento – Parcelas no produto configurável

Basicamente um módulo para Magento é constituído por um conjunto de arquivos com o propósito de estender ou sobrescrever o comportamento padrão do sistema. Vale lembrar que grande parte do sistema para criar loja virtual denominado Magento E-Commerce, é formado por módulos nativos que estão localizados dentro de: app/code/core/Mage.

Um produto configurável permite que suas variações específicas sejam selecionadas pelos consumidores e que cada variação tenha seu próprio preço adicional (exemplo: sabores, cores, tamanhos, modelos e afins).

O Magento altera o preço dos produtos configuráveis sem recarregar a página, sendo assim, o módulo para parcelamento dos produtos configuráveis seguirá o mesmo padrão para que funcione corretamente.

criar módulo magento

Definindo os diretórios do módulo magento

A partir deste ponto é muito importante que você preste atenção na diferença entre letras maiúsculas e minúsculas. Caso alguma ocorrência seja alterada por engano, o módulo não vai funcionar.

Acesse o diretório app/code/local (se local não existir em seu sistema você deverá criá-lo), pois, é uma das áreas que vamos criar novos diretórios e inserir arquivos no decorrer deste artigo.

Utilizaremos Newer7 como Namespace e o nome do módulo será Parcelamento. Consequentemente você deverá criar a seguinte estrutura de diretórios:

app/code/local/Newer7/Parcelamento/controllers
app/code/local/Newer7/Parcelamento/etc
app/code/local/Newer7/Parcelamento/Helper

1) Após a criação dos diretórios crie um arquivo chamado config.xml e coloque no diretório etc (app/code/local/Newer7/Parcelamento/etc/config.xml). O arquivo deverá ser composto pelo seguinte conteúdo:

<?xml version="1.0" encoding="UTF-8"?>
<config>
	<modules>
		<Newer7_Parcelamento>
			<version>0.1.0</version>
		</Newer7_Parcelamento>
	</modules>
	<frontend>
		<routers>
			<parcelamento>
				<use>standard</use>
					<args>
						<module>Newer7_Parcelamento</module>
						<frontName>parcelamento</frontName>
					</args>
			</parcelamento>
		</routers>
		<layout>
    		<updates>
        		<parcelamento>
            		<file>newer7_parcelamento.xml</file>
            	</parcelamento>
			</updates>
		</layout>
	</frontend>
	<global>
		<helpers>
    		<parcelamento>
        		<class>Newer7_Parcelamento_Helper</class>
        	</parcelamento>
		</helpers>
	</global>
    <adminhtml>
        <acl>
            <resources>
                <admin>
                    <children>
                        <system>
                            <children>
                                <config>
                                    <children>
                                        <parcelamento>
                                            <title>Newer7 Parcelamento</title>
											<sort_order>70</sort_order>
                                        </parcelamento>
                                    </children>
                                </config>
                            </children>
                        </system>
                    </children>
                </admin>
            </resources>
        </acl>
    </adminhtml>
        <default>
            <parcelamento>
                <parcelamento_general>
                    <enabled>0</enabled>
                    <parcelamento_jquery>1</parcelamento_jquery>
					<parcelamento_xparcelas>0</parcelamento_xparcelas>
					<parcelamento_desconto>0</parcelamento_desconto>                                       
                </parcelamento_general>
            </parcelamento>
        </default>
</config>

Linha 5:  <version>0.1.0</version> Versão do módulo.

Linha 8:  <frontend> Refere-se a área frontal da loja virtual. A parte em que os clientes tem acesso.

Linha 9:  <routers> Inclui informações de configuração sobre roteadores e sobre os objetos do roteador que são responsáveis pelo encaminhamento.

Linha 11: <use>standard</use> Dizemos ao sistema que essa rota virá pelo frontend.

Linha 13: <module>Newer7_Parcelamento</module> É o nome completo do módulo incluindo seu package/namespace. Isso será usado pelo sistema para localizar os arquivos do controlador.

Linha 14: <frontName>parcelamento</frontName> Valor que definimos para informar ao Magento sobre a rota que será usada na URL.

Linha 21: <file>newer7_parcelamento.xml</file> Definimos o arquivo de atualização de layout do módulo (em breve vamos criar e inserir no sistema).

Linha 34: <acl> Define a entrada ACL (Access Control List).

Linha 43: <title>Newer7 Parcelamento</title> Título exibido na área permissões de usuários (lista de recursos ACL) dentro do painel administrativo do Magento.

Linha 57: <parcelamento_general> Nome do grupo.

Linhas 58, 59, 60 e 61: São campos que serão criados no arquivo system.xml, recebendo seus valores iniciais através do arquivo config.xml (em nosso caso os valores são 0, 1, 0 e 0).

2) Crie um arquivo chamado system.xml e coloque no diretório etc (app/code/local/Newer7/Parcelamento/etc/system.xml). O arquivo deverá ser composto pelo seguinte conteúdo:

<?xml version="1.0"?>
<config>
    <tabs>
        <parcelamento translate="label" module="parcelamento">
            <label>Newer7</label>
            <sort_order>110</sort_order>
        </parcelamento>
    </tabs>
    <sections>
        <parcelamento translate="label" module="parcelamento">
            <class>separator-top</class>
            <label>Parcelamento</label>
            <tab>parcelamento</tab>
            <sort_order>100</sort_order>
            <show_in_default>1</show_in_default>
            <show_in_website>1</show_in_website>
            <show_in_store>1</show_in_store>
            <groups>
                <parcelamento_general translate="label">
                    <label>Configurações</label>
                    <frontend_type>text</frontend_type>
                    <sort_order>10</sort_order>
                    <show_in_default>1</show_in_default>
                    <show_in_website>1</show_in_website>
                    <show_in_store>1</show_in_store>
                    <fields>
                    	<enabled translate="label">
                        <label>Ativar</label>
                        <frontend_type>select</frontend_type>
                        <source_model>adminhtml/system_config_source_yesno</source_model>
                        <sort_order>1</sort_order>
                        <show_in_default>1</show_in_default>
                        <show_in_website>1</show_in_website>
						<show_in_store>1</show_in_store>
						<comment>Selecione para ativar/desativar o módulo.</comment>
						</enabled>
					    <parcelamento_jquery translate="label">
                        <label>Habilitar jQuery</label>
                        <frontend_type>select</frontend_type>
                        <source_model>adminhtml/system_config_source_enabledisable</source_model>
                        <sort_order>2</sort_order>
                        <show_in_default>1</show_in_default>
                        <show_in_website>1</show_in_website>
                        <show_in_store>1</show_in_store>
                        <comment>Desabilite se estiver sendo carregado por outro módulo.</comment>
                        </parcelamento_jquery>
                        <parcelamento_xparcelas translate="label">
                        <label>Quantidade de parcelas</label>
                        <frontend_type>text</frontend_type>
                        <sort_order>3</sort_order>
                        <show_in_default>1</show_in_default>
                        <show_in_website>1</show_in_website>
                        <show_in_store>1</show_in_store>
				        <comment>Digite a quantidade máxima de parcelas.</comment>
                        </parcelamento_xparcelas>
			            <parcelamento_desconto translate="label">
                        <label>Desconto à vista</label>
                        <frontend_type>text</frontend_type>
                        <sort_order>4</sort_order>
                        <show_in_default>1</show_in_default>
                        <show_in_website>1</show_in_website>
                        <show_in_store>1</show_in_store>
						<comment>Digite o valor para o desconto à vista.</comment>
                        </parcelamento_desconto>
                    </fields>
                </parcelamento_general>
            </groups>
        </parcelamento>
    </sections>
</config>

Linha 5:  <label>Newer7</label> Rótulo que será utilizado para exibição na guia do menu lateral.

Linha 6:  <sort_order>110</sort_order> Indica o posicionamento em relação as outras guias.

Linha 12: <label>Parcelamento</label> Rótulo da seção exibido na guia do menu lateral e no lado direito como título da página.

Linha 13: <tab>parcelamento</tab> Nome da posição na lista de seções.

Linha 14: <sort_order>100</sort_order> Indica o posicionamento em relação as outras seções.

Linhas 23, 24 e 25: <show_in_default>, <show_in_website>, <show_in_store> Valores 1 ou 0 (exibir ou ocultar), destina-se aos diferentes escopos selecionáveis no painel administrativo do Magento. Se for omitido receberá o valor padrão 0 (ocultar).

Linha 57: <label>Desconto à vista</label> Nome do campo.

Linha 58: <frontend_type>text</frontend_type> Determina o tipo de campo que será usado para coletar o valor da configuração. Neste caso “text”.

Linha 59: <sort_order>4</sort_order> Indica o posicionamento em relação aos outros campos.

Linha 63: <comment>Digite o valor para o desconto à vista.</comment> Comentário referente ao campo.

Configurações do módulo magento

3) Chegou a hora de avisar ao Magento que o nosso módulo existe e está ativo, para isso crie um arquivo chamado Newer7_Parcelamento.xml e coloque dentro do diretório de módulos do sistema app/etc/modules. O arquivo deverá ser composto pelo seguinte conteúdo:

<?xml version="1.0" encoding="UTF-8"?>
<config>
	<modules>
		<Newer7_Parcelamento>
			<active>true</active>
			<codePool>local</codePool>
		</Newer7_Parcelamento>
	</modules>
</config>

Linha 5: <active>true</active> Informamos que o módulo está ativo.

Linha 6: <codePool>local</codePool> Informamos o diretório que o módulo se encontra.

4) Crie um arquivo chamado Data.php e coloque no diretório Helper (app/code/local/Newer7/Parcelamento/Helper/Data.php). O arquivo deverá ser composto pelo seguinte conteúdo:

<?php

class Newer7_Parcelamento_Helper_Data extends Mage_Core_Helper_Abstract
{

}

5) Crie um arquivo chamado IndexController.php e coloque no diretório controllers  (app/code/local/Newer7/Parcelamento/controllers/IndexController.php). O arquivo deverá ser composto pelo seguinte conteúdo:

<?php

class Newer7_Parcelamento_IndexController extends Mage_Core_Controller_Front_Action {

public function indexAction() {

$preco_inicial = $this->getRequest()->get('preco');
$preco = str_replace('R$', '', $preco_inicial);
$preco = str_replace('.', '', $preco);
$preco = str_replace(',', '.', $preco);

$quantidade_parcelas = Mage::getStoreConfig('parcelamento/parcelamento_general/parcelamento_xparcelas');
$desconto = Mage::getStoreConfig('parcelamento/parcelamento_general/parcelamento_desconto');
$valor_parcela = number_format($preco/$quantidade_parcelas,2,',','.');
$preco_avista = ($preco/100)*(100-$desconto);

echo 'R$ '.number_format($preco,2,',','.').' em até '.$quantidade_parcelas.'x de R$ '.$valor_parcela.' no cartão <br/>R$ '.number_format($preco_avista,2,',','.').' à vista com '.$desconto.'% de desconto';

		}
	}
?>

Esse arquivo é responsável por receber, tratar e devolver os valores para a página do produto configurável (enviado via post quando uma opção do select for selecionada). Basicamente o que ele faz é receber o preço, resgatar os valores dos campos Quantidade de parcelas e Desconto à vista, efetuar os cálculos necessários, formatar os valores e devolver para a página do produto configurável.

Aviso: Os campos Quantidade de parcelas e Desconto à vista devem ser preenchidos na área administrativa do módulo.

6) Acesse app/design/frontend/base/default/template/ e crie um diretório chamado newer7_parcelamento. Crie também um arquivo chamado valores.phtml e coloque dentro do diretório newer7_parcelamento (app/design/frontend/base/default/template/newer7_parcelamento/valores.phtml). O arquivo valores.phtml deverá ser composto pelo seguinte conteúdo:

<?php
$_product = $this->getProduct();
$preco = $_product->getPrice();
$quantidade_parcelas = Mage::getStoreConfig('parcelamento/parcelamento_general/parcelamento_xparcelas');
$desconto = Mage::getStoreConfig('parcelamento/parcelamento_general/parcelamento_desconto');
$valor_parcela = number_format($preco/$quantidade_parcelas,2,',','.');
$preco_avista = ($preco/100)*(100-$desconto);
echo '<div id="parcelamento">R$ '.number_format($preco,2,',','.').' em até '.$quantidade_parcelas.'x de R$ '.$valor_parcela.' no cartão <br/>R$ '.number_format($preco_avista,2,',','.').' à vista com '.$desconto.'% de desconto</div>';
?>

<script type="text/javascript">
//<![CDATA[
var $j = jQuery.noConflict();
$j(document).ready(function(){
$j(".input-box select").change(function(){
$j('#parcelamento').html('<img src="<?php echo $this->getSkinUrl('images/newer7_parcelamento/ajax-loader.gif'); ?>"> Carregando');
$j.ajax({
url: '<?php echo $this->getUrl("parcelamento")?>',
type:"POST",
data:({"preco": $j('.price-box span span.price').html()}),
success: function(data) {
$j('#parcelamento').html(data);
}
})
})
})
//]]>
</script>

Se você está acompanhando este artigo desde o início já deve ter percebido que a biblioteca jQuery será necessária para o funcionamento do módulo, e por isso vamos inseri-la.
Acesse: js e crie um diretório chamado newer7_parcelamento. Após efetuar o download, renomeie o arquivo para jquery-newer7.js e coloque dentro do diretório newer7_parcelamento.

baixar jQuery

Lembre-se de inserir jQuery.noConflict(); no final de sua biblioteca.

Aviso: Se você fizer exatamente como foi explicado não precisará se preocupar com conflitos entre Prototype / jQuery e, caso seu tema ou módulo(s) já estiverem utilizando jQuery, lembre-se que em system.xml criamos um campo exclusivo para habilitar ou desabilitar a biblioteca do módulo.

Sobre o arquivo valores.phtml…

Será chamado na página de visão do produto e é responsável pelas seguintes tarefas.

  • Calcular e exibir o parcelamento quando a página for carregada.
  • Iniciar a requisição AJAX quando alguma das opções do select for selecionada.
  • Exibir uma imagem giratória juntamente com a mensagem Carregando (esse efeito ocorrerá entre o início e o fim da requisição AJAX).
  • Assim que houver sucesso na requisição, o valor do produto,  a quantidade de parcelas, o valor da parcela e o desconto à vista serão atualizados.

A imagem abaixo ilustra o funcionamento das tarefas mencionadas, no entanto, para fazer o módulo funcionar ainda precisamos criar o arquivo de layout e chamar nosso bloco valores.phtml no template (faremos isso nos próximos passos deste artigo).

Módulo magento parcelas

Para finalizar este passo vamos inserir a imagem animada.

Após efetuar o download da imagem acesse: skin/frontend/base/default/images e crie um diretório chamado newer7_parcelamento. Coloque a imagem ajax-loader.gif dentro do diretório newer7_parcelamento  (skin/frontend/base/default/images/newer7_parcelamento/ajax-loader.gif).

7) Crie um arquivo chamado newer7_parcelamento.xml e coloque em app/design/frontend/base/default/layout. (app/design/frontend/base/default/layout/newer7_parcelamento.xml). Segue abaixo o conteúdo para o arquivo newer7_parcelamento.xml

<?xml version="1.0"?>
<layout version="0.1.0">
<default>
    <reference name="head">
		<action method="addItem" ifconfig="parcelamento/parcelamento_general/parcelamento_jquery"><type>js</type><name>newer7_parcelamento/jquery-newer7.js</name></action>
	</reference>
</default>
<catalog_product_view>
	<reference name="product.info">
    	<block type="catalog/product_view" name="valores" as="valores" template="newer7_parcelamento/valores.phtml" />
	</reference>
</catalog_product_view>
</layout>

Este é o arquivo de layout do módulo que estamos criando. Observe que na linha 5 existe um método que nos permite adicionar um arquivo js adicional para a seção head, e neste caso, o arquivo que está sendo adicionado é jquery-newer7.js. O ifconfig (também na linha 5) verifica se o campo Habilitar jQuery está habilitado no admin antes de adicionar o arquivo.

Na linha 10 acrescentamos o bloco valores.phtml para ser exibido na página de visualização do produto.

8) Esta é a parte onde vamos chamar o bloco responsável pela exibição do parcelamento em nosso template. O local para inserção do código ficará a critério de cada um, eu apenas vou dar um exemplo de como fazer com o tema padrão do magento, pois, devido a diversidade de temas disponíveis no mercado seria impossível dizer um local exato. Sem falar que cada usuário tem seu próprio gosto, ou seja, enquanto um usuário prefere inserir o parcelamento abaixo da imagem do produto, outros poderiam inserir acima da breve descrição, enfim, as opções são muitas.

Abra o arquivo view.phtml do seu tema (app/design/frontend/default/seu-tema/template/catalog/product/view.phtml).

Próximo a linha 100 insira o código abaixo:

<style type="text/css">
#parcelamento{clear:both;padding-top:8px;}
</style>

<?php if($_product->getTypeId() == 'configurable' && Mage::getStoreConfig('parcelamento/parcelamento_general/enabled')): ?>
<?php echo $this->getChildHtml("valores"); ?>
<?php endif; ?>

Na linha 2 foi inserido um pequeno trecho de código para posicionar corretamente a div com id “parcelamento” no tema padrão do Magento. É recomendável que vocês apliquem seus próprios estilos de acordo com o local de inserção. Se possível, coloque em uma folha externa.

A linha 5 verifica se o produto é do tipo configurável e se o módulo está ativado na administração. Se as duas condições forem satisfeitas a linha 6 irá inserir o bloco na pagina.

Dica: Antes de acessar as configurações do módulo no painel administrativo do magento, limpe o cache, faça log out / log in.

E assim chegamos ao final deste artigo. Se alguma dúvida surgir, utilize os comentários.

Seja social e compartilhe:

57 Comentários

  • Germano disse:

    Primeiramente gostaria de agradecer ao material publicado que me serviu de grande ajuda.
    Criei o módulo conforme o tutorial e tudo ocorreu de maneira esperada.
    Mas para produtos em com preço promocional o valor de parcelas não é retornado, ou seja a variavel que deveria pegar o valor esta retornando vazia.
    Poderia me ajudar com esse problema? Obrigado

  • Marcus disse:

    Este módulo funciona para produtos empacotados?

    • Piero Luiz disse:

      Olá Marcus!
      O módulo funciona em produtos empacotados, no entanto, tais produtos possuem um “input”(quantidade), para cada item disponibilizado.
      Para que os valores sejam atualizados quando o cliente alterar a quantidade de cada input, você precisará implementar o seguinte trecho no arquivo valores.phtml:

      Linha 27, abra uma nova linha acima de: //]]>
      e coloque:

      $j(document).ready(function(){
      $j(“input”).keyup(function(){
      $j(‘#parcelamento’).html(‘<img src=”<?php echo $this->getSkinUrl(‘images/newer7_parcelamento/ajax-loader.gif’); ?>”> Carregando’);
      $j.ajax({
      url: ‘<?php echo $this->getUrl(“parcelamento”)?>’,
      type:”POST”,
      data:({“preco”: $j(‘.price-box span span.price’).html()}),
      success: function(data) {
      $j(‘#parcelamento’).html(data);
      }
      })
      })
      })
      Abraços.

  • Pedro disse:

    Piero, parabens! realmente fantastico seu módulo e é de grande ajuda para quem trabalha com magento.
    Estou tentando implantar em minha loja, porem, eu uso opções de produtos em produtos simples (http://www.vipracingshopping.com.br/kit-ar-8-valvulas-completo.html) olha só o conteudo do java do meu arquivo valores.phtml:

    //<![CDATA[
    var $j = jQuery.noConflict();
    $j(document).ready(function(){
    $j(".input-box input").change(function(){
    $j('#parcelamento').html('<img src="getSkinUrl(‘images/newer7_parcelamento/ajax-loader.gif’); ?>”> Carregando’);
    $j.ajax({
    url: ‘getUrl(“parcelamento”)?>’,
    type:”POST”,
    data:({“preco”: $j(‘.price-box span span.price’).html()}),
    success: function(data) {
    $j(‘#parcelamento’).html(data);
    }
    })
    })
    })
    //]]>

    Ele esta processando, porem, ele me retorna o valor errado do parcelamento. O que esta acontecendo é que ele esta pegando sempre um valor anterior ao da seleção.
    Poderia me ajudar por favor?

    • Piero Luiz disse:

      Experimente alterar a linha 15 do arquivo valores.phtml

      $j(“.input-box select”).change(function(){

      altere para:

      $j(“.input-box input[type=’radio’]”).click(function () {

      • Pedro disse:

        Piero! deu certo!!! muito obrigado pela sua atenção amigo! Suas dicas no blog sempre me ajudam. Mais uma vez, meus parabens pelo módulo.

      • Luiz Santos disse:

        Oi Pietro Luiz, tudo bem?
        Desculpe incomodá-lo, estou basicamente com o mesmo problema do Pedro no meu site, vi que no dele o problema está resolvido, só que tenho um módulo de parcelamento já funcionando, apenas preciso adaptá-lo para produtos configuráveis (na verdade são produtos simples com opções), queria adaptar o meu, já que o módulo do blog não aplica juros na parcela e eu preciso que os juros já estejam aplicados.

        Então minha pergunta é, qual chamada php você fez em “view.phtml” para que o bloco de parcelamento fosse chamado abaixo do preço?

        No meu eu uso
        getChildHtml(‘parcela’);?>

        No produto simples, basta chamar logo abaixo de:
        getChildHtml(‘addtocart’) ?>

        Mas no configurável não estou conseguindo, acredito que deve ser algum código “if product configurable” em php,
        ou algo semelhante, certo?

        Outra pergunta, o módulo do blog dá para já aplicar os juros na parcela, como no meu site?

        Olha o link:
        http://www.ultraeletronicos.com/blackberry-z10-4.html
        Dá pra ver que o parcelamento aparece normal nele. Já no produto com opções,
        não aparece nada: http://www.ultraeletronicos.com/adidas-springblade-3.html

        Eu até consegui tentei editar o view phml para conseguir inserir na página do produto configurável,
        porém o bloco nunca aparece abaixo do botão “addtocart” (comprar).

        Desde já, obrigado!

        • Piero Luiz disse:

          Olá Luiz Santos, blz!

          Confira o passo 8 deste artigo e veja como inserir o bloco.

          Sobre juros:

          Você pode implementar direto no código ou criar um campo exclusivo para poder administrar pelo painel do magento.

          Boa sorte.

          • Luiz Santos disse:

            Oi Pietro,
            Infelizmente não sou desenvolvedor, li o seu tutorial inteiro e ainda assim não compreendi.
            Para instalar no produto simples, eu segui esse tutorial:
            https://gabrielscarvalho.files.wordpress.com/2010/07/modulo-parcelas-ajax1.pdf

            Porém, como é para Magento 1.4.1 há uns passos que não deu para entender, como por exemplo
            como fica a estrutura do config.xml dele.

            Para adaptar ao meu site, ou seja, com as parcelas já com juros, eu fui na base do tentativa erro,
            peguei o código base do link acima e adaptei da seguinte forma:

            getProduct();
            $capital = $_product->getFinalPrice();
            $_max_parcelas = 12;// Máximo de parcelas no cartão
            $cartao =number_format($capital * 1.1341 /$_max_parcelas,2,’,’,’.’);
            $boleto = $capital * 0.95;//Desconto à vista por Depósito Bancário
            echo ‘Em até
            ‘.$_max_parcelas.’x de R$
            ‘.$cartao.’ nos cartões
            ou apenas R$’.number_format($boleto,2,’,’,’.’).’ à vista com
            5% de desconto por Depósito Bancário.’;
            ?>*Parcela Mínima – R$5,00*Simulação Juros – 1.99% a.m

            Nos produtos configuráveis, ele chama o módulo dele via jquery assim:
            No final de “view.phtml” coloca:

            //<![CDATA[
            jQuery(document).ready(function(){
            jQuery("select").change(function(){
            jQuery.ajax({
            url: 'getUrl(“Parcelamento/Parcela/index”)?>’,
            type:”POST”,
            data:({“valor”: jQuery(‘.price’).html()}),
            success: function(data) {
            jQuery(‘#parcelado’).html(data);
            }
            });
            })
            })
            //]]>

            Infelizmente não consegui seguir o tutorial dele, ele “quebrou” demais a explicação da estrutura do “config.xml” explicando a estrutura em partes, e não colocou a estrutura completa. O que acaba complicando para quem não entendo muito como eu 🙁

          • Luiz Santos disse:

            Há também um outro módulo, este tem inclusive a opção de se incluir os juros das parcelas no admin, conforme você mencionou. O problema dele é que apenas mostra uma tabela com as parcelas e ela é bem “fraquinha” e fica um pouco esquisita na página do produto:
            https://www.magentocommerce.com/magento-connect/preco-parcelado.html

            A ideia é excelente, pois ele conseguiu deixar a configuração do módulo praticamente todo feito via admin, pena
            que o modo de exibição das parcelas não ficou agradável.

            Dei uma olhada nos arquivos phtml dele e infelizmente me parece complicado de se adaptar…

          • Piero Luiz disse:

            Uma ideia legal seria você remover tudo que inseriu na sua loja e efetuar todo o procedimento de criação listado neste artigo.
            Dica: No passo 8 (linhas 5, 6 e 7), substitua por:

            <?php if(Mage::getStoreConfig(‘parcelamento/parcelamento_general/enabled’)): ?>
            <?php if($_product->getTypeId() == ‘configurable’ or $_product->getTypeId() == ‘simple’): ?>
            <?php echo $this->getChildHtml(“valores”); ?>
            <?php endif; ?>
            <?php endif; ?>

            Assim você consegue inserir o bloco nos produtos do tipo configurável e simples.
            Abraço.

          • Luiz Santos disse:

            Só para informar que já consegui no produto simples com opções personalizadas.
            Acredito que não estava parecendo porque uso o CloudFlare e mesmo limpando o cache, ele deve demorar um pouco para entregar a versão mais atual do site.

            Agora tentarei seguir o tutorial que mencionei e fazer com que a página (ou pelo menos o bloco “price”) atualize todas as vezes que as cores ou valores são modificados.

            Segue o link com um produto simples configurável, como podem ver, o preço muda mas as parcelas continuam as mesmas, vou ver se consigo resolver isso e depois digo o que eu fiz.
            http://www.ultraeletronicos.com/apple-iphone-5s.html

            Com relação ao módulo já pronto, ele é fantástico, pena que a tabela dele é bem fraquinha mesmo e dá pouquíssima margem para personalização. Mas a ideia dele é fantástica, vamos ver se evolui

          • Luiz Santos disse:

            Olá novamente, Piero Luiz

            Cara, obrigado pelas dicas, só que meu problema com o seu módulo não é nem inseri-lo no site,
            chequei novamente o tutorial e comparando com o tutorial que eu fiz para inserir o outro módulo no meu
            site, me parece bem mais simples e organizado.

            Meu problema é que seu módulo não há uma regra de cálculo de juros, pra mim só falta isso.

            Este módulo tem, mas não sei mexer na estrutura para adaptar essa parte ao seu:
            https://www.magentocommerce.com/magento-connect/preco-parcelado.html

            O ideal seria o seu módulo, com a regra de juros do módulo acima, aí ficaria PERFEITO!

            Mas enfim, sigo investigando…

          • Piero Luiz disse:

            Olá Luiz Santos!

            Em breve estarei atualizando o artigo e inserindo novas opções.
            Estou pensando em disponibilizar para download a versão completa (funcional para todos os tipos de produtos) direto no connect.

            Te agradeço pelas sugestões.
            Abç

          • Luiz Santos disse:

            Olá Piero Luiz, poxa, espero que consiga um tempinho e consiga fazer as modificações 😀
            Olha, caso queira ter uma ideia para se “inspirar”, eis o módulo do Bruno:
            http://brunowebdeveloper.com.br/parcelamento-magento.html

            Também está bem completo, ele faz as funções via atributos, só não sei se tem como “forçar” esse módulo
            em todos os produtos, porque se for de um a um, aí é roubada, só que tenho mais de 600 produtos já cadastrados…

            Mas como vc pode ver, ele separou tudo, inclusive dando a opção no admin…
            Só que como sempre, esbarra no problema do produto configurável, ou seja, não atualiza quando o preço muda…

            Vou seguir monitorando o seu blog. Uma vez mais, obrigado pelas dicas 🙂

          • Luiz Santos disse:

            Oi Pietro, tudo joia?
            Olha, até consegui inserir os juros no seu módulo, e quando entro na página do produto, ele
            pega o preço e parcela corretamente com os juros que eu defini.

            No entanto, não sei se é por isso, mas não consigo inserir o código nem com o passo 8 do tutorial (não diz em que parte da linha 100 tenho que inserir, então quando coloco lá, dá erro) e nem com o código alternativo que você deu nos comentários.

            Mas enfim, consegui inserí-lo, onde eu chamava o parcelamento que tenho instalado agora. Valor a chamada com: “getChildHtml(‘valores’)”
            Até aí tudo bem, ele mostra tanto em produtos simples como em configuráveis (faço duas chamadas pelo “getChildHtml(‘valores’)”

            O problema é que quando estou com os produtos configuráveis, um erro desconhecido ocorre (acredito que seja o controller.php) e ao clicar
            em alguma opção, mesmo que seja cor sem modificar o valor do item, o ajax atualiza, mas aparece um preço que não tem nada a ver
            com o preço do item.

            Há como corrigir isso? Pois é só esse problema que está me impedindo de utilizá-lo no site.

            Caso consiga resolver, te passo por e-mail o “view.phtml” já com o código aplicado e o “valores.phtml” já com a solução dos juros na parcela.

            Att
            Luiz Santos

            Link 1, parcelamento correto:

  • Alexandre disse:

    Olá excelente post, segui a risco o tutorial porém o valor parcelado não esta sendo exibido na página de detalhe do produto.

    adicionei o código no arquivo view.phtml mas não aparece nada.

    abraço.

  • Alexandre disse:

    Olá sou eu de novo, refiz a operação e agora esta funcionando. Obrigado pelo tutorial.

    Abraço.

  • Tiago Farias disse:

    SHOW!!!!!!!!

    Havia criado um módulo de pagamento porém não conseguia implementar a parte do frontend, agora com esse seu tutorial já esclarece minhas dúvidas de como implementar o frontend xD

    Obg.

  • Fabricio disse:

    amigo, perfeito.
    parabéns.

    uma dúvida, como inserir o parcelamento na listagem?
    tentei colocar o código no arquivo list.phtml e não foi mostrado.
    alguma dica?

    getTypeId() == ‘simple’ or $_product->getTypeId() == ‘grouped’ or $_product->getTypeId() == ‘configurable’ or $_product->getTypeId() == ‘virtual’ or $_product->getTypeId() == ‘bundle’ or $_product->getTypeId() == ‘downloadable’): ?>
    getChildHtml(“valores”); ?>

  • fabricio disse:

    boa tarde.
    obrigado, ainda não testei, vou testar agora de tarde.

    ta tendo um problema.
    no produto configurável quando contem o preço “DE” e “POR” o parcelamento aparece zerado quando se muda a variação!
    produto 1
    DE 100
    POR 200
    e dentro dele tem 3 variações.
    50ML, 100ML e 200ML, quando se muda aparece zerado.

    tbm tem que mudar o arquivos valores.phtml a chamada getPrice para getFinalPrice, só assim ele pega o valor certo.
    estou usando o magento 1.9.1

    obrigado pela ajuda aos usuários magento.

  • rodrigo disse:

    Ola , como consigo fazer o parcelamento aparecer na pagina de finalizaçao do pedido ? sendo ele escolhido pelo cliente na conclusao do pagamento selecionando as parcelas o recebendo no adim a quantidade solicitada pelo cliente?

    abraços

  • Robson disse:

    Primeiramente parabéns pelo blog, fiz passo a passo porém o modulo aparece habilitado em Sistema>Configuração>Avançado, mas não aparece no menu da configuração, sabe o que poderia ser ?

  • hector luis disse:

    Boa tarde Piero Luiz.

    Estava procurando um modulo que atualizasse os valores do parcelamento para os produtos configuráveis, agrupados e com campos personalizados e achei o seu tutorial.
    Esse modulo serve para a versão 1.9.1 do magento?

    Obrigado

    hector

  • Olá Piero, como vai?

    Primeiramente, gostaria de agrade-lo por seu tempo e por sua contribuição.
    Seu tutorial é extremamente útil e sua didática incrível. Não tive nenhum problema para implementa-lo.

    Identifiquei um único problema, pelo menos no meu tema (utilizo o Ultimo). Quando acesso a página do produto pela primeira vez, sem escolher nenhuma das opções disponíveis para o produto, os valores do módulo aparecem corretamente. Quando seleciono qualquer uma das opções e o valor default muda, os centavos não aparecem. Um produto de R$ 19,90 por exemplo, aparece no módulo como R$ 19,00 em 3x de R$ 6,33. Você imagina o quê pode estar acontecendo?

    Tem um link aqui: http://letrasmdf.com.br/loja/linha-cru/simbolos-mdf-cru/caveira-cru.html

    Muito obrigado e parabéns!

    • Piero Luiz disse:

      Saudações Ricardo Albrecht.

      Não tive tempo pra responder anteriormente (correria total por aqui).
      Acredito que você já tenha resolvido a questão por si só, correto ?
      Segue resolução – Seja p/ você ou p/ outras pessoas que venham a ter a mesma dúvida:

      “Sugestões são de grande valia. Se puder se expressar em tais termos serei extremamente grato”.

      Altere o arquivo IndexController.php, linha 8:

      $preco = str_replace(array(‘R’,’$’,’.’), ”, $preco_inicial);

      Modifique para:

      $preco = str_replace(‘R$’, ”, $preco_inicial);
      $preco = str_replace(‘.’, ”, $preco);
      $preco = str_replace(‘,’, ‘.’, $preco);

      Se houver alguma dificuldade é só digitar por aqui.
      Excelente final de ano a todos.

  • FELIPE disse:

    Ola Piero, Como vai?
    Primeiramente quero agradecer pelo por disponibilizar este modulo.

    mas eu estou com o mesmo problema do colega Robson, fiz passo a passo porém o modulo aparece habilitado em Sistema>Configuração>Avançado, mas não aparece no menu da configuração. Ja fiz varias vezes o processo e ate mudei a versao do magento, mas nao aparece no lado esquerdo no admin, voce saber disser o porque?

  • Hallan disse:

    Olá Piero! No meu site uso o módulo SCP para atualização dinâmica do preço utilizando o preço do produto simples em configurável. E verifiquei que ele sobrescreve o bloco onde é chamado o bloco do seu módulo. Como consigo contornar isso para que os dois funcionem juntos?

    Att.

    • Piero Luiz disse:

      E ai Hallan, blz!
      Deve ter uns 3 anos que usei o SCP (sinceramente não me lembro da estrutura).
      Poderia debugar e me retornar com a rota do arquivo que está montando a área central da página?

  • Ae Piero, é possivel adicionarmos juros variáveis para cada parcela com esse seu módulo?

    imaginando
    2parcelas = 1.051024
    3parcelas = 1.068408
    4 parcelas = 1.085976
    etc…

    Obrigado

  • Sorprendente post. Gracias por compartirlo…Espero màs…

    Saludos

  • Olá Piero, muito bom seu tutorial, mas estou com o seguinte problema:

    Já repeti diversas vezes o passo a passo porém o modulo aparece habilitado em Sistema>Configuração>Avançado, mas não aparece no menu à esquerda da configuração. Estou utilizando o Magento 1.9.2.4

    Saberia me dizer o por que?

    Atenciosamente,

  • James disse:

    Boa noite

    Fiz conforme os passos do módulo, porém quando seleciono o tamanho do produto com preço alterado ele fica carregando e não trás a atualização do preço.
    O que pode ser?

  • DevonPek disse:

    para por no product view , pois quero que apareça somente em até 5x sem juros. só que a parcela minima é de R$50,00 reais , quando tenho algum produto abaixo desse valor ele não aparece em até 1x e sim continua aparecendo em ate 5x vezes desobedecendo a parcela minima.

    • Piero Luiz disse:

      Eu tenho uma versão que inclui os seguintes itens:

      – Valor mínimo da parcela;
      – A partir de x vezes sem juros;
      – Exibição de parcelamento no frontend (com e sem juros);
      – Inserção de taxa de juros;
      – Totalmente gerenciável pelo painel admin;
      – Desenvolvido na versão 1.9 do Magento.

      Se houver interesse, entre em contato

  • Fala Piero, muito bom seu módulo!

    Ele funciona perfeitamente com produtos configuráveis mas como faríamos ele funcionar no caso de produtos simples com “opções adicionais” ?

  • Luana Santos disse:

    Olá, obrigado pelas dicas, só que meu problema com o seu módulo não é nem inseri-lo no site,
    chequei novamente o tutorial e comparando com o tutorial que eu fiz para inserir o outro módulo no meu
    site, me parece bem mais simples e organizado.

    Meu problema é que seu módulo não há uma regra de cálculo de juros, pra mim só falta isso.

    Este módulo tem, mas não sei mexer na estrutura para adaptar essa parte ao seu:
    https://www.magentocommerce.com/magento-connect/preco-parcelado.html

    O ideal seria o seu módulo, com a regra de juros do módulo acima, aí ficaria PERFEITO!

    Mas enfim, sigo atentamente…

  • Jorge disse:

    Olá!

    Muito bom, usei bastante para meus clientes no Magento 1.9. Agora estou migrando para O Magento 2.3.5. Já foi atualizado a nova versão?

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *