Julien Posted June 4, 2021 Share Posted June 4, 2021 (edited) Bonjour à tous, Habituellement je ne poste pas grand chose et j'essais de me débrouiller mais la j'ai vraiment besoin d'aide. J'ai besoin de créer un template d'email depuis un module sous PrestaShop 1.7.7. En regardant la documentation développeur j'ai trouver cette solution, en utilisant un hook: public function hookActionListMailThemes(array $hookParams) { if (!isset($hookParams['mailThemes'])) { return; } /** @var ThemeCollectionInterface $themes */ $themes = $hookParams['mailThemes']; /** @var ThemeInterface $theme */ foreach ($themes as $theme) { if (!in_array($theme->getName(), ['classic', 'modern'])) { continue; } $theme->getLayouts()->add(new Layout( 'clictill_template', __DIR__ . '/mails/layout/clictill_template.html.twig', '', $this->name )); } } Avec un template très simple, juste pour tester que tout fonctionne (monmodule/mails/layout/clictill_template.html.twig): {# modules/clictill/mails/layout/contact.html.twig #} {% extends '@MailThemes/classic/components/layout.html.twig' %} {% block content %} <div> <p>Test</p> </div> {% endblock %} Jusque là, je n'ai aucun soucis, mon email s'affiche dans mon panel admin "Apparence > Thème d'email", et je peux le visualiser : Mais lorsque j'essais de l'appeler depuis mon code de cette façon: Mail::Send( (int)(Configuration::get('PS_LANG_DEFAULT')), // defaut language id 'clictill_template', // email template file to be use $title, // email subject array( '{email}' => Configuration::get('PS_SHOP_EMAIL'), // sender email address '{message}' => $listErrorsMessage // email content ), $email, // receiver email address NULL, //receiver name NULL, //from email address NULL, //from name NULL, NULL, _PS_MODULE_DIR_.'clictill/mails/' ); J'ai une erreur "Erreur - Le modèle d'e-mail suivant n'existe pas : clictill_template"... Je cherche depuis plusieurs heures et je ne trouve pas de solution.. Quelqu'un aurait une idée ? Merci d'avance ! Julien Edited June 5, 2021 by Julien (see edit history) Link to comment Share on other sites More sharing options...
hhennes Posted June 4, 2021 Share Posted June 4, 2021 Bonjour, Question bête mais est-ce que les fichiers suivants existent bien dans votre module ? ( Je suppose que vous envoyez les emails en langue fr ) mails/fr/clictill_template.html mails/fr/clictill_template.txt Ce sont ces fichiers et non le .twig que la fonction va utiliser pour envoyer le contenu. Le reste de votre code semble bon. Cordialement, Hervé Link to comment Share on other sites More sharing options...
Julien Posted June 5, 2021 Author Share Posted June 5, 2021 (edited) Bonjour HHennes, merci pour ta réponse, je n'avais pas vu ces explications sur la documentation technique: - https://devdocs.prestashop.com/1.7/modules/concepts/mail-templates/add-a-layout-from-module/ -https://devdocs.prestashop.com/1.7/modules/concepts/mail-templates/ Je n'avais qu'un template html.twig dans mon répertoire "mails/layout" Je vais me renseigner plus en détails, je garderai ce post à jour si je trouve ou non une solution. Si tu as un lien vers une documentation expliquant tout ca, je suis preneur car je ne trouve rien de concret dans la documentation développeur Prestashop. J'ai suivi beaucoup de tes explications techniques sur ton site internet. Ca m'a beaucoup aidé , donc merci pour tes partages ! Julien Edited June 5, 2021 by Julien (see edit history) Link to comment Share on other sites More sharing options...
Julien Posted June 5, 2021 Author Share Posted June 5, 2021 Encore une fois, ton site m'a sauvé ! Effectivement il suffisait de créer les fichier html et txt dans le dossier mails/fr de mon module. Solution trouvé sur : https://www.h-hennes.fr/blog/2021/02/01/prestashop-gerer-les-emails-dans-vos-modules/ Merci, Bonne journée ! Link to comment Share on other sites More sharing options...
hhennes Posted June 7, 2021 Share Posted June 7, 2021 Bonjour Julien, Ravi que mon article ait pu t'aider à comprendre ton problème. J'avais songé à le mettre tout de suite mais j'évite mettre trop de liens vers mon blog dans mes réponses sur le forum, sinon on va croire que je ne poste que pour ça Bonne journée, Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now