Personalizando los emails de Magento

Hace un tiempo, vimos como hacer para dejar la aplicación en nuestro idioma (sea cual sea).

Si prestamos atención a la carpeta de los archivos de idioma, vamos a ver que contiene una subcarpeta, llamada templates, que a su vez contiene a otra llamada email.

Dentro de ésta última, encontramos una serie de archivos html, que son las plantillas que se utilizan al enviarse un correo.

Por defecto, los mails vienen en inglés. Si bajamos la última versión de nuestro idioma, puede que consigamos traducciones de esos archivos, pero seguramente, siempre vamos a necesitar ajustarlos a la realidad de nuestro proyecto.

Para el ejemplo, vamos a tomar el mail que se envía en el formulario de contacto.

Lo encontramos en:

/app/locale/en_US/template/email/contact_form.phtml

Para empezar a conocer de qué se tratan las plantillas de email, vamos a ver qué contiene el archivo.

Name: {{var data.name}}
E-mail: {{var data.email}}
Telephone: {{var data.telephone}}
Comment: {{var data.comment}}

Como en todos los casos en donde tratemos con plantillas, las variables estan contenidas por doble llaves.

Como particularidad, las plantillas de email agregan una variable especial, que a diferencia de lo mencionado, está contenida entre comentarios html más el carcater @.

En este ejemplo vemos.

<!--@subject Contact Form@-->

Aquello que escribamos luego de subject, será el título o asunto del correo que se envíe.

El resto de las variables, creo, son bastante claras. Cada una de ellas será reemplazada por los valores correspondientes (según el controlador y el modelo que utilice cada módulo).

Con esto tenemos una primera y rápida mirada a las plantillas de correo.

Supongamos que la versión que nos brinda Magento no nos termina de servir, motivo por el cual, vamos a crear nuestra propia versión de la plantilla.

Sin importar qué modificación hagamos a la plantilla, tenemos dos formas de llevar a cabo la personalización.

Por un lado, la más sencilla, es modificar el archivo físico.

Una vez hechas las correcciones, sólo tendríamos que probar (siguiendo con el ejemplo) nuestro formulario de contacto, y el mail que recibamos, debería ajustarse a nuestros cambios.

Hasta acá, no hay nada nuevo ni necesariamente práctico.

Tenemos otra forma de personalizar nuestros mails y es la que da valor agregado.

Existe una opción en el backend, llamada Emails transaccionales (o Plantillas de email, según la traducción), que nos permite generar nuestras propias (valga la redundancia) plantillas de mails.

La opción está disponible en Sistema -> Plantillas de email.

Listado de plantillas de correo en Magento

Como siempre, lo que aparece es la ya tan familiar grilla. Magento provee de una de ejemplo, pero vamos a crear nuestra primer plantilla.

La única pantalla posible que se nos ofrece, presenta las siguientes opciones.

Componiendo una nueva plantilla de correo en Magento

Rápido repaso al formulario.

El primer bloque nos permite elegir una plantilla ya existente para que podamos tomar como ejemplo. Esto es sólo una opción que podemos saltear.

Preselección de plantilla de ejemplo para los correos en Magento

El segundo bloque, ya hace referencia a la composición de la plantilla en si misma.

Los campos son bastante claros.

  • Nombre: es el que identificará a la plantilla en el backend.
  • Asunto: el mostrado en los mails cuando se recepcionen.
  • Contenido.

En éste ejemplo, estoy copiando el contenido de la plantilla original de Contacto, aplicando una muy sencilla traducción.

Composición de la plantilla de correo en Magento

Las variables indicadas entre {{ }}, son las que Magento reconocerá y reemplazará por la información correspondiente.

Además de guardarlo, podemos especificar (en la botonera superior), si el mail se enviará en formato texto o html.

Opciones de la plantilla de correo en Magento

Una vez guardada nuestra plantilla, vamos a configurar la plataforma para que la utilice.

Para esto vamos a Sistema -> Configuración y luego a Contactos.

Cuando ingresemos, vamos a ver las opciones por defecto que nos oferece Magento.

Configuración del correo de Contacto en Magento

Podríamos, si quisiéramos, deshabilitar el formulario (pero no es el caso).

Luego tenemos para configurar a qué dirección de correo se va a enviar el mail, desde qué dirección se enviará (el remitente), y qué plantilla se var a usar.

Vemos que por defecto dice: «Default Template from Locale» (más tarde vamos a volver sobre este detalle).

Configuración personalizada del correo de contacto en Magento

Para poder cerrar el ejemplo, configuré la dirección a la que quiero que me llegue el mail, con qué dirección como remitente, y en el caso de la Plantilla, al desplegar las opciones, ya tengo disponible la que había creado.

Guardamos, y sólo nos resta probar nuestro formulario de Contacto desde el front. Así de sencillo podemos personalizar el correo.

Tanto si usamos la modificación del archivo físico, como si utilizamos el gestor de plantillas de correo, vamos a tener ventajas y desventajas.

Si bien prefiero el segundo método, tiene como contra que si vamos a tener nuestra tienda en dos idiomas, tendríamos que crear (si bien no es obligatorio, pero sería más correcto) dos plantillas, una para cada caso.

Luego, al entrar en la configuración, deberíamos cambiar el alcance de la configuración para poder indicarle que para una Vista utilice una plantilla, y para la segunda, una nueva.

En este caso, resulta, en primera instancia, más sencillo modificar físicamente los archivos y dejar la opción «Default Template from Locale». Con ésta opción, le estamos diciendo que tome la plantilla que pertenece al idioma de la Tienda (o de la Vista).