Toutes les clefs pour réussir dans le e-commerce

Mes modules Prestashop

Recevoir un email lorsqu’un commentaire est déposé sur la boutique

Si comme moi vous utilisez le module productComment livré par défaut avec prestashop vous avez sans doute constaté que rien n’était prévu pour être averti lorsqu’un commentaire était déposé sur la boutique. Je trouve cela particulièrement dommage car cela implique de venir régulièrement ouvrir le module pour vérifier si un nouveau commentaire a été posté.

Voici donc une solution pour faire en sorte qu’un email vous soit automatiquement envoyé lorsque l’un de vos clients dépose un commentaire.

Dans le fichier “modules/productcomments/controllers/front/defaut.php” repérez le code suivant (ligne 120 environ):


if (count(Tools::getValue('criterion')) >= 1)
				{
					$comment->grade = $grade_sum / count(Tools::getValue('criterion'));
					// Update Grade average of comment
					$comment->save();				
				}

Et ajoutez ceci à la suite:


//send mail
$donnees = array('{texte}' => "nouveau commentaire sur la boutique");
Mail::Send((int)Context::getContext()->language->id,
	'newcomment',
	'nouveau commentaire',
	$donnees,
	Configuration::get('PS_SHOP_EMAIL'),
	null,
	null,
	null,
	null,
	null,
	dirname(__FILE__).'/../../mails/');

Créez ensuite un dossier “modules/productcomments/mails/” et ajoutez y un sous dossier par langue de votre boutique. Chaque dossier doit utiliser le code ISO de la langue c’est à dire “fr” pour “français”, “en” pour “english”, etc.
Créez ensuite les fichiers “newcomment.html” et “newcomment.txt”, placez-les dans les dossier de langue que vous venez de créer et ajoutez y le code suivant (dans les deux fichiers html et txt):


{texte}

Voila désormais lorsqu’un utilisateur déposera un commentaire sur votre boutique vous en serez averti.

Ps: cette modification touche directement au fichier du module, cela signifie qu’éventuellement lors d’une mise à jour vos modifications seront écrasées.

Ps2: J’ai fait cette modification sur une version 1.5.4.1 de Prestashop.

La solution est alors de faire un override des fichiers php du module. Ceci n’est pour l’instant pas prévu par Prestashop il faut utiliser cette solution

/*** edit 09/07/13 ***/

Devnet m’a suggéré une petite amélioration via le forum de Prestashop.
Je vous la met donc ci-dessous:
Dans le fichier “defaut.php” remplacez le code suivant:


$donnees = array('{texte}' => "nouveau commentaire sur la boutique");

par :


$donnees = array(
    '{texte}' => $module_instance->l('New comment available'),
    '{content}' => $comment->content,
    '{id_product}' => $comment->id_product,
    '{id_customer}' => $comment->id_customer,
    '{customer_name}' => $comment->customer_name,
    '{title}' => $comment->title,
    '{grade}' => $comment->grade
   );

et dans les fichiers newcomment.html et newcomment.txt remplacez:


{texte}

par


{texte}
{content}
{id_product}
{id_customer}
{customer_name}
{title}
{grade}

Vous récupérerez ainsi le contenu du commentaire et des infos sur le client, merci Devnet !

*** EDIT 09/08/13 ***
Apparemment plsuieurs personnes n’arrivent pas à ajouter le code où il faut donc voici ce que cela donne une fois modifié:


if (count(Tools::getValue('criterion')) >= 1)
				{
					$comment->grade = $grade_sum / count(Tools::getValue('criterion'));
					// Update Grade average of comment
					$comment->save();
				}
				//send mail
				$donnees = array(
					'{texte}' => $module_instance->l('New comment available'),
					'{content}' => $comment->content,
					'{id_product}' => $comment->id_product,
					'{id_customer}' => $comment->id_customer,
					'{customer_name}' => $comment->customer_name,
					'{title}' => $comment->title,
					'{grade}' => $comment->grade
				);				
				Mail::Send((int)Context::getContext()->language->id,
						'newcomment',
						'nouveau commentaire',
						$donnees,
						Configuration::get('PS_SHOP_EMAIL'),
						null,
						null,
						null,
						null,
						null,
						dirname(__FILE__).'/../../mails/');
				
				$result = true;

Retrouvez deux autres améliorations pour ce module ci-dessous:
Alerte email lorsqu’un commentaire est déposé
5 Etoiles par défaut sur vos commentaires

Poster un Commentaire

18 Commentaires sur "Recevoir un email lorsqu’un commentaire est déposé sur la boutique"

Recevoir un email pour
avatar
Trier par:   plus récent | plus vieux | Plus de vote
philippe
Invité

Bonjour,

Cela tourne sur quelle version de prestashop car je n’ai pas cela dans mon code.

merci

Crg
Invité
Crg

Bonjour et merci vivement pour ce code. Cela fonctionne parfaitement. Je vais maintenant y ajouter un peu de html pour le rendre plus agréable à l’oeil!
PS 1.5.4.1

florian
Invité

bonjour, j’ai essayé votre methode mais celà ne fonctionne pas chez moi…
Les commentaires sont bien posté mais je ne reçois pas d’Email…
actuellement en 1.5.3.1
j’ai bien remplacé tout les champs dont vous avez parlé.
Mais je n’ai pas fait d’override car de ce que j’ai compris c’est uniquement si l’on met a jour le module ?!
faut t’il faire l’override pour que celà fonctionne ou pas ?
merci d’avance

florian
Invité

j’utilise Gmail et je n’ai pas de probleme avec des mail de moi meme :) j’utilise deja un formulaire qui me renvoi a moi meme des mail :) donc celà ne viens pas de là.

je doit remplacer :
Configuration::get(‘PS_SHOP_EMAIL’),

par:
Configuration::get(‘blahblah@blah.com’),

???

pour ce qui est de l’override je n’en est pas besoin pour l’heure?

florian
Invité

je viens de faire le test mais rien de plus :/

florian
Invité

bonjour, j’ai effectivement le meme code j’ai mais récupéré ton fichier mais celà ne marche pas plus… je pense il doit y avoir une petite variation…
comment peut on faire pour connaitre l’erreur ?

florian
Invité

Solution trouvée !! merci a toi pour ton implication ! tu as donné la solution sur le forum mais je te laisse le soin de la présenter ici !! encore bravo !

Jerome
Invité
Jerome

Bonjour,

La manip est-elle aussi valide pour la 1.6.0.6 ?

J’ai essayé de mon côté, mais sans succés.

Xavier
Invité
Xavier

Bonjour,
je n’arrive pas à recevoir le mail sur la version 1.6.0.14.
Cordialement.

Xavier
Invité

C’est bon, cela fonctionne sur la version 1.6.0.14.

Ne pas oublier de mettre le dossier “fr” dans le dossier “mails” :)

Un grand merci!

Ava
Invité
Ava

Bonjour et mille mercis pour ce tuto très utile qui fonctionne parfaitement !

J’ai eu un petit soucis lorsque j’ai mis mon adresse mail directement à la place de la ligne « Configuration::get(‘PS_SHOP_EMAIL’) » car celle-ci n’était pas reconnue par Prestashop, je m’en suis aperçu en testant cette même adresse dans “Paramètres avancés” / “Emails”. Ayant mis pas mal de temps à trouver d’où venait le problème, je préfère partager au cas où quelqu’un rencontre la même difficulté.

wpDiscuz