Enviar un correo con plantilla personalizada en Magento

Muchas veces puede ser de gran utilidad mandar un correo al cliente para notificarle de alguna novedad, alguna modificación realizada en su perfil, algún cambio en el estado del pedido, etc.
Para ello podemos dar formato a dicho correo para que tenga un aspecto visual llamativo y que resalte el contenido que queremos transmitir. Magento toma plantillas html para el envío de correos, esta plantillas las podremos encontrar en la carpeta:
App/locale/nuestroIdioma/template/email/…
Bueno si abrimos por ejemplo la plantilla de una cuenta nueva del cliente en el navegador veremos algo parecido a esto:

Plantilla de  un email

Magento sustituye los campos de {{var Variable}} por su valor para el cliente en cuestión.
El siguiente paso es comentar que modificaciones realizar a mi extensión para poder mandar correos. Llegado a este punto supongo que esta modificación la querras realizar sobre una extensión que andes desarrollando o puedes realizar una mini extensión únicamente para probar esto.
Vayamos a app/code/local/MiPaquete/MiModulo/etc/config.xml
Bajo el tag vamos a tener la configuración global de los elementos de nuestra extensión, dentro de el deberemos de añadir un nuevo tag bajo la etiqueta de de la siguiente manera:

  1.  
  2.  
  3. <label>Etiqueta de la plantilla</label>
  4. nombre_plantilla.html
  5. html

Lo siguiente es mandar este correo desde nuestro código php de Magento, para realzar un simple ejemplo podemos utilizar un contoller, y crear un IndexAction(), fácil que solo realice esta operación, ya que esta operación va a ser muy cómoda de ejecutar mediante la url correspondiente.

  1. IndexAction(){
  2. $plantilla = 'ruta/plantilla/dentro/locale';
  3. $this-&gt;_emailModel = Mage::getModel('core/email_template');
  4. $remitente = array(
  5. 'name' =&gt; 'nombre',
  6. 'email' =&gt; correo
  7. );
  8. $mensaje='contenido del correo';
  9. $nombreDestinatario='davidselo';
  10. $subjet='Asunto del correo';
  11. $this-&gt;_emailModel-&gt;setDesignConfig(array('area'=&gt;'frontend', 'store'=&gt;$this-&gt;getStoreId()))-&gt;sendTransactional(
  12. Mage::getStoreConfig($plantilla),
  13. $remitente,
  14. $emailDestinatario,
  15. $nombreDestinatario,
  16. array(
  17. 'name' =&gt; $this-&gt;_names[$key],
  18. 'subject' =&gt; $subject,
  19. 'message' =&gt; $message,
  20. )
  21. );
  22.  
  23. }

Estos son los conceptos básicos para poder realizar un envío mediante tu tienda Magento, algunos de los ejemplos de extensiones que le podría venir bien el tema del envío o que complementarian la extensión:
extensión con un cron que mande un correo al pasar 24 horas de un pedido en pendiente, preguntando al cliente si ha sucedido algún error con el pago.
Extensión que invite a amigos a nuestra tienda mediante el envío de un email.
Extensión que recuerde te envie un correo cuando tienes un carrito abandonado, ofreciendote algún tipo de descuento.
Espero que te ayude el contenido del post.

6 comentarios sobre “Enviar un correo con plantilla personalizada en Magento”

  1. Qué tal Selo?? no conocía yo esto de Magento, la verdad es que se ve muy interesante, me guardo tu blog por si en un futuro decido usarlo, que lo tendré en cuenta,
    saludos máquina!!!

    1. Pues si estas vinculado al mundo del ecommerce yo te lo recomiendo plenamente, es una herramienta de software libre muy potente y muy flexible, si quieres empezar en el tema la primera entrada que tengo vienen manuales y referencias bastante buenas. Vamos Ánimo!! 😛

  2. Hola davidselo.

    Primero de todo, gracias por tu blog, me está ayudando muchísimo. Segundo, necesito contactar contigo pero en el blog no encuentro tu correo.

    Puedes tú contactar conmigo?.

    Muchas gracias por compartir tus conocimientos.

  3. Hola,
    El diseñador de mi tienda me ha puesto un link oculto en el pie de mi página principal, no me aparece el texto en la configuración/diseño/ pie de pag Dónde puede estar? me gustaría quitarlo (encima me lo ha puesto para q se abra en la misma ventana) gracias

    1. Buenas , lo primero que deberías de hacer es que cada persona que realice cualquier modificación sobre tu tienda documente dicho cambio,si luego vas a ser tu el que se va responsabilizar de realziar los cambios y nada comentarte que hay que buscar donde ha realizado el cambio tu diseñado, pero lo mas probable es que haya dado con el footer.phtml en la carpeta app/design/frontend/*/*/template/page/html/footer.phtml. espero que te haya servido de ayuda, para cualquier cosa, solo tienes que preguntarla. Un saludo

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *