Créer son premier module PrestaShop avec l'IA : guide pas à pas
On a tous vu ça : un fichier remove-user.php balancé à la racine du serveur, accessible directement via l'URL. C'est le genre de bidouille qui fonctionne une fois, puis qui reste là des années, oubliée, exposée. Un module PrestaShop, même simple, c'est infiniment mieux - et c'est beaucoup moins intimidant qu'on ne le croit.
Aujourd'hui, avec les LLMs disponibles (Claude, GPT...), on a un assistant qui va nous éviter les erreurs les plus grossières et nous épargner la syntaxe boilerplate. Mais il y a une condition : lui donner une bonne base à partir de laquelle travailler.
Pourquoi l'IA seule ne suffit pas
Si vous demandez à un LLM "crée-moi un module PrestaShop", voici ce que vous risquez d'obtenir :
- un formulaire de configuration via le
HelperFormlegacy (obsolète depuis PS 1.7) - toute la logique entassée dans le fichier principal du module
- des hooks approximatifs, ou tout simplement les mauvais
L'IA génère du code plausible, pas forcément du code à jour. PrestaShop a beaucoup évolué, et la frontière entre "ce qui fonctionnait en 1.6" et "ce qui est correct en 8.x" est floue pour un modèle entraîné sur l'ensemble du web.
La clé, c'est de lui fournir une base propre. Si le point de départ respecte les conventions modernes, le résultat sera bien meilleur.
awmodulebase : la base que j'utilise
À force de développer des modules PrestaShop, j'ai fini par me constituer un template de départ. Il s'appelle awmodulebase (pour axelweb module base), et il respecte les conventions actuelles de PrestaShop :
- autoload PSR-4
- structure inspirée de Symfony (Controllers, Forms, Services...)
- formulaire de configuration via Symfony Forms, pas HelperForm
- traductions au format
.xlf - aucun code dans le fichier principal qui ne devrait pas y être
Il est open-source et disponible sur GitHub : github.com/axel-paillaud/awmodulebase. Si la base vous a été utile, une petite étoile sur le repo est toujours appréciée, ça soutient le travail !

Ce qu'on va construire
Pour ce tuto, on va réaliser une barre d'annonce configurable : un bandeau affiché en haut du front-office, avec un message et une couleur de fond paramétrables depuis le back-office.
C'est simple, visuellement immédiat, et ça couvre les bases essentielles d'un module : un hook front-office, un template Smarty/Twig, et une page de configuration propre.
Prérequis
Ce tuto s'adresse à des développeurs web qui n'ont jamais fait de module PrestaShop, pas à de parfaits débutants en informatique. Concrètement, vous avez besoin de :
- savoir créer une archive
.zip - un accès FTP ou SSH à votre serveur
C'est tout. Composer n'est pas nécessaire si vous téléchargez la release GitHub (voir étape suivante).
Étape 1 : télécharger la base du module
Téléchargez la dernière release depuis GitHub (pas le code source brut) : elle inclut le dossier vendor/ pré-généré, ce qui vous évite d'avoir à installer Composer.


