Os blocos CMS não funcionam em produtos que usam o campo Atualização de layout personalizado em categorias
-
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?
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>