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

Un module PrestaShop refuse de s’installer ou disparaît du back-office

« L’action installer est impossible », un module qui n’apparaît plus après une mise à jour, ou pire, un back-office qui devient inaccessible juste après l’installation d’un module : ces trois symptômes ont des causes précises, presque toujours parmi une poignée de suspects habituels.

Décrire mon problème Discuter sur WhatsApp

Pourquoi une installation échoue silencieusement

Installer un module copie des fichiers dans le dossier /modules du serveur. Sans droit d’écriture suffisant sur ce dossier, la copie échoue, souvent avec un message d’erreur générique qui ne pointe pas clairement vers un problème de droits. C’est la première chose à vérifier quand « l’action installer est impossible ».

Autre cause fréquente : un conflit de nom entre deux modules, quand l’un déclare une classe PHP ou une table en base déjà utilisée par un autre module installé. La méthode install() échoue alors sans toujours indiquer clairement lequel des deux modules est en cause.

Un module écrit pour une autre version de PrestaShop

La méthode install() d’un module tente en général de s’accrocher à un ou plusieurs hooks. Si le module a été écrit pour PrestaShop 1.6 et qu’il est installé sur une 1.7 ou une 8 sans adaptation, l’installation échoue si elle cible un hook qui n’existe plus dans la version installée. C’est une cause fréquente pour les modules anciens ou peu maintenus.

Un module installé manuellement par FTP plutôt que depuis le back-office peut aussi rester invisible tant que le cache de classes du cœur PrestaShop n’a pas été régénéré : le fichier existe sur le serveur, mais PrestaShop ne le voit pas encore.

Configuration ou développement ?

Corriger des droits d’écriture ou régénérer un cache de classes après un dépôt manuel par FTP est un nettoyage rapide. Ça devient un développement quand le module tiers lui-même est cassé : hook obsolète à adapter, conflit de classe à renommer, ou code écrit pour une version de PrestaShop qu’il faut réécrire pour la version actuellement installée.

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.

Que doit faire le module ?
Sur quelle version de PrestaShop ?
Où le module doit-il s’intégrer ? (facultatif)
Avez-vous déjà essayé un module du marché ? (facultatif)

Savoir ce qui a échoué évite de reproduire la même limite.

Pour quand ? (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 back-office est devenu inaccessible juste après l’installation d’un module, que faire en premier ?
Se connecter au serveur par FTP et désactiver ou supprimer le dossier du module dans /modules. C’est ce qui restaure l’accès au back-office le plus rapidement, avant de chercher pourquoi le module a échoué.
Le bouton « installer » est grisé ou l’action est impossible, pourquoi ?
Le plus souvent un problème de droits d’écriture sur le dossier /modules du serveur, parfois combiné à un conflit avec un module du même nom déjà présent mais désactivé.
J’ai installé un module par FTP mais il n’apparaît pas dans le back-office, pourquoi ?
PrestaShop maintient un cache de classes qui doit être régénéré pour détecter un module ajouté manuellement. Sans cette régénération, le fichier existe sur le serveur mais reste invisible côté back-office.
Un module que j’utilisais depuis longtemps a disparu après une mise à jour PrestaShop, est-ce lié ?
Oui, c’est fréquent : un module écrit pour une version plus ancienne peut cesser de fonctionner si les hooks qu’il utilise ont changé entre les versions. Ça demande une adaptation du module, pas une réinstallation simple.
Comment savoir si le conflit vient de mon module ou d’un autre déjà installé ?
Je désactive temporairement les modules récemment installés un par un et je reteste l’installation à chaque étape, ce qui permet d’isoler le module en conflit avant d’aller chercher plus loin dans le code.