Un moyen de paiement disparaît du tunnel de commande après une mise à jour PrestaShop
Un module de paiement qui fonctionnait très bien peut ne plus s’afficher au client après une mise à jour PrestaShop, sans qu’aucune erreur ne s’affiche nulle part dans le back-office. Trois causes reviennent : un point d’accroche que le module n’utilise plus depuis PrestaShop 1.7, des restrictions de pays, devise ou groupe de client réinitialisées, ou un module désactivé automatiquement parce que marqué incompatible avec la nouvelle version installée.
Le point d’accroche a changé avec la version 1.7
Avant PrestaShop 1.7, les modules de paiement affichaient leurs boutons via le hook displayPayment. À partir de la 1.7, ce mécanisme a été remplacé par le hook paymentOptions, qui fonctionne différemment : le module doit renvoyer des objets de type option de paiement plutôt que du HTML brut affiché directement.
Un module resté conçu pour l’ancien hook peut très bien s’installer sans erreur après une montée de version : PrestaShop ne signale pas qu’un hook est inutilisé, il l’ignore silencieusement. Le module reste visible dans Modules et services, actif, configuré, mais rien ne s’affiche plus dans le tunnel de commande. C’est la cause la plus fréquente d’une disparition après une migration vers la 1.7 ou une version supérieure.
Restrictions pays, devise et groupe de client
Chaque module de paiement a son propre écran de réglage, avec des restrictions par pays, devise et groupe de client. Ces restrictions permettent, par exemple, de ne proposer un moyen de paiement qu’aux clients français payant en euros.
Après une mise à jour du module lui-même, ces réglages peuvent se réinitialiser ou se désynchroniser : un pays qui était coché repasse décoché, ou une plage de devises autorisées redevient vide. Le module reste actif, mais ne correspond plus à aucune commande en cours, donc n’apparaît jamais au client. C’est une vérification à faire avant de chercher plus loin.
Comment je vérifie, dans l’ordre
-
Le module est-il toujours actif ?
Je vérifie dans Modules et services qu’il n’a pas été désactivé automatiquement après la mise à jour, et qu’il ne s’affiche pas comme incompatible.
-
Le hook attendu est-il bien enregistré ?
Je regarde si le module est toujours accroché à paymentOptions (ou à l’ancien displayPayment pour les versions antérieures à la 1.7), et s’il répond correctement à cet appel.
-
Les restrictions du module sont-elles correctes ?
Pays, devises et groupes de client autorisés : je vérifie qu’aucune de ces listes ne s’est vidée ou n’exclut, par erreur, la commande en cours de test.
-
Le module lui-même est-il à jour ?
Si le module reste incompatible malgré ces vérifications, la mise à jour doit venir de son éditeur, ou le module doit être adapté au nouveau mécanisme de paiement.
Pages liées
-
Tunnel de commande et paiement en panne
Le diagnostic complet quand un client n’arrive pas du tout à payer, étape par étape dans le tunnel de commande.
-
Migration PrestaShop 1.6 vers 1.7 ou 8
Pourquoi une montée de version majeure casse certains modules, et comment vérifier leur compatibilité avant de migrer.
-
Développement d’un module PrestaShop sur mesure
Quand un module de paiement doit être réécrit ou adapté au nouveau mécanisme plutôt que simplement reconfiguré.
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.