Magento – Layout call static block CMS – Llamar desde Layout a Bloque CMS

Dentro de Magento tenemos la facilidad de poder llamar a un bloque estático o Cms Block/Bloque CMS desde un layout porque necesitemos incorporar una nueva funcionalidad por ejemplo en la apariencia de una plantilla.

Sólo es necesario un par de pasos:

1.- Crear el bloque CMS al que queremos llamar. En este caso llamaremos “bloqueCMS”

2.- Desde el layout donde lo queremos incorporar pondremos la llamada teniendo en cuenta la colocación con el atrbuto after o before. He puesto un nombre distintos en el atributo “name” para que nos demos cuenta que lo que cuenta es el id del bloque o identificador y no el título de él.

<block type="cms/block" name="Bloque-CMS-R2D2" before="contacto_dcha">
 <action method="setBlockId"><block_id>bloqueCMS</block_id></action>
 </block> 

Magento – Llamar a un Bloque CMS desde un Bloque CMS

Dentro de Magento tenemos la facilidad de poder llamar a un bloque estático o Cms Block/Bloque CMS desde otro bloque estático o desde una página.

Sólo es necesario un par de pasos:

1.- Crear el bloque CMS al que queremos llamar. En este caso llamaremos “llamada”

2.- Desde el bloque que va a ser el llamador o la página llamadora escribir lo siguiente.

 {{block type="cms/block" block_id="llamada"}}

Magento – Modificar mensaje de bienvenida – Modify wellcome message

Modificar o incluir en la plantilla el mensaje de Bienvenida de Magento no es complicado.
Lo primero y más sencillo es ver como incluirlo en la plantilla, normalmente en el header.phtml que te puedes encontrar en /app/design/frontend/default/plantilla/template/page/html
Ahí, puedes incluir la siguiente línea:

<p class="welcome-msg"><?php echo $this->getWelcome() ?> <?php echo $this->getAdditionalHtml() ?></p>

Esto, cogerá la combinación entre lo que tienes en el administrador y lo que tienes en el core.

Pongamos el caso de que cuando el cliente no está conectado quiero que salga “Bienvenido” y cuando está conectado, que le ponga “Bienvenido, Pepito Pérez”.

Para ello no tocaríamos el código de core y en el administrador podríamos poner en Sistema-> Diseño->Cabecera: Bienvenido

Si no quiero que aparezca nada cuando no está conectado, el texto del administrador de Magento lo borraremos.

Ahora, hemos decidido ser más amigables y cambiar el texto de Bienvenida y ponerlo sólo con nombre o saludando con “Hola…”.

Iremos a app/code/core/Mage/Page/Block/Html/Header.php y sin editarlo en ese sitio ya que perderíamos con los cambios de versiones, lo copiamos a app/code/local/Mage/Page/Block/Html/.

En la función getWelcome() es donde deberíamos la línea:
$this->escapeHtml(Mage::getSingleton(‘customer/session’)->getCustomer()->getName()));
por:
$this->escapeHtml(Mage::getSingleton(‘customer/session’)->getCustomer()->getFirstname()));

Magento Llamar a un bloque estático desde un phtml – Call static block in phtml

Llamar a un bloque estático desde un .phtml es bien sencillo. Sólo hay que recordar la sentencia!

Pongamos que hemos hecho un bloque estático para modificar un formulario de contacto típico de Magento y queremos que en ese bloque estático haya información de contacto de la tienda.

Primero creamos el bloque:
CMS-> Bloque estático

Imaginemos que de nombre le pusimos mas_info.

Lo guardamos y ahora editamos el fichero .phtml para insertar este código:

 <?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('mas_info')->toHtml() ?> 

Obtener un atributo de un producto en Magento

Magento tiene una gran versatilidad para la definición de productos y filtros que puede llegar a ser un suplicio a la hora de mostrarlos, si aún no se está muy preparado con el modelo de datos de Magento.

¿cómo incluir un atributo de un producto en el frontend para que el cliente lo pueda ver? Muy sencillo.

Dependiendo si es una lista desplegable (drop-down) o no, se hará de la siguiente manera:

<?php echo $_product->getAttributeText(’attribute_name’) ?>
ó
<?php echo $_product->getAttributeName() ?>

Comprueba fácilmente en la ficha de producto, view.phtml e incluye el atributo que más rabia te dé.

Es sencillo y lo verás de inmediato.

Inclusión Fecha creación Ticket – Factura Magento

Me he puesto un pelín las pilas de la cantidad de cosas que os quería contar!

Hoy hablaré de como incluir una cosa tan sencilla como la fecha de factura en una factura en Magento. Y diréis: ¿para qué esto?

Si con Magento tienes todas las formas de pago online (en ese mismo momento), no hay pegas, ya que la fecha del pedido y la de la factura coinciden, pero no es así en una transferencia no-online. Imaginemos que un cliente hace un pedido por transferencia y la transferencia no es efectiva hasta pasados un par de días. Eh ahí el problema! Tenemos fecha de pedido y factura distintos y muchas tiendas online quieren constancia de eso.

Muy sencillo, chicos!

Haremos la inclusión de la fecha de factura en los documentos, pdfs que se envía a los clientes.

Modificando el fichero Abstract.php e incluyendo la siguiente sentencia:

$page->drawText(Mage::helper(‘sales’)->__(‘Invoice Date: ‘) . Mage::helper(‘core’)->formatDate($invoice->getCreatedAtStoreDate(), ‘medium’, false), 285, 760, ‘UTF-8’);

Este fichero lo encontraremos en /httpdocs/app/code/core/Mage/Sales/Model/Order/Pdf. !Recordad no modificarlo al estar en core!

Copiarlo primeramente a /httpdocs/app/code/local/Mage/Sales/Model/Order/Pdf, con toda la estructura de directorios y en ese fichero modificarlo e incluirle la sentencia antes citada.

Validación en Magento

Cuánto tiempo amigos!

Demasiado jaleo para poder atender a todo, 😉

Os quería mostrar una posibilidad de incluir un check obligatorio para Magento:

<input type="checkbox" id="something" name="something" value="1" title="something" class="checkbox required-entry"

Esto es muy práctico para aquellos formularios o toma de contacto del cliente con la tienda online, solicitando que acepte los términos y condiciones de la tienda.