Sobreescribir templates en Magento desde el layout

Una de las grandes bondades (y de los grandes problemas en el comienzo de la curva de aprendizaje) es el manejo de los templates a través de las definiciones xml del layout.

Normalmente, cuando trabajamos con un skin desde el comienzo, más allá de las líneas de diseño que puedan existir, tenemos bastante libertad de elección en la forma en que se va estructurar ese theme.

Ahora bien, cambia radicalmente el escenario cuando nos dedicamos a crear extensiones o cuando ciertas customizaciones que hayamos desarrollado se tornan parte de la batería de módulos y ajustes que usamos en cada proyecto.

Si para cada caso debiéramos estar modificando los archivos phtml, los xml, el css… bueno, sería bastante molesto y estaríamos dejando de tener código reutilizable.

A través de las definiciones de layout podemos aplicar cambios al momento de renderear el template sin hacer modificaciones a los archivos que ya se estén usando. En realidad, hay unas cuantas cosas que pueden hacerse, pero dada la cantidad de funciones con las que contamos para el manejo del layout, sólo me voy a centrar en el reemplazo de llamadas a los phtml.

Seguir leyendo «Sobreescribir templates en Magento desde el layout»

Configuración gráfica para un cron job en Magento

Siempre que se habla de crear cron jobs para un módulo en Magento, se explica cómo configurar el crontab y el xml del módulo.

Si bien vamos a lograr el objetivo, esto siempre obliga a quien administra el proceso a estar editando un archivo y corrigiendo los tiempos de ejecución.

De ésta forma no sólo estamos ante una situación incómoda sino que, además, podríamos estar comprometiendo la integridad del módulo.

Voy a dar por sentado que ya nuestro cron job funciona como queremos y que hemos creado la configuración de otros parámetros del módulo. Sólo nos vamos a concentrar en agregar la configuración gráfica para la ejecución.

Ahora bien, el primer paso es crear un nuevo modelo que será el encargado de transformar los valores que ingresemos en la configuración a valores que el Cron Manager de Magento entienda.

Seguir leyendo «Configuración gráfica para un cron job en Magento»

Crear un cron job en Magento

Muchas veces vamos a necesitar procesos que se ejecuten sin importar si del otro lado de la pantalla hay algún usuario realizando alguna acción.

Por lo general éste tipo de tareas tienen que ver más con procesos administrativos que con la experiencia de compra en si misma.

Una de las funcionalidades de Magento es el cron, que no es más que una extensión del cron del sistema operativo. La pequeña diferencia sería que desde el sistema operativo ejecutamos un único archivo de la plataforma y ésta, según configuraciones, se encargará de correr los procesos que correspondan.

Un cron job para Magento es, básicamente, un método de un modelo que se encargará de realizar una acción.

Seguir leyendo «Crear un cron job en Magento»

Cómo crear un renderer para las grillas en Magento

Si bien tanto para los formularios como para las grilla Magento nos provee de una serie de tipos listos para usar, en algunas oportunidades nos hará falta alguna nueva funcionalidad.

En el caso de las grillas, es bastante sencillo agregar un nuevo tipo de columna.

Normalmente, cuando nuestro formulario permite subir archivos, el resultado en la grilla sería el siguiente.

Grilla por defecto en el backend de Magento

La columna filename se muestra como texto, pero en realidad es una referencia a un archivo que nos gustaría poder ver como imagen.

Seguir leyendo «Cómo crear un renderer para las grillas en Magento»

Dropdowns en los formularios de backend de Magento

Uno de los ejemplos que el creador de módulos de Magento no incluye para el caso de los formularios del backend, es el del uso de dropdowns que deben ser llenados con valores de algún modelo que referencia a una tabla.

Por defecto, nos encontramos con esto.

Dropdown en un formulario de backend en Magento

Para lograrlo, el código que se utiliza en la composición del formulario es el siguiente.

Seguir leyendo «Dropdowns en los formularios de backend de Magento»