Bem vindo ao brockdev.com, não seja tímido compartilhe suas duvidas e conhecimento. :D

Exibir parcelas no magento usando PHP

Jonatan Machado Moderador Global, Administrador
editado March 2014 em PHP
Bom dia pessoal
Estou tentando exibir as parcelas no magento usando PHP porem como estou utilizando um atributo chamado parcelas, criei uma variável que pega o valor do atributo e calcula e mostra o valor com parcelas. Com o codigo eu adicionei no final do arquivo price.phtml, Ai que vem o problema na home esta aparecendo corretamente porem nas paginas das categorias nao pega o valor do atributo setado em cada produto o valor fica 0. Estou pegando o valor do atributo assim $_product->getData('parcelas') sera que esse e meu problema?

<div id=\"parcelas_produto\">
<?php
$vezes = $_product->getData('parcelas');
echo $vezes.'x de '.$_coreHelper->currency( $_product->getFinalPrice()/$vezes, true, false );
?>
</div>
Arsenal Web Design.com
Desenvolvimento de Lojas Virtuais
Magento | Zend Framework | HTML5 | CSS3 | Blogs
image
E-mail: contato@brockdev.com

Comentários

  • Jonatan Machado Moderador Global, Administrador
    Estou tentando fazer isso em duas lojas que ja foram modificadas bastante :D
    Eu apliquei o tema default e as parcelas apareceram então com certeza e erro no template :shock:

    Ainda bem que se eu colocar o numero de parcelas direto no arquivo funciona :lol:

    <div id=\"parcelas_produto\">
    <?php
    $vezes = \"6\";
    echo $vezes.'x de '.$_coreHelper->currency( $_product->getFinalPrice()/$vezes, true, false );
    ?
    </div>


    Alguém teria uma idea como fazer para eu achar esse erro?
    Arsenal Web Design.com
    Desenvolvimento de Lojas Virtuais
    Magento | Zend Framework | HTML5 | CSS3 | Blogs
    image
    E-mail: contato@brockdev.com
  • Jonatan Machado Moderador Global, Administrador
    Testei novamente com o tema default e não funcionou :o
    Arsenal Web Design.com
    Desenvolvimento de Lojas Virtuais
    Magento | Zend Framework | HTML5 | CSS3 | Blogs
    image
    E-mail: contato@brockdev.com
  • Alessandra Moderador Global
    Olá Jonatan!
    Eu uso o seguinte código para pegar o valor do atributo parcela:
    		
    $vezes = $_product->getResource()->getAttribute('parcela')->getFrontend()->getValue($_product);


    O código completo é o seguinte:

    		
    <?php
    $_coreHelper = $this->helper('core');
    $vezes = $_product->getResource()->getAttribute('parcela')->getFrontend()->getValue($_product);
    $preco = $_product->getFinalPrice();

    $valor_parcela = $preco / $vezes;
    ?>
    <h6> <?php echo $vezes.'x de '.$_coreHelper->currency($valor_parcela).' sem juros' ?></h6>

  • Jonatan Machado Moderador Global, Administrador
    Ola
    Legal não sabia assim pena que esta dando erro aqui :cry:

    Fatal error: Call to a member function getFrontend() on a non-object in /home/loja/www/dev/app/design/frontend/base/default/template/catalog/product/price.phtml on line 432
    Arsenal Web Design.com
    Desenvolvimento de Lojas Virtuais
    Magento | Zend Framework | HTML5 | CSS3 | Blogs
    image
    E-mail: contato@brockdev.com
  • Alessandra Moderador Global
    Isso você resolve na configuração do atributo parcelas, pois deve estar selecionado Sim nos campos Visível nas Páginas de Produto no Frontend e Utilizar em Listagem de Produtos.
  • Jonatan Machado Moderador Global, Administrador
    Nossa perfeito Alessandra :D
    Eu setei sim nas opções que você falou porem ocorreu o mesmo erro, :shock: mais eu revi o código nome do atributo na minha configuração eu coloquei no plural rsrs parselas e o seu esta no singular e nem tinha percebido antes agora esta funcionando como eu queria.

    Obrigado Alessandra,
    Abraço e sucesso ;)

    <?php
    $_coreHelper = $this->helper('core');
    $vezes = $_product->getResource()->getAttribute('parcelas')->getFrontend()->getValue($_product);
    $preco = $_product->getFinalPrice();

    $valor_parcela = $preco / $vezes;
    ?>
    <h6> <?php echo $vezes.'x de '.$_coreHelper->currency($valor_parcela).' sem juros' ?></h6>
    Arsenal Web Design.com
    Desenvolvimento de Lojas Virtuais
    Magento | Zend Framework | HTML5 | CSS3 | Blogs
    image
    E-mail: contato@brockdev.com
  • Alessandra Moderador Global
    rsrs.. Realmente eu uso parcela no meu atributo.
    Que bom que deu certo!
    :D
  • Jonatan Machado Moderador Global, Administrador
    Testei assim
    Com aquela configuração do atributo que você falou e funciona também :) :D

    <div id=\"parcelas_produto\">
    <?php
    $vezes = $_product->getData('parcelas');
    echo $vezes.'x de '.$_coreHelper->currency( $_product->getFinalPrice()/$vezes, true, false );
    ?>
    </div>
    Arsenal Web Design.com
    Desenvolvimento de Lojas Virtuais
    Magento | Zend Framework | HTML5 | CSS3 | Blogs
    image
    E-mail: contato@brockdev.com
  • Jonatan Machado Moderador Global, Administrador
    Oi Alessandra :D
    Acho que tem algum problema se ativar aquelas configuração do atributo que voce falou, porque eu reparei se ativar o site fica bem bem bem lento porem se deixar desativado o site fica rápido para carregar nao sei se o problema e no site que eu estou alterando, nos seus testes fica normal? estou colocando sem especificar o atributo assim para que o site fique rapido.

    <div id=\"parcelas_produto\">
    <?php
    $vezes = \"12\";
    echo $vezes.'x de '.$_coreHelper->currency( $_product->getFinalPrice()/$vezes, true, false );
    ?
    </div>
    Arsenal Web Design.com
    Desenvolvimento de Lojas Virtuais
    Magento | Zend Framework | HTML5 | CSS3 | Blogs
    image
    E-mail: contato@brockdev.com
  • Olá pessoal!

    Eu fiz o parcelamento conforme código abaixo e está funcionando certinho!
    Porém tenho produtos configuráveis onde o tamanho altera o valor do produto... e aí o valor parcelado não é alterado :/

    Eu acho que precisaria criar algo em javascript para atualizá-lo também, porém como não conheço muito nao estou conseguindo fazer o código js.

    Poderiam me ajudar?


    $vezes = $_product->getData('parcelas');
    $price = $_product->getFinalPrice();
    if ( $vezes == 0 ): $vezes = 3; endif;

    $parcelado = $price/$vezes;

    echo '<span class=\"price_parcela\">ou '.$vezes.' x de '.Mage::helper('core')->currency($parcelado, true, false).'</span>';
    --
    Danielle
  • rtlshop Usuário
    estou com uma duvida também, depois de pesquisar e pesquisar consegui achar um jeito agradável de mostrar as parcelas, porém não consigo adicionar o juros, segue código, alguém pode ajudar a respeito?


    <div class=\"parcelas\">
    <small>
    <?php
    $_product->load( $_product->getId() );
    $capital = $_product->getFinalPrice();
    $taxa = 0.0199; #juros de 1,99% ao mês
    $vl_min_parc = 7; #mínimo de $7 por parcela
    $qt_max_parc = 6; #quantidade máxima de parcelas

    $qt_parc = floor($capital/ $vl_min_parc);

    if($qt_parc > $qt_max_parc):
    $qt_parc = $qt_max_parc;
    else:
    $qt_parc = $qt_parc;
    endif;

    $vl_parc = ( $capital / $qt_parc);
    ?>

    <span class=\"carrinho_ou_red\">ou até <?=$qt_parc?> x </span><span class=\"carrinho_ou_red\">R$ <?=number_format($vl_parc,2,\",\",\".\")?></span></small>
    </div>



    a chamada está ai é $taxa = 0.0199; #juros de 1,99% ao mês
    eu acho que é em $vl_parc =
    mas tentei algumas opções que achei nos fóruns e nada deu certo

    obrigado
  • Pessoal,

    Alguém pode dar uma luz?

    Eu não sei como criar algo em javascript para atualizar o valor parcelado quando o produto é configurável... ao escolher o tamanho, o preço é atualizado, porém as parcelas não!

    Obrigada
    --
    Danielle
  • Jonatan Machado Moderador Global, Administrador
    disse:

    Pessoal,

    Alguém pode dar uma luz?

    Eu não sei como criar algo em javascript para atualizar o valor parcelado quando o produto é configurável... ao escolher o tamanho, o preço é atualizado, porém as parcelas não!

    Obrigada

    O jeito mais fácil e com jquery
    http://stackoverflow.com/questions/2557 ... ing-jquery
    Abraço
    Arsenal Web Design.com
    Desenvolvimento de Lojas Virtuais
    Magento | Zend Framework | HTML5 | CSS3 | Blogs
    image
    E-mail: contato@brockdev.com
  • Eu copiei o arquivo template/catalog/product/view/options.phtml , que contém o JS para alterar o preço, e na mesma função inclui o código para atualizar a parcela, porém setei o valor com div.innerHTML mesmo!
    Não sei se é o mais apropriado, mas funcionou! rs

    Obrigada!
    --
    Danielle
Entre ou Registre-se para fazer um comentário.