Problème de paiement ou de tunnel de commande PrestaShop
Un client qui n’arrive pas à payer, c’est une vente perdue et souvent un panier abandonné en silence : il ne vous écrit pas forcément pour se plaindre. Je diagnostique le tunnel de commande étape par étape pour trouver où ça bloque réellement.
Ce qui m’amène sur ce type de dossier
- Le bouton de paiement ne répond pas ou renvoie une page blanche
- Un module de paiement (CB, PayPal, virement) a disparu de l’étape de paiement
- Le client est débité mais la commande reste en statut « en attente » côté PrestaShop
- Erreur au retour de la banque après authentification 3D Secure
- Un transporteur ou une méthode de paiement se bloque mutuellement à cause d’une restriction mal configurée
- Le paiement fonctionne en test mais pas en conditions réelles, ou l’inverse
Où ça casse le plus souvent
Le tunnel de commande PrestaShop enchaîne plusieurs contrôles avant d’afficher les moyens de paiement : restrictions de transporteur, de groupe client, de devise, de pays de livraison. Si l’un de ces filtres est mal réglé, le module de paiement disparaît silencieusement sans message d’erreur explicite pour le client.
Côté validation, la confirmation d’une commande passe par le hook actionPaymentConfirmation et par l’appel à validateOrder() côté module de paiement. Quand la commande reste bloquée en attente malgré un paiement accepté par la banque, la cause est presque toujours un webhook ou une notification serveur-à-serveur (IPN) qui n’atteint jamais PrestaShop : pare-feu de l’hébergeur, URL de callback mal renseignée dans le back-office du prestataire de paiement, ou certificat SSL invalide qui fait échouer l’appel.
Un autre cas classique : une mise à jour de module de paiement change la version d’API utilisée (par exemple un passage forcé au SDK Stripe le plus récent) sans que la configuration ait été reprise, ce qui casse silencieusement les paiements par carte tout en laissant les autres méthodes actives.
Comment je diagnostique
-
Reproduction du parcours client
Je passe une commande test de bout en bout, avec les mêmes conditions que le client bloqué (pays, devise, panier, transporteur).
-
Vérification des restrictions
Je contrôle les règles de restriction du module de paiement (groupes, transporteurs, pays) qui peuvent masquer une méthode sans avertissement.
-
Contrôle des webhooks
Je vérifie que les notifications du prestataire de paiement atteignent bien le serveur, en consultant les logs du module et, si besoin, le tableau de bord du prestataire.
-
Test en conditions réelles
Je vérifie le comportement en mode production, pas seulement en bac à sable, car certains blocages n’apparaissent qu’avec de vraies clés API.
Décrivez votre besoin en 1 minute
Quelques questions ciblées pour que je vous réponde avec une estimation, pas avec un questionnaire de plus.