Jacques Bodin-Hullin Développeur d'applications Web

La perfection est atteinte non quand il ne reste rien à ajouter, mais quand il ne reste rien à enlever.

Antoine de Saint Exupéry

Les emails customs sur Magento

Qui n'a pas voulu envoyer un email personnalisé rapidement via Magento ?

Les utilisations sont variées :

  • Offrir un code promo à l'inscription
  • Informer le visiteur que son inscription à votre jeu concours est prise en compte
  • Annoncer au client que vous venez de lui offrir un produit pour sa prochaine commande car c'est son anniversaire
  • ...

Vous voulez faire ça ? Allez.. je vous aide :)


Le but de ce tutoriel est de vous montrer comment envoyer un email simplement depuis votre application.

Il s'agit d'envoyer un email transactionnel, pas une newsletter !

On va donc envoyer un email comprenant quelques informations sur le client (son nom par exemple) ainsi qu'un petit message.

Le mail

Sans trop se prendre la tête, voici le mail que nous voulons envoyer :

Bonjour {name},

Aujourd'hui est un jour spécial.

Toute l'équipe de {nom de la boutique} vous souhaite un joyeux anniversaire !

A bientôt sur notre boutique,

L'équipe de {nom de la boutique}

En soit rien de compliqué, si ?

Nous utiliserons un email au format texte. Vous verrez qu'il ne sera pas bien compliqué de transformer ce mail dans une version colorée en HTML.

C'est quoi son nom ?

Pour bien comprendre le truc, il faut que nous donnions un nom à notre email.

On va donc prendre le nom de notre module (Jbh_Demo) et y ajouter le mot email avec à la fin le nom "réel" de notre email : happyday.

    jbh_demo
             email
                   happyday
==> jbh_demo/email/happyday
==> jbh_demo_email_happyday

Ok... Mais l'identifiant qu'on vient de créer, il sert à quoi ?

Le premier c'est l'identifiant de la configuration qui permettra d'échanger l'email en dur (dans le fichier html) avec un email créé manuellement (via l'admin).

Le second c'est l'identifiant de notre email, en général.

La config

Editons notre fichier /app/code/local/Jbh/Demo/etc/config.xml.

Une partie template dans global consiste à indiquer à Magento que nous avons un nouvel email transactionnel dans l'application.

La partie default permet d'avoir en config l'identifiant de notre email. Vous remarquerez que la hiérarchie de la configuration par défaut suit parfaitement le schéma expliqué un peu plus haut : jolie_demo > email > happyday.

N'oubliez pas le fichier /app/etc/modules/Jbh_Demo.xml :)

Notre fichier email

Editons notre fichier /app/locale/fr_FR/template/email/jbh_demo/happyday.html :

Nous avons besoin de respecter la syntaxe des emails sur Magento :

  • Un titre avec la balise <!--@subject Jouyeux anniversaire ! @-->
  • Un style optionnel avec la balise <!--@styles ... ici mon css ... @-->
  • Un contenu avec ou sans variables

Je vous laisse le soin de regarder les autres emails pour comprendre l'utilisation des variables. Ici nous feront juste en sorte que nos textes soient protégés.

Notre modèle

Editons maintenant notre fichier /app/code/local/Jbh/Demo/Model/Email.php :

Il s'agit d'un simple modèle avec une méthode qui envoie un email au client passé en paramètre.

On notera la présence de deux constantes. Comme on le fait dans Magento, on utilise des constantes pour indiquer les chemins vers les variables de configuration. Ici nous avons les chemins vers le template et l'expéditeur du mail.

Et ensuite ?

Bah ensuite... il faut utiliser notre modèle !

<?php

/ @var $customer Mage_Customer_Model_Customer /

Mage::getSingleton('jbh_demo/email')->happyday($customer);

Voilà ! Vous savez maintenant créer des emails rapidement. Rien de bien compliqué en fait !

Vous avez des questions ? Des remarques ? Les commentaires sont là pour ça.


Commentaires

blog comments powered by Disqus

Quelques infos

Contact

Mon QRcode

le QRcode