Disponible pour missions & renforts d’agence · Réponse rapide, par la personne qui intervient

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.

Décrire mon problème Discuter sur WhatsApp

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

  1. 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.

  2. 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.

  3. 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.

  4. 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

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.

Quel module de paiement est concerné ?
À quelle étape ça bloque exactement ?
Les commandes se créent-elles malgré le problème ?

C’est le point le plus important : une commande payée mais non enregistrée est une perte sèche pour vous.

Qu’est-ce qui a changé avant l’apparition du problème ? (facultatif)
Quel message d’erreur voit le client, ou voyez-vous en back-office ? (facultatif)
Indiquez au moins un e-mail ou un téléphone pour que je puisse vous répondre.

Indiquez au moins un e-mail ou un téléphone pour que je puisse vous répondre.

Questions fréquentes

Le module ne s’affiche plus, mais je ne vois aucune erreur : est-ce normal ?
Oui, c’est le comportement le plus fréquent. PrestaShop n’affiche pas d’erreur quand un module utilise un hook qui n’est plus appelé par le tunnel de commande : le module reste actif en apparence, mais personne ne le voit jamais côté client.
Dois-je réinstaller le module depuis zéro ?
Rarement. Dans la majorité des cas, une reconfiguration des restrictions ou une réactivation suffit. Une réinstallation complète n’est nécessaire que si la configuration existante est corrompue.
Le module vient d’un éditeur tiers, dois-je attendre sa mise à jour ?
Si le module utilise encore l’ancien hook displayPayment sur une boutique passée en 1.7 ou plus, oui : seul l’éditeur peut publier une version compatible, sauf à faire réécrire le module en développement sur mesure.
Comment savoir si c’est un problème de hook ou de restriction ?
Si le module n’apparaît pour aucun client, quelle que soit sa commande, c’est presque toujours le hook. S’il n’apparaît que pour certains profils ou certains pays, ce sont les restrictions qu’il faut vérifier en premier.
Dois-je m’attendre à ce que ça se reproduise à chaque nouvelle version PrestaShop ?
Pas systématiquement, mais chaque montée de version majeure mérite de revérifier les modules de paiement avant de la déployer en production, surtout ceux qui n’ont pas été mis à jour depuis longtemps.