Jump to content

Ne pas envoyer l'email de Confirmation de commande


fred04

Recommended Posts

Bonjour,

 

Version utilisée 1.5

 

Je passe certaines commandes téléphoniques de mes clients dans le BO.

Je ne veux pas envoyer l'email de confirmation de commande, j'ai donc créé un nouveau statut de commande "Commande saisie par le service client" dans lequel j'ai désactivé l'option "Envoyer un e-mail au client lorsque l'ordre est changé à cet état". Je passe dès la création de commande ce statut et aucun autre avant, pour autant l'email est toujours envoyé ...

 

Savez-vous s'il est possible de ne pas envoyer cet email ?

 

D'avance merci.

Cdt, Fred

Link to comment
Share on other sites

Bonsoir;

Il faudrait regarder directement dans la base de données si dans la table ps_order_state à la ligne correspondant à ce statut la colonne send_email est bien à 0. Si elle est à 1, il faut le changer pour que l'email ne soit pas envoyé.

Link to comment
Share on other sites

  • 2 weeks later...
  • 2 months later...

J'ai peut-être trouvé une solution.

Il faut aller dans le fichier classes>PaymentModule.php

et repérer PS_OS_CANCELED. Il y est deux fois. Et d'après moi il faut faire la modif pour les deux.

 

La ligne de code dit que si on a pas d'erreur de commande ET qu'on a pas le statut annulé, on envoie un mail. Tu dois donc pouvoir facilement modifier par, en gros et en français! :

" (ET qu'on a pas le statut annulé OU le statut saisie par le service client) "

 

Je n'ai pas eu le temps de tester. Moi je ne voulais pas du tout d'envoi, en aucun cas, alors j'ai remplacé par toto et ça n'envoie effectivement plus de mail au client lors des commandes passées.

Link to comment
Share on other sites

  • 2 months later...
  • 3 months later...

Bonjour à tous,

 

J'ai trouvé une solution qui semble fonctionner via mes nombreux tests.

J'ai comme conseillé plus haut, ajouter une conditions supplémentaire à l'envoi de la confirmation de commande (order_conf).

 

Sous Prestashop 1.5.6.2.

 

dans /classes/PaymentModule.php vers la ligne 550-600 :

// Send an e-mail to customer (one order = one email)
                    if ($id_order_state != Configuration::get('PS_OS_ERROR') && $id_order_state != Configuration::get('PS_OS_CANCELED') && $this->context->customer->id)

en

// Send an e-mail to customer (one order = one email)
                    if ($id_order_state != Configuration::get('PS_OS_ERROR') && $id_order_state != Configuration::get('PS_OS_CANCELED') && $this->context->customer->id && $id_order_state != Configuration::get('PS_OS_CDE_MANUELLE'))

"PS_OS_CDE_MANUELLE" étant le nom d'une configuration que j'ai ajouté dans la table "ps_configuration" avec pour valeur l'id d'un statut de commande spécial pour la création de commandes via le BO.

X1 | NULL | NULL | PS_OS_CDE_MANUELLE | X2 | 0000-00-00 00:00:00 | 0000-00-00 00:00:00

X1 = ID de la configuration et X2 = ID du statut de commande spécial

 

Donc lors d'une commande que j'effectue via le BO, je choisi comme 1er Statut de commande mon statut spécial (exemple : Commande manuelle) et la commande est créé sans envoyer le mail de confirmation de commande.

 

Enjoy !

  • Like 1
Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...