Pregunta

Estoy trabajando para entregar una serie personalizada de mensajes a través de bloques estáticos basados ​​en ciertas condiciones que posee un cliente.

Por ejemplo, me gustaría mostrar un mensaje de oferta personalizado frente a otro.un mensaje de oferta personalizado alternativo dependiendo de si un cliente ha iniciado sesión y si ha realizado una compra en el pasado.

He creado todos los bloques estáticos y todos se muestran donde se supone que deben hacerlo si los habilito manualmente.Lo que deseo aprender es cómo y dónde puedo insertar la lógica condicional que determinará SI un bloque se utilizará o no.

Supongo que tendré que incluir esta lógica condicional o similar en cada página a la que un cliente pueda navegar y en la que me gustaría entregar ofertas o mensajes.Algunas páginas recibirán este tratamiento, otras no.

Estoy preguntando principalmente sobre DÓNDE implementar el código para una página que no es CMS por ahora.

Gracias por cualquier ayuda o comentario.

¿Fue útil?

Solución

Según su pregunta, no está claro dónde debe mostrar estos bloques estáticos.Sin embargo, según tengo entendido, le daré algunas sugerencias.

Básicamente, tienes algunos bloques estáticos contigo y necesitas mostrarlos solo cuando se cumple alguna condición.

Allá vamos.Supongo que debes mostrar estos bloques en la parte derecha de cada página.Para esto es necesario crear un local.xml archivo de diseño.

Archivo : app/design/frontend/<your_package>/<your_theme>/layout/local.xml

<layout>
    <default> <!-- this layout handle enable its child block appear almost every page -->
        <reference name="right"> <!-- this let static block appear in the right section -->
            <block type="core/template" name="conditional.static.blocks.container" template="staticblocks/contaier.phtml">
                <block type="cms/block" name="static.block.1" as="static_block_1">
                    <action method="setBlockId"><block_id>code-for-sb-1</block_id></action>
                </block>
                <block type="cms/block" name="static.block.2" as="static_block_2">
                    <action method="setBlockId"><block_id>code-for-sb-2</block_id></action>
                </block>
                <!-- continue this step for every block -->
            </block>
        </reference>
    </default>
</layout>

Archivo : app/design/frontend/<package>/<theme>/template/staticblocks/contaier.phtml

<?php if({condition_1_satisfies}) : ?>
    <div><?php echo $this->getChildHtml('static_block_1'); ?></div>
<?php endif;  ?>

<?php if({condition_2_satisfies}) : ?>
    <div><?php echo $this->getChildHtml('static_block_2'); ?></div>
<?php endif;  ?>

<!-- continue this logic here for every static block according to your need  -->

La ventaja de este método es que le brinda una gran flexibilidad.En cada página del lado derecho puedes ver este bloque.Dado que utilizamos diferentes condiciones en el bloque principal, solo aparecerá el bloque estático deseado en la interfaz.

Como ya dije, esto es sólo una idea.Puedes elaborarlo con tus propias condiciones.

Espero que ayude

Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top