Quem usa o Magento já deve ter notado que ele exibe sempre o preço cheio do produto, nunca mostra os valores em parcelas. E eu posso imaginar o por quê!
Imagine as inúmeras possibilidades de configuração. Alguns produtos você deseja parcelar, outros não, ou exige um valor mínimo de parcela, ou até 6x é sem juros e depois tem acréscimo de n%, ou no cartão X tem juros e no Y não tem, enfim, você poderia inventar N maneiras de configurar suas parcelas.
Enquanto alguém não inventa uma extensão para isso, ou pelo menos uma extensão grátis e em português, eu vou apresentar uma solução simples, que funciona dentro de suas limitações. Mas que pode ser facilmente alterada para se adaptar as suas necessidades.
E o melhor (do meu ponto de vista), essa solução já ensina a usar atributos e a manipulá-los dentro do código.
Então pra começar, vamos criar um atributo “parcelas” para seus produtos, onde você vai informar o número de parcelas para cada produto cadastrado, então assim que você fornecer o preço do produto já informa também em quantas vezes pode ser parcelado o pagamento.
Na área administrativa vá em Catálogo -> Atributos -> Gerenciar Atributos e clique em Adicionar Novo Atributo.
Nas propriedades do atributo informe o código “parcelas” para identificarmos o atributo dentro do código posteriormente. O escopo pode ser global, o valor padrão pode ser 1 (de 1 parcela), valor único não, valor requerido sim, validação número inteiro, aplicar para todos os tipos de produtos. No demais pode deixar tudo não, e nas opções de etiquetas pode deixar o identificador como “parcelas“.
Depois de salvar este novo atributo, teremos que vinculá-lo aos atributos do produto. Para isso vá em Catálogo -> Atributos -> Gerenciar Grupo de Atributos, você deve ter na lista de grupos apenas o grupo “default“, que é o normal. Selecione este grupo e veja que na coluna da direita agora aparece o atributo de identificador “parcelas” que você criou anteriormente.
Para adicionar ao grupo basta clicar sobre o nome e arrastar até a pasta que desejar, sugiro que coloque na pasta Prices – Preços perto do atributo preço ou preço especial para que você se lembre de informar um valor de parcela sempre que informar o preço do produto. Não esqueça de salvar o conjunto de atributos depois de arrastar.
Agora sempre que for criar ou alterar algum produto você terá este campo a mais para preencher. Primeira etapa concluida.
Já temos o valor das parcelas, precisamos agora exibir isto na tela, basicamente em dois momentos distintos. Na listagem dos produtos em grid ou lista e nas visualizações individuais de cada produto. Da mesma forma que fizemos no exemplo do post sobre exibir R$ Consulte no lugar dos preços.
Então vamos abrir o arquivo list.phtml que fica na pasta app -> design -> frontend -> default -> default -> template -> catalog -> product responsável por apresentar a lista dos produtos do catálogo em forma de grid ou lista.
Encontre a linha responsável por imprimir o preço dos produtos na tela, você deve encontrar uma na linha 60 (list) e outra na linha 104 (grid).
<?php echo $this->getPriceHtml($_product, true) ?> |
Abaixo dessa linha adicione o seguinte código:
<?php |
$_coreHelper = $this->helper('core'); |
$_product->load( $_product->getId() ); |
$vezes = $_product->getResource()->getAttribute('parcelas')->getFrontend()->getValue( $_product ); |
echo '<small>Parcele em até '.$vezes.'x de '.$_coreHelper->currency( $_product->getFinalPrice()/$vezes, true, false ).'</small><br />'; |
?> |
nota: Você pode alterar a descrição e a posição apenas mudando o bloco de lugar, para formatar cores, fontes, tamanhos procure utilizar css.
Feito isso vamos para o arquivo addtocart.phtml que fica na pasta app -> design -> frontend -> default -> default -> template -> catalog -> product -> view responsável por apresentar o preço do produto individualmente, logo abaixo da linha.
<?php $_product = $this->getProduct() ?> |
Vamos adicionar o código abaixo:
<?php |
$_coreHelper = $this->helper('core'); |
$vezes = $_product->getResource()->getAttribute('parcelas')->getFrontend()->getValue( $_product ); |
echo '<small><b>Parcele em até '.$vezes.'x sem juros</b></small><br />'; |
for ( $i=1; $i <= $vezes; $i++ ) { |
echo '<small>'.$i.'x de '.$_coreHelper->currency( $_product->getFinalPrice()/$i, true, false ).'</small><br />'; |
} |
echo '<br />'; |
?> |
nota: Você pode alterar a descrição e a posição apenas mudando o bloco de lugar, para formatar cores, fontes, tamanhos procure utilizar css.
Eu sei que não é uma solução definitiva, mas você pode adaptar, por exemplo se quizer acrescentar juros nas parcelas basta calcular onde já é feito a divisão. Entre outras inúmeras possibilidades.
Sucesso!
Fonte: Mario SAMFormado em TI, desenvolvedor sênior sun java certified, gerente de ecommerce, e faixa preta!




0 comentários:
Postar um comentário