Magento – Paiement paypal annulé et vider le panier

Un problème, qui était dès le commencement dans Magento, a été l'ennuyeux panier vide annulé un paiement à un processeur de paiement externe comme. PayPal.

Il fonctionne comme ceci:

Le client remplit le panier et procéder au paiement. Là, il sélectionne PayPal comme méthode de paiement, puis achève l'ordre. Il va maintenant être redirigé vers PayPal, où ils peuvent effectuer le paiement.

Mais il ya malheureusement un problème avec PayPal. Le problème le plus fréquent est une donnée de connexion incorrectes ou des données oubliées. Cependant, le client annule le paiement de PayPal et cliquez sur “Annuler et retourner à [Boutique]”.

Maintenant, il s'agit malheureusement d'un panier vide et doit rendre l'ordonnance de nouveau.

Ici, il existe deux problèmes:

1. Le client doit faire l'effort de compléter nouvel ordre (et malheureusement, il ont peu de clients comme)

2. Cela crée une commande annulée dans le backend.

Problème 1 Toutefois, les rel OnePageCheckout normales. être facilement résolu. Il existe plusieurs approches, J'ai décidé pour celui-ci:

Copiez le fichier de OnepageController.php à partir du répertoire app / code / core / Mage / Commander / controllers / dans le répertoire app / code / / Mage / Commander / contrôleurs locaux /

Ensuite, cherchez la ligne

        $ce->getOnepage()->getQuote()->sauver();
        /**
         * quand il est rediriger à un tiers, nous ne voulons pas enregistrer pour l'instant.
         * nous sauverons l'ordre dans l'action de retour.
         */
        si (isset($redirectUrl)) {
            $résulter['réorienter'] = $ RedirectUrl;
        }

        $ce->avoir une réponse()->setBody(Mage::assistant('coeur')->jsonEncode($résulter));
    }

et remplacer par

//        $ce->getOnepage()->getQuote()->sauver();
/**
 * quand il est rediriger à un tiers, nous ne voulons pas enregistrer pour l'instant.
 * nous sauverons l'ordre dans l'action de retour.
 */
        si (isset($redirectUrl)) {
          $résulter['réorienter'] = $ RedirectUrl;
          $ce->getOnepage()->getQuote()->setIsActive(1) ;
          }
          $ce->getOnepage()->getQuote()->sauver();
          $ce->avoir une réponse()->setBody(Mage::assistant('coeur')->jsonEncode($résulter));
        }

Maintenant, il n'est pas envoyé à la démolition du paiement par PayPal dans la caisse à choisir une autre méthode de paiement, mais au moins dans le panier encore rempli.

Malheureusement, je n'ai pas de solution pour le problème 2 trouvé, Ainsi, à chaque processus de paiement taillée une commande annulée dans le backend est stocké.

Utilisé dans la version Magento 1.7. Demandez, Remarques, Propositions? Nous directement ou comme un commentaire.

Publié par Covos

Depuis 2009 Je travaille intensément avec Magento. J'ai commencé avec la création et l'exploitation des magasins B2C. Cela a été prolongé par mon travail dans le secteur de la logistique. Il en est résulté premiers systèmes de B2E spécialisés. Aujourd'hui, je travaille jour par jour avec B2C passionnant, B2B- et les projets B2E et rapports dans ce blog sur les défis et donner des conseils d'initiés.

3 pensées sur “Magento – Paiement paypal annulé et vider le panier”

  1. “Copiez le fichier OnepageController.php de l'application annuaire / Code / core / Mage / Caisse / contrôleurs / dans l'application de répertoire / Code / local / Mage / Caisse / Les contrôleurs /”

    Après cela, toujours, TOUJOURS, quand il en est un nouveau patch publié Magento, lire le code patch, vérifier si elle change OnepageController.php et le cas échéant mettre en œuvre manuellement des modifications à votre version locale du fichier.

    Une meilleure solution est d'utiliser l'observateur.

Laisser un commentaire

Votre adresse email ne sera pas publié. les champs requis sont indiqués *