Lors des précédentes versions de Magento, les emails de confirmation de commande étaient envoyés immédiatement par la fonction sendNewOrderEmail().

Pratique pour les tests en pré-production lors des mises à jour de version.

Après de longues minutes heures à chercher ce qui posait problème sur l’un de nos Magento avant le lancement en production, voici quelques conseils qui peuvent vous faire gagner du temps :

La fonction queueNewOrderEmail() gère désormais l’envoi des emails de confirmation de commande. Comme son nom le laisse supposer elle stocke les emails à envoyer.

Ceux-ci sont stockés au sein de deux nouvelles tables de la base de donnée :

  • core_email_queue
  • core_email_queue_recipients

La dernier champ de la table core_email_queue, “processed_at” contient les informations sur l’envoi : l’heure à laquelle l’email a été traité sous la forme AAAA-MM-JJ HH:MM:SS ou NULL si l’email n’a pas encore été envoyé.

Si tous les champs sont à NULL, c’est surement que votre CRON n’est pas encore passé ou qu’il est mal configuré.

Pensez à vérifier, surtout si vous utilisez une copie du site sur un serveur de développement ou les tâches CRON ne sont pas configurées.

Pour en savoir plus
===============
Recherchez “Magento Order Email Notification not sent to customer and to admin” ou “sales email cron job not sending (1.9)” sur Google.

PACCOU
Alexandre
Chef de projet web