Étape 2 : choisir un nom, un préfixe, un namespace
Avant de toucher au code, il faut trouver l'identifiant de votre module. C'est ce qui va l'isoler de tous les autres modules installés sur PrestaShop - deux modules avec le même nom entreront en conflit.
Trois choses à définir :
- le nom du module : en minuscules, sans tiret ni espace (ex.
awtopbar) - le préfixe : 2-3 lettres qui vous sont propres.
awpour axelweb. Évitezps(préfixe officiel PrestaShop) ou des préfixes génériques commemyoucustom - le namespace PHP : une convention d'organisation des classes. Retenez juste que ça doit être unique et cohérent avec votre préfixe (ex.
AxelWeb\TopBar)
Dans cet article, on part sur awtopbar.
Étape 3 : renommer la base du module
Une fois le dossier récupéré, il faut remplacer toutes les occurrences du nom de base par le vôtre : noms de fichiers, classes PHP, clefs de traduction, et les fichiers d'autoload dans vendor/.
C'est exactement le genre de tâche mécanique où l'IA excelle. Donnez-lui accès au dossier du module, et envoyez ce prompt :
Renomme ce module de "awmodulebase" vers "awtopbar". Remplace toutes les occurrences dans :
- les noms de fichiers et dossiers
- les classes PHP (namespace AxelWeb\ModuleBase → AxelWeb\TopBar, nom de classe Awmodulebase → Awtopbar)
- les constantes et clefs de configuration
- les clefs de traduction .xlf
- les noms de tables SQL éventuelles
- les commentaires et annotations
- le fichier vendor/composer/autoload_psr4.php (mettre à jour le namespace mappé)
Ne modifie pas la logique du code, renomme uniquement.
Vérifiez le résultat rapidement : le fichier principal du module doit s'appeler awtopbar.php, et la classe à l'intérieur doit s'appeler Awtopbar.
Étape 4 : décrire votre module à l'IA
Maintenant qu'on a une base propre avec le bon nom, on peut décrire ce qu'on veut construire. Soyez précis sur ce qu'il faut garder et ce qu'il faut supprimer - la base contient des features génériques qui ne servent pas à tous les modules.
Voici un prompt de départ pour notre top bar :
Transforme ce module en une barre d'annonce (top bar) affichée en haut du front-office.
Specs :
- Afficher un bandeau via le hook displayTop ou displayBanner
- Le texte du bandeau est configurable depuis la page de configuration du module en back-office
- Stocker la valeur via ps_configuration (Configuration::get / Configuration::updateValue), pas de table SQL dédiée
- Template Twig simple avec un <div> stylisé, fichier CSS front-office déjà prévu dans la base
Supprime tout ce qui est inutile pour cette feature :
- la création et suppression de table SQL dans install() et uninstall()
- l'ajout d'un onglet (Tab) dans le menu back-office
- tout service, repository ou controller sans rapport avec la configuration du message
Pour un module aussi ciblé, l'IA devrait s'en sortir du premier coup. Si ce n'est pas le cas, relancez en décrivant précisément ce qui ne va pas.
Étape 5 : créer l'archive .zip
PrestaShop installe les modules via une archive .zip. Faites un clic droit sur le dossier awtopbar/ et compressez-le. Sous Linux/Mac en ligne de commande :
zip -r awtopbar.zip awtopbar/ --exclude "awtopbar/.git/*"
Note pour les développeurs : si vous souhaitez ajouter des dépendances PHP au module, il faudra installer Composer et relancer composer install après chaque ajout. Pour ce tuto, ce n'est pas nécessaire.
Étape 6 : installer et tester
Depuis le back-office PrestaShop : Modules -> Gestionnaire de modules -> Installer un module, puis uploadez votre .zip.
Une fois installé, la page de configuration du module est accessible depuis la liste des modules.

Si le rendu visuel ne vous convient pas (couleur, hauteur, police...), demandez à l'IA de modifier le fichier CSS front-office du module - il est déjà prévu dans la structure de awmodulebase.
Pour aller plus loin
Ce tuto couvre un module délibérément simple. Voici d'autres idées dans le même esprit, réalisables avec la même méthode :
- un bloc de réassurance personnalisable (icônes + texte) dans le footer
- un badge "Nouveau" sur les produits récemment ajoutés, configurable en nombre de jours
- une bannière saisonnière (Noël, soldes...) activable/désactivable depuis le back-office
- un redirect automatique www vers non-www (ou l'inverse)
- un message d'alerte sur la fiche produit pour les articles en faible stock
Et si votre besoin est plus complexe ?
Sur un module simple, l'IA s'en sort très bien. Mais certains projets demandent une vraie expertise : gestion de règles métier complexes, intégration avec un ERP, performances à grande échelle, sécurité des données sensibles...
Si vous avez un besoin de module sur mesure - comme un module de téléversement d'ordonnance sécurisé, un module de gestion des reliquats, ou un sélecteur de teinte parmi des milliers de références - vous gagnerez vraiment du temps (et de l'argent) à faire appel à un développeur plutôt que de vous battre avec l'IA sur un sujet qu'elle maîtrise mal.
Bon courage avec vos projets PrestaShop.
Axel.