Si bien este módulo no es nada nuevo y lleva ya un buen tiempo dando vueltas por GitHub (y también en varios proyectos), surgió como una forma de armar grupos de productos a destacar sin perder de vista que debía ser muy fácil de administrar pero, a su vez, ser amigable con el desarrollador que debiera implementarlo.
Por defecto, Magento sólo nos permite implementar los productos nuevos. Por eso existen infinidad de módulos que nos permiten armar los famosos Productos Destacados.
La pequeña diferencia de este módulo radica en que lo que se arman son grupos con total arbitrariedad y que luego etiquetaremos de acuerdo a lo que necesitemos mostrar en la tienda.
Dc_FeaturedProduct agrega nuevas opciones al menú CMS.
Allí encontraremos dos opciones.
La primera, Grupos, nos mostrará, como siempre, una grilla.
El siguiente pasó será crear nuestro primer grupo.
En el primer tab indicaremos el nombre, que nos servirá como referencia interna, mientras que el segundo tab nos permite asignar los productos de dicho grupo.
Aquí podemos hacer búsquedas hasta encontrar los productos que necesitemos. Por ejemplo:
Sólo debemos marcarlos en la primera columna y guardar nuestro grupo.
Y con esto hemos creado nuestro primer grupo.
Lo siguiente, ya veremos por qué, será revisar qué templates tenemos disponibles. Para eso, recurrimos al menú nuevamente.
Aquí, nuevamente, veremos una grilla que nos listará todas las plantillas que pudiéramos tener disponibles.
Por defecto, el módulo instala la única disponible out-of-the-box. Si necesitamos crear una nueva (o editar la actual) veremos este formulario.
El Nombre funciona como referencia interna, mientras que el campo Archivo es el path dentro de nuestro theme al phtml que mostrará la información.
La intención de esta parte del módulo es ayudar a que cualquier pueda crear un nuevo template y sumarlo al repositorio de su proyecto, y luego, simplemente, referenciarlo.
Una vez que hayamos creado nuestros grupos y templates, vamos a ir al paso final (al que nos va a permitir mostrar el contenido en la tienda).
Dc_FeaturedProduct implementa el contenido a través de un widget. Para esto, vamos a tomar la home como ejemplo y vamos a editar el contenido.
En este caso, ya tengo implementado un widget, pero ahora agregaré otro más.
El widget nos permite seleccionar:
- Qué grupo vamos a utilizar
- Qué plantilla será la encargada de mostrar los productos
- Un título (que es opcional)
- Cantidad de productos a mostrar (esto es opcional también y nos permite mostrar menos productos que la cantidad que tenga el grupo asignados)
- Ordenar según se haya organizado el grupo, por nombre, por precio o de forma aleatoria
- Finalmente, si el orden establecido anteriormente será ascendente o descendente
Mi ejemplo quedaría así:
Mi grupo tiene 3 productos pero sólo mostraré 2, y los ordenaré de forma aleatoria.
Insertamos el widget.
Y ahora revisamos cómo ha quedado nuestra Home.
Como puede verse, ya aparecen 2 productos de mi grupo, con el nombre que le asigné al widget, y debajo de otro widget (el de arriba es el slider de Dc_Slider).
Si se recarga la página, la lista de productos, ha de cambiar.
Y eso vendría siendo todo, aunque hay algunos puntos a tener en cuenta:
- Dado que son widgets, podemos tener en una misma página, múltiples instancias del mismo widget, incluso con el mismo template.
- De forma gráfica, los widgets pueden usarse en cualquier página CMS. Esto nos permitiría crear landing pages de forma bastante rápida.
- El módulo es compatible con la versión EE de Magento. Sólo cuando se utiliza el ordenamiento aleatorio, el módulo crea un hole punch en el FPC.
- No hay límite de productos ni de plantillas.
Como comentaba al comienzo, más allá de mostrar productos, las premisas más fuertes que busca resolver el módulo son:
- Que cualquier usuario pueda generar grupos de la forma más sencilla posible.
- Que cualquier desarrollador frontend pueda adaptar el módulo a cualquier diseño que se le presente, sin perder compatibilidad con el módulo.
Para más detalles del módulo, repositorio, etc, etc, aquí la página de Dc_FeaturedProduct para Magento.