THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline


Hello,

Alors que je testais le plugin Paypal, je me suis rendu compte que lorsqu'un client annulait sa commande sur la page Paypal, les 2 mails de confirmation de commande étaient tout de même envoyés. Ce qui n'est pas vraiment logique.
Comme puis-je résoudre ce problème ?

Merci

Offline


Il faut intervenir dans le code du plugin pour modifier le moment où le mail de confirmation est envoyé.


OpenStudio Toulouse

Offline


OK,
Merci Roadster31.

P.S. :
Ce n'est tout de même pas très logique cette affaire, non ?
De mon point de vue, il s'agit presque d'un bug. :-p

Last edited by rigamarole (18-02-2015 14:07:28)

Offline


Rien ne t'empêche de poster une issue sur le GitHub du module :-)


OpenStudio Toulouse

Offline


Je pensais exactement à la même chose. :-)

Offline


Pour moi c'est aussi un bug, qui me parait très gênant.

Je n'ai pas vu de ticket github (ou je l'ai raté ?), du coup j'en ai crée un :

https://github.com/thelia/thelia/issues/1258

Last edited by griotteau (11-03-2015 17:44:52)

Offline


Hello Griotteau,
Un ticket a bien été ouvert ici : https://github.com/thelia-modules/Paypal/issues/16
Sans réponses pour le moment.

Offline


Bonjour,

C'est le fonctionnement depuis toujours, quelque soit le module de paiement utilise
Pour ma part j'indique dans l'email de confirmation de commande

Payé par :  Paypal
Statut du paiement : EN ATTENTE

et quand le status passe a 'Payee' un email de confirmation de paiement est envoye

Offline


Effectivement ZZUUTT, il s'agit du fonctionnement depuis toujours.
Mais, en faisant le compte du nombre de discussions concernant ce «problème» depuis la version Thelia 1 à aujourd'hui, on est en droit de se demander si ce fonctionnement est bel et bien pertinent.

Offline


Écrire un   plugin qui empêche l'envoi de la confirmation de commande tant qu'elle n'est pas payée est très simple.


OpenStudio Toulouse

Offline


Bonjour,

J'exhume ce fil car confronté au même problème (et j'ai déjà dû bidouiller 2 ou 3 sites Thelia 1 pour éviter ce comportement, mes précédents Thelia 2 n'ont pas paypal) ... Je regardais le code du plugin pour voir s'il y avait moyen de corriger ça.

Dans Paypal/Listener/SenEmail.php on a bien un test:

    /*
     * @params OrderEvent $order
     * Checks if order payment module is paypal and if order new status is paid, send an email to the customer.
     */
    public function update_status(OrderEvent $event)
    {
        if ($event->getOrder()->getPaymentModuleId() === Paypal::getModCode()) {
            if ($event->getOrder()->isPaid() ) {

Ce test ne signifie-t-il pas que le mail ne devrait partir que si la commande est "payée" ? Comme le mail part cela ne veut-il pas dire que la commande est passée en "payée" dès qu'on invoque le module Paypal même si personne n'a sorti la CB ?

PS: ecrire un plugin qui empêche un autre plugin, c'est possible ?
PS2: Rigamarole, quelle solution avez-vous adopté ?
PS3: les autres plugins de paiement on-ils ce comportement ? car bizarrement seul le plugin Paypal génère ces discussions sans fin ...

Pierre.

Offline


Une précision. Je voulais modifier la template des emails pour au moins mettre un truc du genre "en attente" ou "paiement en cours", mais quand je vais sur la configuration de la template email pour Paypal j'ai un Ooops dans la zone basse de la page en dessous du nom du layout HTML ...Et je ne vois pas de template email dans le dossier du module Paypal, est-ce normal docteur ?

Offline


si tu es en 2.1.5 voir ce post

Last edited by zzuutt (29-07-2015 07:37:58)

Offline


Bonjour,

j'ai le même problème (j'annule une commande paypal et je reçois un mél de confirmation de commande).

Je veux bien regarder dans le code (d'ailleurs c'est ce que je viens de faire) ou des issues/pull request sur github, mais je pense qu'il y a un vrai bug là.

Listener/SendEMail.php

    /*
     * @params OrderEvent $order
     * Checks if order payment module is paypal and if order new status is paid, send an email to the customer.
     */
    public function update_status(OrderEvent $event)
    {
        if ($event->getOrder()->getPaymentModuleId() === Paypal::getModCode()) {
            if ($event->getOrder()->isPaid() ) {

                $contact_email = ConfigQuery::read('store_email');

                if ($contact_email) {
                    $message = MessageQuery::create()
                        ->filterByName('payment_confirmation_paypal')
                        ->findOne();

                    if (false === $message) {
                        throw new \Exception("Failed to load message 'payment_confirmation_paypal'.");
                    }

EDIT: après un petit peu plus de recherche (et si le code dans Listener/SendEMail.php est correct), le problème viendrait de Controller/PaypalResponse.php qui met le status de la commande a "Paid" quand on annule...

Last edited by Asenar (01-12-2015 12:32:32)


Michaël Marinetti
arrive à Thélia doucement mais surement.
@Asenar

Offline


Non, le code du contrôleur est OK, et celui du listener aussi.

Pour ne pas envoyer le mail de confirmation au client avant que le commande ne soit réellement payée (éternelle question...), voir ici : http://thelia.net/forum/viewtopic.php?pid=68361#p68361


OpenStudio Toulouse

Offline


Bon, j'ai mis du temps mais j'ai compris le principe (du code), et j'ai pu rajouter ce qu'il fallait dans le module paypal. Merci !

Par contre le fait d'envoyer un mél de confirmation à un client alors qu'il a annulé, ça m'échappe..

De même pourquoi le bouton "réessayer le paiement" créé une nouvelle commande (à moins qu'il soit nécessaire de garder l'historique, ou que paypal ait besoin d'un order id différent)

Je note aussi (pour plus tard) que le paiement annulé utilise le même template que "une erreur est survenue dans le paiement" hmm


Michaël Marinetti
arrive à Thélia doucement mais surement.
@Asenar

Offline


L'annulation du paiement n'a rien à voir là dedans

Par défaut le mail de confirmation de commande part lorsque le client clique le bouton "Payer"

C'est justifié pour les paiements "offline" (chèque, virement), et discutable pour les paiements "online"


OpenStudio Toulouse