Os blocos CMS não funcionam em produtos que usam o campo Atualização de layout personalizado em categorias

magento.stackexchange https://magento.stackexchange.com//questions/45223

  •  12-12-2019
  •  | 
  •  

Pergunta

Gostaria de aplicar um Bloco CMS apenas para produtos de uma categoria específica.E quero mostrar isso apenas na semana da Black Friday.

Minha sorte é que posso definir o campo Atualização de layout personalizado na página de administração da minha categoria.E definir "Aplicar a todos os produtos" como Sim deve funcionar como esperado.

Bem, criei meu bloco Cms, mas não consigo mostrá-lo na página do produto.A seguir, o código de layout usado no campo "Atualização de layout personalizado", na categoria pai:

<layout>
    <catalog_product_view>
        <reference name="product.info">
            <block type="cms/block" name="friday.price" before="-">
                <action method="setBlockId"><block_id>friday_banner</block_id></action>
            </block>
        </reference>
    </catalog_product_view>
</layout>

Tudo funciona muito bem quando eu defino outro bloco (não cms personalizado).Alguém sabe o que está acontecendo?

Foi útil?

Solução

product.info é do tipo catalog/product_view que, como posso ver, não é um bloco estrutural

<block type="catalog/product_view" name="product.info" template="catalog/product/view.phtml">

então você deve chamá-lo diretamente onde deseja exibi-lo em catalog/product/view.phtml por:

<?php echo $this->getChildHtml('friday.price'); ?>

Se você estiver fazendo isso através do painel de administração na guia de design personalizado da categoria, você deverá remover isto:

<layout>
    <catalog_product_view>

Insira/preencha apenas isto:

<reference name="product.info">
    <block type="cms/block" name="friday.price">
        <action method="setBlockId"><block_id>friday_banner</block_id></action>
    </block>
</reference>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange
scroll top