Expertise PrestaShop

11 ans de solutions techniques concrètes. Développement, performance, migration, sécurité — tout ce que j'ai appris sur le terrain.

💻

Développement

61 articles

Modules, hooks, overrides, Symfony, API

DéveloppementIntermédiaire5 FAQ

Ajouter un loader lors de la soumission de commande PrestaShop

Pour ajouter un loader au tunnel de commande PrestaShop, injectez un script JavaScript (protégé par {literal} en Smarty) qui affiche un overlay au submit du formulaire de paiement et désactive le bouton pour éviter les doubles commandes. En PrestaShop 8.x, privilégiez un module avec le hook actionFrontControllerSetMedia.

PS 1.7 PS 8.x
Lire l'article
DéveloppementIntermédiaire5 FAQ

Créer un select dynamique dans un template Smarty PrestaShop

Pour créer un select dynamique dans un template Smarty PrestaShop, utilisez soit les méthodes statiques natives (comme Supplier::getSuppliers()), soit un ObjectModel personnalisé avec DbQuery, en assignant les données via le controller plutôt que par appel direct dans le .tpl.

PS 1.7 PS 8.x
Lire l'article
DéveloppementIntermédiaire5 FAQ

Générer un PDF dans un module PrestaShop : guide complet

Pour générer un PDF dans PrestaShop, évitez AJAX et utilisez une URL directe vers un contrôleur dédié qui envoie le fichier avec les bons en-têtes HTTP. Créez un ModuleFrontController qui récupère l'ID commande via Tools::getValue(), vérifie les droits d'accès, puis appelle la classe PDF native ou TCPDF pour le rendu.

PS 1.7 PS 8.x
Lire l'article
DéveloppementAvancé5 FAQ

Activer la navigation à facettes sur la page d'accueil PrestaShop

Le module de navigation à facettes PrestaShop ne fonctionne pas sur la page d'accueil car il nécessite un contexte de catégorie. Deux solutions : rediriger la homepage vers une catégorie via un override d'IndexController, ou créer un module compagnon qui injecte le contexte catégorie et délègue le rendu au module de filtrage.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
DéveloppementIntermédiaire5 FAQ

Fatal error Class FrontController not found dans un module PrestaShop

L'erreur « Class FrontController not found » dans un module PrestaShop est causée par un non-respect de la convention de nommage stricte des contrôleurs front. La classe doit impérativement s'appeler {nomdumodule}{Controleur}ModuleFrontController, sans underscores dans le nom du module, et étendre ModuleFrontController.

PS 1.7 PS 8.x
Lire l'article
DéveloppementIntermédiaire5 FAQ

Gérer les traductions templates Smarty dans PrestaShop

Pour rendre un texte traduisible dans un template Smarty PrestaShop, utilisez la fonction {l s='Votre texte' mod='nom_module'} au lieu d'écrire le texte en dur. La chaîne devient alors éditable depuis le back-office dans International → Traductions.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
DéveloppementAvancé5 FAQ

Récupérer des variables dans les URLs simplifiées PrestaShop

Les URLs simplifiées PrestaShop reposent sur le Dispatcher qui utilise des expressions régulières pour extraire les identifiants de chaque URL. Pour ajouter des variables personnalisées, privilégiez le hook moduleRoutes dans un module plutôt que des règles .htaccess, afin de garantir la pérennité et la compatibilité avec la génération de liens.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
DéveloppementIntermédiaire5 FAQ

Arrondir un prix en Smarty dans PrestaShop : ceil, round et math

Pour arrondir un prix au centime supérieur en Smarty, utilisez {math equation='ceil(a*100)/100' a=$variable}. En PrestaShop 8.x, préférez Tools::ps_round() côté PHP avec la constante PS_ROUND_UP pour respecter les règles d'arrondi de la boutique.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
DéveloppementIntermédiaire5 FAQ

Override du CategoryController dans PrestaShop : guide complet

Pour overrider le CategoryController dans PrestaShop, créez le fichier override/controllers/front/CategoryController.php avec une classe étendant CategoryControllerCore, puis supprimez le cache class_index.php. Sur PrestaShop 8.x, les hooks de contrôleur sont une alternative plus maintenable.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
DéveloppementIntermédiaire5 FAQ

Ajouter un champ personnalisé aux fiches produits PrestaShop

Pour ajouter un champ personnalisé aux produits PrestaShop, il faut intervenir à quatre niveaux : colonne SQL dans ps_product_lang, override de la classe Product (ObjectModel), intégration au formulaire back-office, et affichage front-office via Smarty. En PS 8.x, préférez un module avec hooks Symfony.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
DéveloppementIntermédiaire5 FAQ

Afficher le fabricant sur les meilleures ventes PrestaShop

Pour afficher le fabricant dans le module meilleures ventes PrestaShop, créez un override de ProductSale::getBestSalesLight() ajoutant un LEFT JOIN sur ps_manufacturer, puis exploitez la variable manufacturer_name dans votre template Smarty.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
DéveloppementIntermédiaire5 FAQ

Créer un champ multilingue dans un AdminController PrestaShop

Pour créer un champ multilingue dans un AdminController PrestaShop, trois éléments sont indispensables : une table `_lang` en base de données avec clé composite, un ObjectModel déclaré avec `'multilang' => true` et `'lang' => true` sur chaque champ traduisible, et le paramètre `'lang' => true` dans la définition du formulaire du contrôleur.

PS 1.7 PS 8.x
Lire l'article
DéveloppementDébutant5 FAQ

Accéder au code source de la page d'accueil PrestaShop

La page d'accueil PrestaShop est composée de plusieurs fichiers template (header.tpl, index.tpl, footer.tpl) et de modules hookés qui injectent leur propre contenu. Pour modifier un élément, il faut d'abord identifier le fichier responsable via le mode debug Smarty, puis le surcharger proprement dans un thème enfant.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
DéveloppementIntermédiaire5 FAQ

Modifier l'ordre des catégories dans un menu PrestaShop

Pour corriger l'ordre des catégories dans un menu PrestaShop, remplacez `ORDER BY cl.name ASC` par `ORDER BY c.position ASC` dans la requête SQL du module de menu, ou utilisez la méthode native `Category::getChildren()` qui trie par position par défaut.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
DéveloppementIntermédiaire7 FAQ

Ajouter des champs personnalisés au formulaire d'inscription PrestaShop via un module

Pour ajouter des champs au formulaire d'inscription PrestaShop, créez un module utilisant le hook additionalCustomerFormFields plutôt qu'un override de la classe Customer. Cette approche est compatible 1.7 à 8.x, sans conflit entre modules et désinstallable proprement.

PS 1.7 PS 8.x
Lire l'article
DéveloppementIntermédiaire5 FAQ

Changer l'ordre des champs du formulaire d'adresse PrestaShop

Pour réorganiser les champs du formulaire d'adresse PrestaShop, modifiez le template Smarty (1.6) ou surchargez le CustomerAddressFormatter via un module (1.7/8.x). Pensez impérativement à vider le cache Smarty et à vérifier que vous éditez le bon template dans la hiérarchie de votre thème.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
DéveloppementIntermédiaire5 FAQ

Récupérer les personnalisations produit PrestaShop via ObjectModel

Guide complet pour créer une classe ObjectModel dédiée à la récupération des personnalisations produit PrestaShop, avec requêtes DbQuery par produit et par commande, bonnes pratiques de sécurité SQL et compatibilité 1.7/8.x.

PS 1.7 PS 8.x
Lire l'article
DéveloppementIntermédiaire5 FAQ

Gérer les traductions vides dans PrestaShop : guide complet

Les traductions vides dans PrestaShop surviennent quand un module ne fournit pas de fichier de langue pour votre boutique. La solution la plus fiable est de dupliquer un fichier de traduction existant, de traduire les chaînes (manuellement ou en masse via tableur), puis de placer le résultat dans le dossier de surcharge du thème pour survivre aux mises à jour.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
DéveloppementDébutant5 FAQ

Intégrer un widget externe dans votre thème PrestaShop

Pour intégrer un widget externe dans PrestaShop, trois méthodes existent : l'édition directe des fichiers TPL du thème (rapide mais fragile), la création d'un module dédié avec hooks (pérenne et professionnel), ou l'utilisation du module HTML personnalisé (sans code). La méthode par module est recommandée pour sa résistance aux mises à jour et sa flexibilité.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
DéveloppementIntermédiaire5 FAQ

Activer le zoom produit au clic plutôt qu'au survol sur PrestaShop

Sur PrestaShop 1.6, le zoom et le changement d'image produit au survol se modifient dans le fichier product.js du thème (ligne ~258) en remplaçant l'événement mouseover par click — sans jamais toucher à la librairie JQZoom. Sur PS 1.7+ et 8.x, le clic est souvent le comportement par défaut.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
DéveloppementIntermédiaire5 FAQ

Conflit d'overrides PrestaShop : installer un module malgré une surcharge existante

Quand un module refuse de s'installer à cause d'un override déjà existant, la solution est de fusionner manuellement les deux versions de la méthode conflictuelle dans le fichier d'override global, puis de supprimer l'override du module avant de relancer l'installation.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
DéveloppementIntermédiaire5 FAQ

Traduire un module PrestaShop attaché à un hook personnalisé

Pour traduire un module PrestaShop sur un hook personnalisé, utilisez la syntaxe `{l s='texte' mod='nom_module'}` dans vos templates Smarty, en veillant à échapper les apostrophes pour éviter les pages blanches, puis gérez les traductions via le back-office dans Localisation → Traductions des modules installés.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
DéveloppementAvancé5 FAQ

Forcer l'ID produit lors de la création dans PrestaShop

Pour forcer un id_product à la création dans PrestaShop, utilisez $product->force_id = true avant add() plutôt que des UPDATE SQL manuels qui oublient des tables et cassent l'intégrité référentielle.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
DéveloppementIntermédiaire5 FAQ

Afficher le nombre de favoris (likes) sur une fiche produit PrestaShop

Pour afficher le nombre de favoris d'un produit PrestaShop, utilisez Db::getInstance()->getValue() avec un COUNT(*) sécurisé par un cast (int), jamais ExecuteS() qui retourne un tableau inutilisable directement dans Smarty.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
DéveloppementIntermédiaire15 FAQ

Gérer les traductions dans les templates Smarty PrestaShop

La balise Smarty `{l}` de PrestaShop ne permet pas d'injecter directement des variables dans le paramètre `s`. Pour inclure des valeurs dynamiques dans vos traductions, utilisez le paramètre `sprintf` avec des placeholders, et gérez toutes vos traductions de manière centralisée via le back-office.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
DéveloppementIntermédiaire5 FAQ

Personnaliser le formulaire de création de compte PrestaShop

Pour personnaliser le formulaire d'inscription PrestaShop, créez un module exploitant le hook `additionalCustomerFormFields` qui injecte des champs via l'API FormField, avec validation serveur et stockage dans une table dédiée — sans jamais modifier le core.

PS 1.7 PS 8.x
Lire l'article
DéveloppementIntermédiaire5 FAQ

Récupérer l'ID d'une image après insertion en base PrestaShop

Pour récupérer l'ID d'une image après insertion en base PrestaShop, utilisez Db::getInstance()->Insert_ID() juste après l'INSERT. La méthode recommandée reste l'ObjectModel Image qui gère automatiquement l'ID, le multiboutique et le chemin des fichiers.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
DéveloppementIntermédiaire15 FAQ

Requête AJAX onChange dans PrestaShop : select dynamique en cascade

Implémentation complète de selects en cascade avec AJAX dans PrestaShop : contrôleur AJAX avec ajaxRender(), exposition de l'URL via Smarty, et gestion JavaScript avec cache client et feedback visuel. Compatible PrestaShop 1.7 et 8.x.

PS 1.7 PS 8.x
Lire l'article
DéveloppementIntermédiaire5 FAQ

Afficher un texte dynamique sous le logo selon la page PrestaShop

Pour afficher un headline dynamique sous le logo selon la page visitée, utilisez des conditions Smarty ({if $page.page_name == 'category'}) pour un besoin simple, ou créez un champ personnalisé en base de données pour une solution maintenable et éditable depuis le back-office.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
DéveloppementIntermédiaire5 FAQ

Intégrer un flux de blog externe dans PrestaShop via une page CMS

Pour intégrer un blog externe dans PrestaShop, créez une page CMS dédiée et utilisez une condition Smarty dans le template pour injecter le contenu uniquement sur cette page. Attention au paramètre de déplacement JavaScript en fin de page qui peut bloquer le widget. En PrestaShop 8.x, préférez un module consommant l'API du blog pour un rendu côté serveur indexable et performant.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
DéveloppementDébutant5 FAQ

Personnaliser le message de confirmation de commande PrestaShop

Pour personnaliser le message de confirmation de commande PrestaShop, utilisez le système de traduction natif pour modifier les textes existants, ou surchargez le template payment_return.tpl pour ajouter du contenu. Stylisez toujours via CSS externe avec des classes dédiées, jamais en inline.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
DéveloppementIntermédiaire7 FAQ

Gérer les réponses AJAX dans un module PrestaShop : validation et UX

Pour gérer différentes actions dans le callback success d'une requête AJAX PrestaShop, structurez votre réponse PHP en JSON avec un champ booléen success et un objet errors associatif, puis branchez votre logique JavaScript (désactivation du bouton, affichage ciblé des erreurs) en fonction de ce flag.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
DéveloppementIntermédiaire5 FAQ

Implémenter un ScrollSpy sur vos fiches produits PrestaShop

Le ScrollSpy ajoute une navigation contextuelle sticky sur les fiches produits longues, améliorant l'UX en indiquant la section visible. Sur PrestaShop 1.6/1.7, utilisez le plugin Bootstrap natif ; sur PrestaShop 8.x, préférez l'API IntersectionObserver pour une solution sans dépendance, performante et compatible tous thèmes.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
DéveloppementIntermédiaire5 FAQ

Affichage aléatoire dans PrestaShop : randomiser vos blocs Smarty

Pour afficher des blocs aléatoirement dans PrestaShop, utilisez {math equation="rand(min, max)"} en Smarty pour un résultat rapide, ou préférez ORDER BY RAND() / shuffle() côté PHP pour une solution robuste compatible avec le cache.

PS 1.7 PS 8.x
Lire l'article
DéveloppementIntermédiaire7 FAQ

Afficher l'ancien prix unitaire dans PrestaShop avec Smarty

Pour afficher l'ancien prix unitaire barré dans PrestaShop, divisez le prix sans réduction par le unit_price_ratio via le plugin Smarty {math}, en déclarant toujours les variables comme paramètres nommés pour éviter les erreurs de calcul silencieuses.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
DéveloppementIntermédiaire5 FAQ

Module PrestaShop sans affichage : corriger un AdminController défaillant

Un AdminController PrestaShop qui affiche une page blanche est presque toujours causé par une incohérence de nommage entre le fichier et la classe, un parent::__construct() appelé trop tôt, ou un cache class_index.php obsolète. Corrigez ces trois points et votre module fonctionnera.

PS 1.7 PS 8.x
Lire l'article
DéveloppementIntermédiaire5 FAQ

Assigner un groupe client par défaut à l'inscription PrestaShop

Pour assigner un groupe client par défaut à l'inscription PrestaShop, il faut définir `id_default_group` AVANT l'appel à `add()`, puis utiliser `cleanGroups()` suivi de `addGroups()` pour gérer correctement les appartenances multiples.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
DéveloppementIntermédiaire5 FAQ

Module PrestaShop qui se réenregistre sur un hook : diagnostic et solution

Quand un module PrestaShop revient systématiquement sur un hook après désenregistrement, c'est parce que sa méthode install() contient un registerHook() qui le réenregistre à chaque réinstallation. La solution : commenter cette ligne dans le fichier PHP du module, vérifier le rôle de ps_themecusto, et vider le cache.

PS 1.7 PS 8.x
Lire l'article
DéveloppementIntermédiaire5 FAQ

Passer une variable Smarty dans jQuery sur PrestaShop

Pour récupérer une variable Smarty dans jQuery au sein d'une boucle foreach, utilisez les attributs HTML5 data-* pour injecter les valeurs dans le DOM, la balise {literal} pour protéger le JavaScript inline, et $(this).data('key') pour cibler l'élément précis cliqué par l'utilisateur.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
DéveloppementIntermédiaire5 FAQ

Passer une variable produit (EAN13) au panier AJAX PrestaShop

Pour transmettre une variable produit (comme l'EAN13) au panier AJAX PrestaShop, utilisez des inputs cachés avec ID unique dans les boucles foreach, ou `{addJsDefL}` sur la fiche produit. En PrestaShop 8, préférez `Media::addJsDef()` dans un hook de module.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
DéveloppementIntermédiaire6 FAQ

Créer un module dashboard PrestaShop avec requêtes SQL personnalisées

Créez un module PrestaShop qui affiche des données SQL personnalisées dans le tableau de bord via le hook dashboardZoneTwo, en utilisant DbQuery pour des requêtes sécurisées et un template Smarty pour le rendu.

PS 1.7 PS 8.x
Lire l'article
DéveloppementIntermédiaire7 FAQ

Supprimer le logo et le pied de page des factures PDF PrestaShop

Pour supprimer le logo et le pied de page des factures PrestaShop, créez un override de HTMLTemplate qui retourne une chaîne vide dans getLogo() et getFooter(). Sur PS 8.x, privilégiez un module embarquant l'override pour une meilleure maintenabilité.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
DéveloppementIntermédiaire5 FAQ

Afficher delivery_out_stock dans le panier PrestaShop

Pour afficher delivery_out_stock dans le panier PrestaShop, il faut overrider Cart.php pour ajouter ce champ à la requête SQL de getProducts(). Le piège principal est un décalage d'id_lang qui rend la variable vide — vérifiez que le contenu est rempli pour toutes les langues actives.

PS 1.7 PS 8.x
Lire l'article
DéveloppementIntermédiaire6 FAQ

Ajouter un champ personnalisé au formulaire d'inscription PrestaShop

Pour ajouter un champ personnalisé (comme une case 'majeur') au formulaire d'inscription PrestaShop, il faut modifier la base de données, déclarer le champ dans l'objet Customer, override le contrôleur AuthController pour la validation et le message d'erreur, puis ajouter le HTML dans le template — sur PrestaShop 8.x, privilégiez un module avec les hooks Symfony plutôt qu'un override.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
DéveloppementIntermédiaire5 FAQ

Variable $page_name et ID du body dans PrestaShop : diagnostic complet

L'absence de l'attribut id sur la balise body dans PrestaShop provient généralement d'un header.tpl modifié ou d'un contrôleur qui n'assigne pas la variable $page_name. Le diagnostic passe par l'affichage direct de la variable et la console debug Smarty.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
DéveloppementIntermédiaire7 FAQ

Intégrer du JavaScript dans une page produit PrestaShop

Pour intégrer du JavaScript sur une fiche produit PrestaShop, utilisez {literal} dans les templates Smarty en 1.6, ou créez un module avec registerJavascript via le hook actionFrontControllerSetMedia en 1.7/8.x. Évitez d'insérer du JS dans la description longue car TinyMCE le supprime.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
DéveloppementIntermédiaire5 FAQ

Trier le menu PrestaShop par ordre alphabétique (blocktopmenu)

Pour trier le menu blocktopmenu (ou ps_mainmenu) par ordre alphabétique, remplacez ORDER BY `position` par ORDER BY cl.`meta_title` ASC dans getCMSPages() et ORDER BY cl.`name` ASC dans getCMSCategories(), idéalement via un override pour survivre aux mises à jour.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
DéveloppementIntermédiaire6 FAQ

Mettre à jour le stock depuis hookActionValidateOrder dans PrestaShop

Pour mettre à jour le stock depuis hookActionValidateOrder, utilisez Db::getInstance()->update() ou mieux, la classe StockAvailable. Les erreurs courantes sont les colonnes dupliquées dans le tableau PHP, un hook non enregistré, ou des colonnes NOT NULL manquantes.

PS 1.7 PS 8.x
Lire l'article
DéveloppementIntermédiaire5 FAQ

Déplacer le bloc recherche PrestaShop dans le menu ou le header

Pour déplacer la barre de recherche PrestaShop, créez un hook personnalisé via un override du module et appelez-le dans le template souhaité. Sur PrestaShop 1.7+, la syntaxe widget permet de l'afficher n'importe où sans override.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
DéveloppementIntermédiaire7 FAQ

Implémenter un système de prix libre sur PrestaShop (Name Your Price)

Implémentez un système de prix libre sur PrestaShop via un override de Product (mise à jour du prix) et du ProductController (validation sécurisée avec bornes min/max). Pour la production, préférez les SpecificPrice par client plutôt que la modification directe en base.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
DéveloppementIntermédiaire5 FAQ

Thème enfant PrestaShop : résoudre les erreurs JavaScript après installation

Après l'installation d'un thème enfant PrestaShop, les bibliothèques JavaScript du thème parent ne sont pas toujours héritées automatiquement. Diagnostiquez via la console JS (F12), identifiez les scripts manquants dans le code source, puis enregistrez-les proprement via setMedia() ou le fichier theme.yml.

PS 1.7 PS 8.x
Lire l'article
DéveloppementIntermédiaire5 FAQ

Connecter automatiquement un client après création de compte PrestaShop

Pour connecter automatiquement un client après création de compte sur PrestaShop, il faut injecter ses données dans le Context et le cookie via `Context::getContext()->cookie->__set()`, rattacher le panier existant avec le `secure_key`, puis déclencher les hooks d'authentification avant de rediriger.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
DéveloppementIntermédiaire5 FAQ

Intégrer Bootstrap dans le menu PrestaShop : refonte du blocktopmenu

Le module blocktopmenu (ps_mainmenu depuis PS 1.7) peut être refactorisé pour utiliser les classes Bootstrap natives, ce qui résout les bugs mobile, facilite la personnalisation et permet d'intégrer panier et recherche directement dans la navbar.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
DéveloppementIntermédiaire5 FAQ

Charger le CSS d'un module PrestaShop : hooks, chemins et bonnes pratiques

Le CSS d'un module PrestaShop ne se charge pas quand le hook displayHeader n'est pas enregistré à l'installation, quand le chemin du fichier est incorrect, ou quand une surcharge du thème interfère. Enregistrez le hook, utilisez addCSS() ou registerStylesheet(), et vérifiez qu'aucun dossier de surcharge dans le thème ne bloque le chargement.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
DéveloppementIntermédiaire5 FAQ

Ajouter un champ personnalisé produit dans PrestaShop (back office et front)

Pour ajouter un champ personnalisé produit dans PrestaShop, il faut intervenir à 4 niveaux : colonne SQL dans ps_product_lang, déclaration dans la classe Product ($definition), ajout dans les requêtes SQL du catalogue (Category::getProducts), et affichage dans les templates. Sur PS 8.x, privilégiez un module avec les hooks Symfony plutôt qu'un override.

PS 1.7 PS 8.x
Lire l'article
DéveloppementIntermédiaire5 FAQ

Rendre le numéro de TVA obligatoire si société renseignée sur PrestaShop

Pour rendre le numéro de TVA obligatoire quand une société est renseignée, il faut ajouter une validation conditionnelle dans les contrôleurs AuthController et AddressController (PS 1.6 via override) ou via un module avec le hook actionValidateCustomerAddressForm (PS 1.7+/8.x). Ne jamais modifier la classe Address.php pour cela.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
DéveloppementAvancé5 FAQ

Ajouter un champ image personnalisé aux catégories PrestaShop

Ajoutez un second champ image aux catégories PrestaShop via un override de la classe Category (PS 1.6/1.7) ou un module Symfony (PS 8.x), en modifiant la base de données, le back-office et les templates front-end.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
DéveloppementIntermédiaire5 FAQ

Afficher des produits d'une catégorie sur une fiche produit PrestaShop

Pour afficher des produits d'une catégorie sur une fiche produit PrestaShop avec filtrage par caractéristique, créez un override de Category.php avec une méthode getProductsByFeature() qui joint les tables produit et caractéristique, puis appelez-la depuis un hook de module avec un template Smarty réutilisant les miniatures natives.

PS 1.7 PS 8.x
Lire l'article
DéveloppementIntermédiaire5 FAQ

Déplacer le menu horizontal PrestaShop vers un autre hook

Pour déplacer le menu horizontal PrestaShop, remplacez le hook `displayTop` par `displayNav` dans la méthode install() du module, ajoutez une méthode `hookDisplayNav()` qui délègue au rendu existant, et réinstallez le module. Assurez-vous que le hook `header` est bien enregistré pour le chargement des CSS/JS.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
DéveloppementIntermédiaire5 FAQ

Ajouter un champ date personnalisé aux détails de commande PrestaShop

Pour ajouter une date personnalisée aux lignes de commande PrestaShop, ajoutez une colonne à ps_order_detail, créez un override d'OrderDetail pour déclarer le champ dans l'ObjectModel, puis mettez à jour via AJAX avec instanciation propre de l'objet et casting systématique des identifiants en (int).

PS 1.7 PS 8.x
Lire l'article
DéveloppementIntermédiaire5 FAQ

Afficher les déclinaisons produit sur les pages listing PrestaShop

Pour afficher les déclinaisons sur les listings produit PrestaShop, créez une méthode SQL joignant les tables d'attributs, assignez le résultat à Smarty dans le hook du module ou du contrôleur, puis parcourez le tableau dans le template avec un foreach. Attention au cache Smarty et à la déclaration de la variable dans la classe.

PS 1.5 PS 1.6 PS 1.7 PS 8.x
Lire l'article
📦

Catalogue

22 articles

Produits, catégories, attributs, import/export

CatalogueIntermédiaire5 FAQ

Exporter produits PrestaShop via SQL Manager : requête complète et pièges

Requête SQL complète et commentée pour exporter tout le catalogue PrestaShop via le SQL Manager, avec les pièges courants à éviter (doublons fabricant, produit cartésien catégories/images, mode SQL strict).

PS 1.6 PS 1.7 PS 8.x
Lire l'article
CatalogueIntermédiaire5 FAQ

Afficher les miniatures de sous-catégories dans PrestaShop

Les miniatures de sous-catégories manquantes dans PrestaShop proviennent généralement d'un fichier image absent dans img/c/, de permissions incorrectes ou d'un cache obsolète. Diagnostic en 5 étapes : vérifier le fichier physique, les droits, purger le cache, inspecter la classe Category et contrôler la base de données.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
CatalogueIntermédiaire5 FAQ

Exporter les EAN par produit avec les ventes mensuelles en SQL PrestaShop

Requête SQL pour croiser les codes EAN13 des déclinaisons PrestaShop avec les volumes de ventes mensuels, en gérant le piège du GROUP BY strict et les produits sans déclinaison via COALESCE.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
CatalogueIntermédiaire5 FAQ

Mise à jour massive de id_category_default : pourquoi le back-office ne reflète pas vos changements

Quand vous modifiez id_category_default en SQL, le back-office PrestaShop ne reflète pas le changement car il lit ps_product_shop, pas ps_product. Il faut impérativement mettre à jour les deux tables — c'est une conséquence de l'architecture multiboutique intégrée au cœur de PrestaShop depuis la version 1.5.

PS 1.5 PS 1.6 PS 1.7 PS 8.x
Lire l'article
CatalogueIntermédiaire7 FAQ

Requête SQL pour exporter les produits PrestaShop en CSV avec toutes les images

Requête SQL complète pour exporter tous les produits PrestaShop en CSV avec reconstruction automatique des URLs d'images fragmentées, compatible 1.6 à 8.x, personnalisable avec déclinaisons, promotions et filtres.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
CatalogueIntermédiaire7 FAQ

Import CSV de produits PrestaShop : résoudre les erreurs courantes

Les erreurs d'import CSV PrestaShop proviennent principalement de quatre causes : un encodage non UTF-8 (utilisez LibreOffice plutôt qu'Excel), un mauvais séparateur de colonnes (point-virgule obligatoire), un mapping de champs incorrect et une mauvaise gestion des identifiants produit. Testez toujours sur un petit échantillon avant d'importer l'ensemble du catalogue.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
CatalogueIntermédiaire5 FAQ

Extraire les photos produits PrestaShop : SQL, cURL et bonnes pratiques

Pour extraire les photos produits de PrestaShop, reconstituez les URLs des images via une requête SQL sur la table ps_image (en découpant l'id_image en sous-dossiers), puis téléchargez-les en masse avec cURL ou rsync.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
CatalogueIntermédiaire5 FAQ

Import CSV PrestaShop : gérer les sous-catégories homonymes

Lors d'un import CSV PrestaShop, les sous-catégories portant le même nom sont confondues car l'import se base sur le nom. La solution : utiliser les ID numériques des catégories dans le CSV et activer l'option "Forcer les identifiants" dans le back-office.

PS 1.7 PS 8.x
Lire l'article
CatalogueIntermédiaire5 FAQ

Modifier la position des produits sur les pages catégories PrestaShop

Pour modifier dynamiquement l'ordre des produits en catégorie PrestaShop, exploitez le paramètre natif $random de Category::getProducts() ou utilisez ORDER BY RAND(seed) avec une graine fixe par session pour éviter les doublons de pagination. Sur les gros catalogues, préférez un cron qui pré-calcule les positions.

PS 1.7 PS 8.x
Lire l'article
CatalogueIntermédiaire16 FAQ

Répartir 4000+ produits dans plusieurs catégories PrestaShop par import CSV

Pour répartir plus de 4 000 produits dans de nouvelles catégories PrestaShop, exportez le catalogue via SQL, préparez un CSV avec les nouvelles affectations (le premier ID de catégorie = catégorie par défaut), puis importez avec l'option « Utiliser l'ID comme clé » activée. Découpez en lots de 500 si le serveur plante, et n'oubliez pas les redirections 301 pour préserver le SEO.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
CatalogueIntermédiaire5 FAQ

Afficher des produits associés sur la fiche produit PrestaShop

PrestaShop propose nativement les accessoires pour associer des produits manuellement. Pour un affichage automatique par catégorie, développez un module dédié hookable sur displayFooterProduct avec une requête filtrant les produits de la même catégorie.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
CatalogueIntermédiaire15 FAQ

Import CSV PrestaShop : résoudre les problèmes d'affichage des réductions

Les problèmes d'affichage des réductions après un import CSV PrestaShop viennent soit de limites serveur trop basses (PHP/MySQL) qui tronquent silencieusement l'import, soit d'un cache non vidé alors que les données sont correctement enregistrées en base. Diagnostic en base d'abord, configuration serveur ensuite.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
CatalogueIntermédiaire7 FAQ

Filtrer les produits en stock dans ps_featuredproducts PrestaShop

Le module ps_featuredproducts affiche par défaut les produits en rupture de stock. Pour les filtrer, créez un override du module qui modifie la requête SQL via le SearchProvider, ou développez un module personnalisé avec un filtre sur ps_stock_available. Évitez le simple masquage Smarty sur les gros catalogues.

PS 1.7 PS 8.x
Lire l'article
CatalogueDébutant6 FAQ

Sous-catégories et déclinaisons PrestaShop : guide complet

Les sous-catégories organisent l'arborescence de votre catalogue PrestaShop, tandis que les déclinaisons gèrent les variantes (taille, couleur) d'un même produit. Maîtriser cette distinction est essentiel pour un catalogue propre, un stock fiable et un bon référencement.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
CatalogueIntermédiaire15 FAQ

Importer des photos produits dans PrestaShop : guide complet CSV et debug

Pour importer des images produits dans PrestaShop via CSV, utilisez des URLs absolues séparées par des virgules dans la colonne images (la première URL devient la couverture). En cas de problème d'affichage, vérifiez les tables ps_image et ps_image_shop, les fichiers physiques dans img/p/, et régénérez les miniatures.

PS 1.7 PS 8.x
Lire l'article
CatalogueIntermédiaire7 FAQ

Simplifier la création de produits PrestaShop : 4 approches comparées

Quatre approches pour simplifier la création de produits PrestaShop : import CSV natif (le plus rapide pour les lots), outils tiers comme Store Commander (gestion tableur en temps réel), module back-office custom (formulaire simplifié), ou formulaire front-office avec validation (idéal pour les marketplaces). Le choix dépend du volume et du profil utilisateur.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
CatalogueIntermédiaire6 FAQ

Exporter les produits PrestaShop via SQL : requêtes complètes et bonnes pratiques

Exportez vos produits PrestaShop via des requêtes SQL dans phpMyAdmin pour un contrôle total sur les données extraites. Filtrez toujours par id_lang pour éviter les doublons, et utilisez GROUP_CONCAT pour agréger catégories et images en une seule ligne par produit.

PS 1.4 PS 1.5 PS 1.6 PS 1.7 PS 8.x
Lire l'article
CatalogueIntermédiaire5 FAQ

Contrôler l'ordre d'affichage des attributs produit dans PrestaShop

L'ordre d'affichage des déclinaisons PrestaShop est contrôlé par la clause ORDER BY de la méthode getAttributesGroups() dans la classe Product. Pour trier par référence au lieu de la position par défaut, créez un override qui remplace ORDER BY ag.position ASC, a.position ASC par ORDER BY pa.reference ASC.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
CatalogueIntermédiaire5 FAQ

Trier les produits par référence dans PrestaShop 1.7 et 8.x

Pour trier les produits par référence dans PrestaShop, modifiez le AdminProductDataProvider (override en 1.7, décoration de service en 8.x) en changeant le paramètre $orderBy par défaut de 'id_product' à 'reference'. Pensez à préfixer vos références avec des zéros pour un tri numérique correct.

PS 1.7 PS 8.x
Lire l'article
CatalogueIntermédiaire7 FAQ

Catégorie ROOT PrestaShop : comprendre et corriger l'arborescence en base de données

Si toutes vos catégories PrestaShop sont marquées is_root_category = 1, seule la catégorie 2 (Accueil) doit porter ce flag. Corrigez en base de données avec deux requêtes UPDATE, vérifiez la hiérarchie parent-enfant, puis régénérez l'arbre des catégories.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
CatalogueIntermédiaire5 FAQ

Mettre à jour son catalogue PrestaShop par import CSV : guide complet

Pour mettre à jour votre catalogue PrestaShop par CSV sans créer de doublons, utilisez l'option « Forcer les identifiants » ou « Utiliser la référence comme clé » dans l'outil d'import natif, et exportez vos données existantes via le Gestionnaire SQL pour faire correspondre les ID.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
CatalogueIntermédiaire5 FAQ

Import CSV PrestaShop lent : optimiser l'import de milliers de produits

Un import CSV lent dans PrestaShop est généralement causé par un mauvais encodage du fichier (utilisez LibreOffice en UTF-8, pas Excel) et une configuration serveur sous-dimensionnée. Réduisez le nombre de colonnes au strict nécessaire, augmentez les limites PHP, désactivez l'indexation pendant l'import, et privilégiez un VPS plutôt qu'un mutualisé pour les catalogues volumineux.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
🎨

Design & Thèmes

21 articles

Thèmes, CSS, responsive, templates Smarty/Twig

Design & ThèmesIntermédiaire5 FAQ

Résoudre les problèmes d'affichage PrestaShop sur iPhone et iOS

Les problèmes d'affichage PrestaShop sur iPhone sont principalement causés par les spécificités de Safari/WebKit : menus hover incompatibles avec le tactile, zoom automatique sur les formulaires, unité vh incorrecte et préfixes CSS manquants. Ce guide couvre les cinq bugs les plus fréquents avec leurs solutions CSS et JavaScript à jour.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
Design & ThèmesDébutant5 FAQ

Personnaliser le fond du bloc éditorial PrestaShop (CSS complet)

Pour ajouter une image de fond au bloc éditorial PrestaShop, utilisez `background-image` en CSS sur `#htmlcontent_home`. Pour un rendu pleine largeur, dépassez le conteneur Bootstrap avec `calc(-50vw + 50%)` ou déplacez le hook hors du `.container` dans le template.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
Design & ThèmesDébutant5 FAQ

Personnaliser le bouton Ajouter au panier dans PrestaShop

Le texte du bouton « Ajouter au panier » se modifie sans code via les traductions du back-office PrestaShop. Pour une personnalisation avancée (style, Quick View, conditions par catégorie), il faut surcharger les templates du thème dans un thème enfant en conservant l'attribut data-button-action="add-to-cart".

PS 1.6 PS 1.7 PS 8.x
Lire l'article
Design & ThèmesIntermédiaire5 FAQ

Ajouter des boutons + et - pour la quantité sur la fiche produit PrestaShop

PrestaShop 1.7 et 8.x intègrent nativement des boutons +/- via TouchSpin dans le thème Classic. Pour les thèmes personnalisés, une implémentation en Vanilla JS avec des boutons HTML accessibles, un dispatch d'événement change et le respect de la quantité minimale suffit à recréer cette fonctionnalité.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
Design & ThèmesDébutant6 FAQ

Personnaliser les couleurs de fond et du menu dans PrestaShop

Pour modifier les couleurs de fond et du menu PrestaShop, désactivez d'abord le CCC (cache CSS) dans les paramètres de performance, identifiez les bons sélecteurs avec l'inspecteur du navigateur, appliquez vos styles dans un thème enfant, puis réactivez le CCC pour la production.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
Design & ThèmesIntermédiaire5 FAQ

Optimiser le responsive design d'une boutique PrestaShop de literie

Guide complet pour optimiser le responsive design d'une boutique PrestaShop spécialisée literie : diagnostic des problèmes courants (grilles, images, sélecteurs de déclinaisons, tableaux de tailles), corrections CSS et templates, et checklist de validation avant mise en production.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
Design & ThèmesDébutant5 FAQ

Icônes disparues et images tronquées sur PrestaShop : diagnostic CSS

Les icônes disparues sur PrestaShop sont causées par des propriétés CSS `content` vidées dans les pseudo-éléments `::before` — il suffit de restaurer les bons caractères Unicode. Les images produit tronquées se corrigent en ajustant la propriété `max-width` du conteneur image dans le CSS du thème.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
Design & ThèmesIntermédiaire5 FAQ

Supprimer les bordures blanches des images produit PrestaShop

Les bordures blanches sur les images produit PrestaShop apparaissent quand le ratio de l'image source ne correspond pas au format cible. La solution recommandée est d'harmoniser les ratios avant upload ; pour un correctif immédiat, utilisez object-fit: cover en CSS ou affichez l'image originale via le modificateur Smarty spacify.

PS 1.7 PS 8.x
Lire l'article
Design & ThèmesDébutant5 FAQ

Adapter la taille d'une bannière PrestaShop au-delà des limites du thème

Pour adapter une bannière trop grande dans PrestaShop, surchargez le CSS du module banner avec `width: 100%; max-width: 1170px; height: auto; margin: 0 auto` et supprimez les contraintes `max-height` du conteneur. Utilisez toujours l'inspecteur navigateur pour identifier les règles CSS en cause avant de modifier quoi que ce soit.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
Design & ThèmesIntermédiaire7 FAQ

Intégrer et personnaliser Font Awesome dans PrestaShop

Pour intégrer des icônes Font Awesome dans PrestaShop, utilisez les pseudo-éléments CSS ::before avec le code Unicode de l'icône — aucune modification de template requise. En 2025, privilégiez Font Awesome 6 en local avec font-display: swap pour des performances optimales.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
Design & ThèmesIntermédiaire6 FAQ

Afficher 3 blocs côte à côte sur la page d'accueil PrestaShop

Pour afficher 3 blocs côte à côte sur la page d'accueil PrestaShop, utilisez la grille Bootstrap intégrée avec des colonnes col-md-4, soit directement dans le template index.tpl pour une solution rapide, soit via un module dédié pour une approche maintenable et administrable.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
Design & ThèmesIntermédiaire5 FAQ

Redimensionner les images des modules Produits Vus et Nouveautés PrestaShop

Ne redimensionnez jamais les images PrestaShop via CSS : remplacez le type d'image dans le template Smarty (medium_default → small_default) pour servir directement le bon format et améliorer vos performances web.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
Design & ThèmesIntermédiaire5 FAQ

Corriger l'affichage du menu déroulant multi-niveaux dans PrestaShop

Un menu PrestaShop qui s'affiche mal est souvent causé par une mauvaise attribution des classes CSS Bootstrap : les catégories de niveau 2 doivent recevoir 'dropdown' (pas 'dropdown-submenu') et seules les catégories de niveau 3+ doivent utiliser 'dropdown-submenu'. Le correctif consiste à distinguer explicitement le level_depth dans le code PHP du module de menu.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
Design & ThèmesIntermédiaire7 FAQ

Intégrer un design Photoshop dans PrestaShop sans casser le responsive

Les tranches Photoshop génèrent des tableaux HTML non responsive et incompatibles avec les styles PrestaShop. La solution pérenne est de reconstruire l'intégration avec la grille Bootstrap, nativement disponible dans PrestaShop depuis la version 1.6, pour obtenir un design adaptatif sur tous les écrans.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
Design & ThèmesDébutant5 FAQ

Dupliquer un thème PrestaShop pour protéger ses modifications des mises à jour

Ne modifiez jamais le thème par défaut de PrestaShop : dupliquez-le (1.6) ou créez un thème enfant (1.7/8.x) pour que vos personnalisations survivent à toutes les mises à jour du CMS et des modules.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
Design & ThèmesIntermédiaire5 FAQ

Pagination absente sur les pages catégories PrestaShop : diagnostic et correction

La disparition de la pagination sur les pages catégories PrestaShop est presque toujours causée par un fichier category.tpl personnalisé qui n'inclut plus le template pagination.tpl. Le diagnostic consiste à vérifier le thème actif, comparer avec le thème par défaut, et restaurer l'include manquant.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
Design & ThèmesDébutant5 FAQ

Activer le bouton filtre de la navigation à facettes horizontale PrestaShop

Le bouton filtre de la navigation à facettes horizontale est souvent masqué par une règle CSS display:none sur #facets_search_center dans le fichier theme.css. La correction consiste à surcharger cette règle via un fichier custom.css ou un thème enfant pour garantir la pérennité du correctif.

PS 1.7 PS 8.x
Lire l'article
Design & ThèmesDébutant5 FAQ

Redimensionner les colonnes de la fiche produit PrestaShop avec Bootstrap

Pour redimensionner les colonnes de la fiche produit PrestaShop, modifiez les classes Bootstrap (col-md-*) directement dans product.tpl en respectant la règle des 12 colonnes. N'utilisez jamais de largeurs en pixels ou de !important qui cassent le responsive.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
Design & ThèmesDébutant7 FAQ

Personnaliser les couleurs d'un thème PrestaShop sans sacrifier les performances

Pour personnaliser les couleurs d'un thème PrestaShop, désactivez d'abord le Smart Cache CSS pour identifier les fichiers à modifier, utilisez un fichier custom.css dédié avec des variables CSS, et mesurez systématiquement l'impact sur les performances (TTFB < 200 ms recommandé par Google).

PS 1.6 PS 1.7 PS 8.x
Lire l'article
Design & ThèmesIntermédiaire5 FAQ

Optimiser l'UX d'une boutique PrestaShop : menu, scroll infini et navigation

Guide complet pour optimiser l'UX d'une boutique PrestaShop : menu déroulant avec compteur de produits (requête SQL optimisée), scroll infini maîtrisé via bouton de chargement, header sticky en CSS moderne, et checklist UX complète avant mise en production.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
Design & ThèmesIntermédiaire5 FAQ

Créer un thème PrestaShop : overrides, assets et bonnes pratiques

Créer un thème PrestaShop propre repose sur la maîtrise du système d'overrides (hiérarchie de fichiers, suppression du class_index.php, permissions), la gestion correcte des assets CSS/JS via setMedia() ou Webpack, et la compréhension du CCC pour éviter les pièges de concaténation en production.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
🔍

SEO

20 articles

Référencement, meta, sitemap, données structurées

SEOIntermédiaire5 FAQ

Rendre sa boutique PrestaShop responsive et optimiser son SEO

Pour optimiser votre boutique PrestaShop, trois actions prioritaires : migrer vers un thème responsive natif (Bootstrap sur 1.6+, CSS Grid sur 8.x), personnaliser les balises title de chaque fiche produit, et soigner systématiquement vos ancres de liens pour renforcer votre maillage SEO.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
SEOAvancé5 FAQ

URLs simplifiées en hébreu sur PrestaShop : diagnostic et solutions

PrestaShop supprime les caractères hébraïques lors de la génération d'URLs simplifiées car str2url() ne gère que la translittération latine. La solution combine l'activation de PS_ALLOW_ACCENTED_CHARS_URL et un override de Tools::str2url() pour préserver les caractères Unicode non-latins.

PS 1.7 PS 8.x
Lire l'article
SEOIntermédiaire5 FAQ

Multiboutique PrestaShop : quelle structure d'URL choisir par langue ?

Pour un PrestaShop multiboutique international, privilégiez les sous-domaines avec code ISO (fr-fr.maboutique.com) : c'est le meilleur compromis entre signal SEO, coût et maintenabilité. Complétez toujours avec les balises hreflang et le ciblage géographique dans Search Console.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
SEOIntermédiaire5 FAQ

URL canonique PrestaShop : éviter le contenu dupliqué et protéger son SEO

Une chute de positionnement Google sur PrestaShop est souvent causée par du contenu dupliqué interne. L'implémentation correcte des URLs canoniques, combinée à une configuration serveur propre et une bonne UX, permet de consolider l'autorité SEO et de stabiliser durablement vos positions.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
SEOIntermédiaire5 FAQ

Optimiser le référencement de sa boutique PrestaShop : guide complet

Le référencement PrestaShop repose sur trois piliers indissociables : l'exploitation de Google Search Console pour piloter sa stratégie, une optimisation on-page systématique (title, meta, contenu structuré, vitesse) et une stratégie de backlinks qualitative. Travaillez en masse via CSV et soumettez vos pages optimisées pour une indexation rapide.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
SEOIntermédiaire5 FAQ

Balises title incorrectes dans Google : diagnostic et correction PrestaShop

Un title incorrect dans Google provient soit du cache de Googlebot qui conserve une ancienne version, soit d'un problème dans le template head.tpl du thème, soit d'une réécriture volontaire par Google. Diagnostiquez avec curl et la Search Console, corrigez le template si nécessaire, puis forcez la réindexation.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
SEODébutant5 FAQ

Référencer sa boutique PrestaShop : guide complet SEO et performance

Le référencement d'une boutique PrestaShop repose sur trois piliers : la performance technique (TTFB < 200 ms, modules minimaux), le suivi via Google Search Console, et un design responsive. Le SEO se travaille dès la conception du site, pas après la mise en ligne.

PS 1.7 PS 8.x
Lire l'article
SEOIntermédiaire5 FAQ

Configurer Google Shopping avec PrestaShop : subdivisions et campagnes rentables

Pour des campagnes Google Shopping rentables sur PrestaShop, structurez votre flux avec des titres optimisés et des custom labels, puis subdivisez vos produits par marque, catégorie et marge — sans sur-segmenter au-delà du seuil de données exploitables.

PS 1.7 PS 8.x
Lire l'article
SEOIntermédiaire5 FAQ

Choisir un thème PrestaShop optimisé SEO : critères et bonnes pratiques

Le thème PrestaShop est la fondation technique de votre SEO : vitesse, balisage Hn, données structurées et responsive sont les critères clés à vérifier avant tout achat. En PrestaShop 8.x, le thème Hummingbird offre une base moderne et performante pour un thème enfant sur mesure.

PS 1.7 PS 8.x
Lire l'article
SEOIntermédiaire7 FAQ

Empêcher l'indexation des pages tag PrestaShop malgré robots.txt

Le fichier robots.txt bloque le crawl mais pas l'indexation : les pages tag PrestaShop restent dans Google. La solution est d'injecter une balise meta noindex conditionnelle dans le head via Smarty ou un module hook displayHeader, puis de retirer le Disallow correspondant du robots.txt.

PS 1.7 PS 8.x
Lire l'article
SEODébutant7 FAQ

Référencement PrestaShop : maîtriser Google Search Console pour votre boutique

Google Search Console est l'outil SEO fondamental et gratuit que tout marchand PrestaShop doit maîtriser avant d'investir dans d'autres solutions. Concentrez-vous dessus pendant vos 8 à 12 premiers mois pour comprendre votre indexation, soumettre vos pages et analyser vos performances réelles dans Google.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
SEOIntermédiaire5 FAQ

Rich Snippets PrestaShop : corriger les données structurées produit

Les Rich Snippets produit PrestaShop échouent souvent à cause d'un type Schema.org incorrect (Offers au lieu de Product), de conflits entre les accolades JSON-LD et le moteur Smarty, ou de propriétés obligatoires manquantes. La solution : utiliser le bon type Product, encadrer le JSON-LD avec {literal} dans les templates .tpl, et valider systématiquement avec l'outil de test Google.

PS 1.7 PS 8.x
Lire l'article
SEOIntermédiaire6 FAQ

Personnaliser la balise H1 des fiches produits PrestaShop

Ajoutez un champ H1 personnalisé et multilingue à vos fiches produits PrestaShop en combinant une colonne SQL dans ps_product_lang, un override de la classe Product et un override de AdminImportController pour l'import CSV en masse. Compatible de PrestaShop 1.6 à 8.x.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
SEOIntermédiaire5 FAQ

Balises Open Graph mal positionnées dans PrestaShop : diagnostic et correction

Si des balises Open Graph (og:title, og:description) s'affichent en texte visible sur votre boutique PrestaShop, c'est qu'un module les injecte dans le <body> au lieu du <head>. Identifiez le module fautif, déplacez-le sur le hook displayHeader, et validez avec le Facebook Sharing Debugger.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
SEOIntermédiaire7 FAQ

Ajouter un H1 personnalisé aux pages catégories PrestaShop

Ajoutez un champ h1_cat dans ps_category_lang et créez un override de la classe Category pour dissocier le nom de navigation du H1 SEO sur vos pages catégories PrestaShop. Import CSV en masse possible via un override de AdminImportController.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
SEOIntermédiaire7 FAQ

URLs 404 avec double domaine dans PrestaShop : diagnostic et correction

Les URLs 404 avec nom de domaine dupliqué dans PrestaShop proviennent généralement de produits ayant la catégorie « Accueil » comme catégorie par défaut. La correction passe par la réaffectation des catégories, la régénération du .htaccess et l'implémentation de balises canonical robustes.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
SEOIntermédiaire7 FAQ

Obfuscation de liens PrestaShop : Smarty + JavaScript vanilla pour le SEO

L'obfuscation de liens PrestaShop via Base64 en Smarty et JavaScript vanilla permet de contrôler la distribution du PageRank sans impacter l'expérience utilisateur. La clé technique : utiliser {assign} pour capturer les URLs générées par {url entity=...} avant d'appliquer le modifier |base64_encode, et décoder côté client avec decodeURIComponent(escape(atob())) pour supporter les caractères UTF-8.

PS 1.7 PS 8.x
Lire l'article
SEODébutant15 FAQ

Référencement PrestaShop : guide complet pour optimiser son SEO

Pour positionner une boutique PrestaShop dans le top 3 Google, concentrez-vous sur cinq piliers : URLs ciblées sur 2-3 mots-clés, TTFB sous 200 ms, HTML valide W3C, balise title optimisée sans nom de boutique, et meta descriptions orientées conversion.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
SEOIntermédiaire7 FAQ

Optimiser les URL PrestaShop pour le SEO : structure courte et performante

Pour optimiser vos URL PrestaShop, configurez des routes courtes sans identifiant numérique, mettez en place des redirections 301 systématiques depuis les anciennes URL, implémentez les balises canoniques et soumettez vos nouvelles URL via Google Search Console pour accélérer la réindexation.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
SEODébutant7 FAQ

Balise Title PrestaShop : configuration et optimisation SEO complète

La balise title se configure dans le back-office PrestaShop (onglet SEO de chaque entité) et se génère via le template head.tpl. Si Google affiche un title différent, vérifiez le code source puis forcez la réindexation via Search Console.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
⚙️

Configuration

18 articles

Installation, paramétrage, back-office

ConfigurationDébutant5 FAQ

Thème PrestaShop : le hook Home ne s'affiche plus — diagnostic et correction

Quand un module PrestaShop ne s'affiche plus en page d'accueil, le problème vient presque toujours d'un mauvais hook : vérifiez dans Modules > Positions que le module est greffé sur le hook réellement utilisé par votre thème (souvent « Top » au lieu de « Home »), puis réordonnez si nécessaire.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
ConfigurationIntermédiaire5 FAQ

Créer un site immobilier avec PrestaShop : retour d'expérience complet

PrestaShop peut être détourné efficacement pour créer un site immobilier en mappant les produits sur des biens, les catégories sur des types de biens et les caractéristiques sur des critères de recherche. Le framework Scrapy permet de migrer en masse les données d'un ancien site.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
ConfigurationIntermédiaire5 FAQ

Changer le nom de domaine PrestaShop : guide complet sans coupure

Pour changer le nom de domaine d'une boutique PrestaShop, il faut intervenir à trois niveaux : configurer le nouveau domaine sur le serveur web (Apache ou Nginx), mettre à jour les tables ps_shop_url et ps_configuration en base de données, puis mettre en place des redirections 301 depuis l'ancien domaine pour préserver le référencement.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
ConfigurationIntermédiaire5 FAQ

Checklist complète avant mise en production d'un site PrestaShop

Checklist complète en 7 points pour réussir la mise en production d'un site PrestaShop : performances, conformité RGPD et cookies (pas toujours obligatoire selon la CNIL), SEO technique, sécurité, test du tunnel d'achat, mentions légales et monitoring post-lancement.

PS 1.7 PS 8.x
Lire l'article
ConfigurationDébutant5 FAQ

Modifier les titres et libellés du thème PrestaShop (Popular Products, Vous aimerez aussi)

Pour modifier les titres de sections comme « Popular Products » ou « Vous aimerez aussi » dans PrestaShop, utilisez le système de traductions du thème dans le back-office (International → Traductions), puis videz le cache pour appliquer les changements.

PS 1.7 PS 8.x
Lire l'article
ConfigurationIntermédiaire5 FAQ

Corriger la devise affichée dans le dashboard PrestaShop (DashGoals)

Le dashboard PrestaShop (DashGoals) peut afficher la mauvaise devise si PS_CURRENCY_DEFAULT pointe vers un mauvais identifiant. Corrigez la valeur en base de données ou créez un override d'AdminController utilisant Currency::getIdByIsoCode() pour forcer la devise correcte.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
ConfigurationDébutant5 FAQ

Résoudre l'erreur memory_limit PHP après installation d'un thème PrestaShop

L'erreur memory_limit lors de l'installation d'un thème PrestaShop se résout en augmentant la directive à 512 Mo minimum via php.ini, .htaccess ou .user.ini, après avoir diagnostiqué la configuration actuelle avec phpinfo().

PS 1.6 PS 1.7 PS 8.x
Lire l'article
ConfigurationIntermédiaire5 FAQ

Navigation à facettes absente de la recherche PrestaShop : solutions

La navigation à facettes est absente de la page de recherche PrestaShop car le module natif ne supporte que les pages catégories. La solution passe par la vérification du layout du thème (colonne gauche + hook displayLeftColumn), puis éventuellement un override du module ou un développement spécifique pour étendre le filtrage au contrôleur de recherche.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
ConfigurationDébutant5 FAQ

Modifier le texte « Connexion » et autres libellés dans PrestaShop

Pour modifier le texte « Connexion » ou tout autre libellé dans PrestaShop, utilisez le système de traductions du back-office (International → Traductions → Thème). Si la page des traductions ne charge pas, purgez le cache Symfony en renommant var/cache/prod et var/cache/dev.

PS 1.7 PS 8.x
Lire l'article
ConfigurationIntermédiaire8 FAQ

Masquer la quantité et le prix HT dans le panier PrestaShop

Pour masquer la quantité ou le prix HT du panier PrestaShop, commentez les cellules correspondantes dans les templates Smarty du panier (shopping-cart.tpl en 1.6, cart-detailed.tpl en 1.7/8.x) et ajustez impérativement les colspan pour éviter les décalages visuels.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
ConfigurationIntermédiaire5 FAQ

Modifier une adresse e-mail dans PrestaShop : back-office, SQL et API

Pour modifier une adresse e-mail dans PrestaShop, privilégiez le back-office (Clients ou Employés). En cas d'urgence, une requête SQL UPDATE sur ps_customer ou ps_employee fonctionne, à condition de vérifier l'unicité de l'adresse et de vider le cache ensuite.

PS 1.7 PS 8.x
Lire l'article
ConfigurationDébutant7 FAQ

Débuter sur PrestaShop : guide complet pour bien démarrer son e-commerce

Pour bien débuter sur PrestaShop, choisissez la version 8.1.x, installez-la sur un VPS correctement configuré (PHP 8.1+, MariaDB 10.6+), et accordez-vous au moins un mois d'apprentissage sur un environnement de test avant toute mise en production.

PS 1.7 PS 8.x
Lire l'article
ConfigurationIntermédiaire7 FAQ

Configurer le suivi des conversions Google Tag Manager dans PrestaShop

Pour intégrer Google Tag Manager dans PrestaShop, le snippet JavaScript nécessite des balises {literal} dans les templates Smarty tandis que le snippet noscript n'en a pas besoin. Privilégiez un module avec les hooks displayHeader et displayAfterBodyOpeningTag pour une intégration maintenable qui survit aux mises à jour du thème.

PS 1.7 PS 8.x
Lire l'article
ConfigurationDébutant8 FAQ

Supprimer ou désactiver l'opt-in partenaires sur PrestaShop

L'opt-in partenaires se désactive dans Paramètres de la boutique → Clients. Si la case persiste malgré la désactivation, vérifiez le cache Smarty, les overrides et le template du thème — sur PrestaShop 8.x, un hook Symfony permet aussi de retirer le champ proprement via un module.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
ConfigurationIntermédiaire7 FAQ

Reprendre un site PrestaShop : accès admin et base de données

Pour reprendre un site PrestaShop, corrigez d'abord la configuration de la base de données dans settings.inc.php (ou parameters.php), puis réinitialisez le mot de passe admin via phpMyAdmin en utilisant le bon mécanisme de hachage selon votre version (MD5 + cookie_key pour PS 1.6, bcrypt pour PS 1.7/8.x). Sécurisez ensuite tous les accès.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
ConfigurationAvancé5 FAQ

Créer un site de réservation hôtelière avec PrestaShop : guide complet

PrestaShop peut servir de système de réservation hôtelière en détournant les déclinaisons comme dates et les stocks comme disponibilités, avec gestion tarifaire par import CSV et affichage calendrier Ajax — une solution économique idéale pour les petits établissements indépendants.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
ConfigurationIntermédiaire7 FAQ

Installer PrestaShop 1.6 sans erreur 500 : permissions, PHP et performances

Pour installer PrestaShop 1.6 sans erreur 500 : consultez error.log d'Apache pour diagnostiquer, corrigez les permissions (755/644 avec chown www-data), utilisez PHP 7+ pour diviser le TTFB par deux, et activez OPcache + Memcached dès le départ.

PS 1.6 PS 8.x
Lire l'article
ConfigurationIntermédiaire7 FAQ

Migrer PrestaShop sur un VPS OVH : guide complet du serveur au SSL

Guide complet pour migrer PrestaShop sur un VPS OVH Cloud : choix du serveur, installation de la stack (Nginx/Apache + PHP 8.1 + MariaDB), configuration des vhosts, SSL Let's Encrypt gratuit, et procédure de transfert de boutique en 6 étapes avec les bonnes pratiques de sécurité.

PS 1.6 PS 1.7 PS 8.x
Lire l'article

Performance

16 articles

Vitesse, cache, optimisation SQL, Core Web Vitals

PerformanceIntermédiaire7 FAQ

Optimiser les performances PrestaShop : configuration cache et serveur

Guide complet pour optimiser les performances d'une boutique PrestaShop : configuration du cache Smarty, OPcache/Redis, sous-domaines médias, désactivation des modules superflus et bonnes pratiques pour atteindre un temps de réponse sous 300 ms, de la version 1.6 à la 8.x.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
PerformanceIntermédiaire5 FAQ

Configurer le cache des feuilles de styles CSS dans PrestaShop

Les modifications CSS invisibles dans PrestaShop résultent de plusieurs couches de cache (navigateur, CCC, serveur). Désactivez le CCC en développement, travaillez sur un environnement séparé, et utilisez le cache busting en production pour forcer le rechargement des styles.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
PerformanceIntermédiaire5 FAQ

Diagnostiquer et résoudre la lenteur d'un site PrestaShop

Pour diagnostiquer la lenteur d'un site PrestaShop, mesurez le TTFB via les outils navigateur, activez le debug profiling pour identifier les modules et requêtes SQL lents, puis vérifiez la table ps_configuration qui peut être anormalement gonflée suite à un bug connu de PrestaShop 1.6.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
PerformanceIntermédiaire7 FAQ

Temps de chargement long sur PrestaShop : diagnostic et optimisation complète

Un temps de chargement excessif sur PrestaShop provient généralement d'un excès d'assets CSS/JS (modules inutiles), d'un hébergement mutualisé sous-dimensionné et d'un manque d'optimisation côté serveur. Le diagnostic passe par le profiling intégré et l'audit des DevTools, puis l'optimisation suit un ordre logique : nettoyer les modules, optimiser les assets, configurer le cache et adapter l'hébergement.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
PerformanceIntermédiaire5 FAQ

Optimiser les performances et le SEO d'une boutique PrestaShop : guide complet

Pour optimiser une boutique PrestaShop, activez la concaténation CSS/JS et le cache navigateur, configurez un sous-domaine sans cookie ou un CDN pour les ressources statiques, migrez vos icônes vers du SVG, et posez les fondations SEO avec Google Search Console et GA4.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
PerformanceIntermédiaire7 FAQ

PrestaShop bloqué ou lent : diagnostiquer un disque saturé ou une base gonflée

Un PrestaShop qui plante subitement est généralement causé par un disque serveur saturé ou une base de données gonflée par les tables de statistiques (ps_connections, ps_guest). La solution : purger ces tables, désactiver les modules stats intégrés au profit de Google Analytics, et migrer vers un hébergement adapté si vous êtes en mutualisé.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
PerformanceIntermédiaire6 FAQ

Images adaptatives dans PrestaShop : srcset, lazy loading et performances

Les images adaptatives dans PrestaShop s'implémentent via l'attribut srcset dans les templates Smarty, combiné au lazy loading natif ou à LazySizes pour le chargement différé. Sur PrestaShop 8.x, activez également le WebP pour un gain de poids de 25 à 35 %.

PS 1.7 PS 8.x
Lire l'article
PerformanceIntermédiaire5 FAQ

PrestaShop augmente le poids de vos images : causes et solutions

PrestaShop augmente le poids des images car la librairie GD réencode chaque fichier avec une compression basique. Pour corriger : vérifiez GD, réduisez la qualité JPEG à 80, pré-compressez vos images avec TinyPNG et activez le WebP sur PrestaShop 8.x.

PS 1.7 PS 8.x
Lire l'article
PerformanceIntermédiaire8 FAQ

Configurer le cache navigateur via .htaccess sur PrestaShop

Le cache navigateur via .htaccess permet de réduire considérablement le temps de chargement des visites répétées sur PrestaShop en configurant mod_expires et mod_headers pour les ressources statiques, avec des durées longues (1 an) grâce au cache-busting natif de PrestaShop.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
PerformanceIntermédiaire6 FAQ

Réduire le JavaScript inutilisé sur PrestaShop : guide complet

Pour réduire le JavaScript inutilisé sur PrestaShop, commencez par diagnostiquer avec Chrome Coverage, désactivez les modules inutiles par page via les positions, puis optimisez le bundle theme.js avec Webpack (tree-shaking, code splitting, imports sélectifs).

PS 1.7 PS 8.x
Lire l'article
PerformanceDébutant5 FAQ

PrestaShop lent et images qui disparaissent : diagnostic complet

Un PrestaShop lent avec des images manquantes se diagnostique en quatre étapes : test multi-navigateurs, activation du CCC (concaténation/compression des assets), audit des tâches CRON gourmandes, et analyse avec des outils comme GTmetrix. Les images disparaissent généralement à cause de miniatures non régénérées ou de permissions incorrectes.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
PerformanceIntermédiaire15 FAQ

Site PrestaShop lent : diagnostic complet et optimisations serveur

Un site PrestaShop lent provient rarement du seul hébergement : requêtes SQL mal optimisées, configuration PHP bridée et absence de parallélisation des assets sont les trois causes principales. Un VPS SSD correctement configuré avec media servers résout 90 % des problèmes.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
PerformanceIntermédiaire7 FAQ

Accélérer un site PrestaShop : guide complet d'optimisation des performances

Pour accélérer PrestaShop, commencez par activer le profiling pour identifier les modules et requêtes SQL qui ralentissent le site, dégraissez les hooks inutiles, ajoutez des index SQL sur les tables critiques, optimisez la configuration serveur (OPcache, Gzip, cache navigateur) et choisissez un hébergement adapté à votre volume.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
PerformanceIntermédiaire5 FAQ

Optimiser le CLS et valider le HTML de votre boutique PrestaShop

Le CLS (stabilité visuelle) doit être optimisé dès la conception de votre thème PrestaShop, pas après la mise en ligne. Auditez avec Lighthouse, validez votre HTML au W3C, puis corrigez les templates Smarty (head.tpl, header.tpl, javascript.tpl) en réservant l'espace des images, préchargeant les polices et différant le JavaScript non critique.

PS 1.7 PS 8.x
Lire l'article
PerformanceIntermédiaire5 FAQ

Optimiser PrestaShop pour le mobile : audit complet et bonnes pratiques

Un thème responsive ne suffit pas pour être mobile-friendly : il faut auditer le robots.txt (ressources CSS/JS bloquées), corriger la structure HTML (H1 manquant), optimiser les performances (WebP, lazy loading, concaténation) et maîtriser son hébergement pour pouvoir intervenir rapidement.

PS 1.7 PS 8.x
Lire l'article
PerformanceIntermédiaire7 FAQ

Optimiser la vitesse de PrestaShop : diagnostic complet et solutions

Pour diagnostiquer un PrestaShop lent, activez le debug profiling par IP, isolez les modules problématiques un par un, analysez les requêtes SQL excessives, vérifiez les logs serveur pour les attaques DDoS, et optimisez le front-end (images WebP, fonts locales, SVG au lieu de Font Awesome).

PS 1.7 PS 8.x
Lire l'article
🐛

Debug

16 articles

Erreurs, logs, profiling, résolution

DebugIntermédiaire5 FAQ

Erreur « Constant __PS_BASE_URI__ already defined » dans PrestaShop

L'erreur « Constant __PS_BASE_URI__ already defined » signale une double inclusion du fichier de configuration PrestaShop. Les trois causes principales sont : une injection de malware (la plus dangereuse), un conflit d'overrides, ou une inclusion manuelle superflue dans un module ou script cron. Le diagnostic passe par la désactivation des overrides et l'audit des fichiers modifiés récemment.

PS 1.5 PS 1.6 PS 1.7 PS 8.x
Lire l'article
DebugIntermédiaire5 FAQ

Erreur 500 PrestaShop : diagnostic et correction quand un thème bloque le back-office

Une erreur 500 après installation d'un thème PrestaShop se résout en renommant le dossier du thème fautif via FTP/SSH pour retrouver l'accès au back-office, puis en activant le mode debug pour identifier et corriger la cause exacte de l'erreur.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
DebugIntermédiaire5 FAQ

Page blanche sur les fiches produits PrestaShop : diagnostic et correction

Une page blanche sur les fiches produits PrestaShop provient généralement d'un module défaillant (souvent Commentaires Produits) ou d'un cache Memcache mal configuré. Activez le mode debug pour identifier l'erreur, désactivez le module ou le cache incriminé, puis mettez à jour ou corrigez.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
DebugIntermédiaire5 FAQ

Erreur 500 sur PrestaShop : diagnostic complet et solutions

L'erreur 500 sur PrestaShop se diagnostique en activant le mode debug pour obtenir la stack trace, puis en vérifiant les modules, la version PHP, les overrides et les logs serveur. La cause la plus fréquente est un module incompatible qu'il suffit de désactiver pour restaurer le site.

PS 1.7 PS 8.x
Lire l'article
DebugIntermédiaire5 FAQ

Bouton panier et sélecteur de langue en panne sur PrestaShop : diagnostic complet

Un bouton panier et un sélecteur de langue en panne simultanément signalent presque toujours un conflit JavaScript. Le diagnostic passe par la console développeur, la vérification du CCC, l'isolation des modules et le contrôle de l'intégrité des fichiers du thème.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
DebugDébutant5 FAQ

Impossible de modifier un thème PrestaShop : diagnostic et solutions

Un thème PrestaShop impossible à modifier ou provoquant une page blanche est généralement causé par une erreur PHP masquée, une mémoire insuffisante ou un cache persistant. Activez le mode debug, augmentez la mémoire à 512 Mo minimum et videz tous les caches pour résoudre le problème.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
DebugIntermédiaire5 FAQ

Résoudre le problème d'ajout au panier sur PrestaShop 1.7 et 8.x

Un bouton « Ajouter au panier » inopérant sur PrestaShop est presque toujours causé par un conflit JavaScript entre modules ou dans le fichier custom.js du thème. Le diagnostic passe par la console navigateur, l'isolation des modules et la purge complète des caches (PrestaShop + navigateur).

PS 1.7 PS 8.x
Lire l'article
DebugIntermédiaire5 FAQ

Module PrestaShop : AdminController et page blanche — correction

Une page blanche sur le gestionnaire de modules PrestaShop se diagnostique en activant le mode debug (_PS_MODE_DEV_) puis en analysant les logs d'erreur Apache/Nginx. Les causes principales sont un dépassement mémoire PHP, un module défectueux ou un cache Symfony corrompu.

PS 1.7 PS 8.x
Lire l'article
DebugIntermédiaire5 FAQ

Modifications FTP ignorées sur PrestaShop : permissions et cache

Si vos modifications FTP ne s'affichent pas sur PrestaShop, activez la recompilation Smarty dans Performances et corrigez les permissions fichiers avec chown utilisateur:www-data et chmod 644/755.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
DebugIntermédiaire6 FAQ

Impossible de créer des produits PrestaShop : corriger la catégorie racine

Si vous ne pouvez plus créer de produits dans PrestaShop, vérifiez en base de données que la catégorie racine possède bien le flag is_root_category = 1 dans la table ps_category. Une simple requête UPDATE suffit à restaurer le fonctionnement normal.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
DebugIntermédiaire5 FAQ

Erreur 405 Method Not Allowed sur la page produit PrestaShop : diagnostic et solution

L'erreur 405 Method Not Allowed lors de la modification d'un produit PrestaShop est le plus souvent causée par une incompatibilité entre la version de PHP et celle de PrestaShop. La solution consiste à vérifier et corriger la version PHP sur votre hébergement, puis à vider le cache.

PS 1.7 PS 8.x
Lire l'article
DebugIntermédiaire6 FAQ

Erreur Smarty description produit PrestaShop : diagnostic et correction

L'avertissement smarty_internal_templatebase.php sur les descriptions produit est généralement causé par des commentaires Smarty ({* *}) qui masquent le code d'affichage dans product.tpl, ou par un override de Product.php qui empêche la sauvegarde en base de données. Vérifiez votre template, supprimez les commentaires accidentels et adaptez la syntaxe selon votre version de PrestaShop.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
DebugIntermédiaire5 FAQ

Produits dématérialisés PrestaShop : corriger les erreurs de téléchargement

Les erreurs d'ouverture de fichiers téléchargeables dans PrestaShop viennent le plus souvent d'un output buffering parasite qui corrompt le flux binaire, d'un fichier corrompu sur le serveur, ou de limites PHP/serveur trop restrictives. Activez le mode debug, testez l'intégrité du ZIP côté serveur avec unzip -t, et vérifiez les headers HTTP envoyés avant le fichier.

PS 1.7 PS 8.x
Lire l'article
DebugIntermédiaire5 FAQ

Corriger l'erreur getIdProductAttributesByIdAttributes sur PrestaShop

L'erreur 500 sur les déclinaisons PrestaShop provient de la méthode getIdProductAttributeByIdAttributes() qui lève une exception au lieu de gérer gracieusement les combinaisons manquantes. La solution : un override résilient de Product.php qui retourne 0, combiné à un nettoyage des entrées orphelines en base de données.

PS 1.7 PS 8.x
Lire l'article
DebugIntermédiaire7 FAQ

Back-office PrestaShop inaccessible : diagnostic et solutions complètes

Un back-office PrestaShop inaccessible se diagnostique en 6 étapes : activer le mode debug, vider les caches, vérifier les permissions fichiers (755/644), corriger la configuration SSL et les URL en base de données, réinstaller le dossier admin si nécessaire, et analyser les logs serveur en dernier recours.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
DebugIntermédiaire5 FAQ

Résoudre les erreurs de connexion au back-office PrestaShop

L'impossibilité d'accéder au back-office PrestaShop provient presque toujours d'une erreur dans la configuration de connexion à la base de données : mot de passe incorrect, mauvaise adresse serveur MySQL (surtout sur mutualisé OVH) ou droits utilisateur insuffisants. Vérifiez settings.inc.php (PS 1.6) ou parameters.php (PS 1.7/8.x) en priorité.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
🛒

Commandes

5 articles

Panier, checkout, factures, statuts

CommandesIntermédiaire6 FAQ

Extraire les données de facturation PrestaShop via requête SQL

Requête SQL complète pour extraire toutes les données de facturation PrestaShop (factures, clients, adresses, produits, TVA, remises) depuis le gestionnaire SQL du back-office, avec filtres par date et statut, compatible de PrestaShop 1.6 à 8.x.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
CommandesIntermédiaire6 FAQ

Masquer des commandes dans le back-office PrestaShop sans les supprimer

Pour masquer des commandes dans le back-office PrestaShop sans les supprimer, ajoutez un champ `active` à la table `ps_orders` et filtrez-le via un override de `AdminOrdersController`. Cette méthode préserve l'intégrité des données et reste réversible à tout moment.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
CommandesAvancé5 FAQ

Personnaliser les produits sur la facture PrestaShop : numéro de série et champs custom

Pour afficher des numéros de série ou codes personnalisés sur les factures PrestaShop, étendez ps_order_detail avec un champ custom, créez un module avec interface d'administration pour la saisie, puis overridez le template PDF et la classe HTMLTemplateInvoice pour injecter ces données dans le rendu.

PS 1.7 PS 8.x
Lire l'article
CommandesIntermédiaire5 FAQ

Simplifier le tunnel de commande PrestaShop : supprimer des étapes

Pour simplifier le tunnel de commande PrestaShop en supprimant les étapes d'adresse et de frais de port, configurez un transporteur unique gratuit, utilisez les produits virtuels pour ignorer l'adresse de livraison, et nettoyez le breadcrumb via les templates Smarty (PS 1.6) ou les hooks PHP (PS 8.x).

PS 1.6 PS 1.7 PS 8.x
Lire l'article
CommandesAvancé5 FAQ

Ajouter un champ date de livraison dans les commandes PrestaShop

Guide complet pour ajouter un champ date de livraison éditable par produit dans les commandes PrestaShop, avec table SQL dédiée, traitement AJAX sécurisé et approche module compatible 1.7 et 8.x.

PS 1.7 PS 8.x
Lire l'article
🔄

Migration

4 articles

Upgrade de version, migration serveur

MigrationIntermédiaire5 FAQ

Migrer ses données vers PrestaShop : guide complet d'import CSV

Pour migrer des données vers PrestaShop, la méthode la plus fiable consiste à partir d'une installation vierge puis à utiliser l'outil d'import CSV natif en respectant l'ordre des dépendances (catégories → produits → déclinaisons → clients → adresses), en combinant le SQL Manager pour l'export et phpMyAdmin pour les cas complexes.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
MigrationIntermédiaire6 FAQ

Transférer PrestaShop vers un nouvel hébergeur sans perdre de données

Pour migrer PrestaShop vers un nouvel hébergeur, sauvegardez fichiers et base de données, transférez le tout, adaptez les identifiants BDD dans settings.inc.php (et parameters.php en 8.x) mais conservez impérativement les clés de chiffrement (_COOKIE_KEY_, _RIJNDAEL_KEY_) sous peine de rendre tous les mots de passe clients inutilisables.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
MigrationIntermédiaire15 FAQ

Migration PrestaShop vers un nouveau serveur : résoudre les erreurs courantes

Lors d'une migration PrestaShop, les problèmes les plus fréquents sont le cache Symfony corrompu, les permissions fichiers incorrectes et le .htaccess obsolète. Diagnostiquez en distinguant pages legacy et Symfony, puis suivez la checklist : permissions (chown www-data), purge cache (rm -rf var/cache/), régénération .htaccess et mise à jour des URLs en base de données.

PS 1.7 PS 8.x
Lire l'article
MigrationIntermédiaire5 FAQ

Connexion clients impossible après mise à jour PrestaShop : diagnostic et solutions

Après une mise à jour PrestaShop, les connexions clients échouent généralement parce que la cookie key a changé, rendant tous les hash de mots de passe invalides. La solution la plus fiable est de restaurer l'ancienne cookie key depuis votre sauvegarde, ou de mettre en place un rehashage progressif MD5 → bcrypt via un override de la classe Customer.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
🔒

Sécurité

4 articles

SSL, permissions, failles, mises à jour

SécuritéIntermédiaire5 FAQ

Résoudre les problèmes de certificat SSL et contenu mixte sur PrestaShop

Le problème de certificat SSL "partiel" sur PrestaShop est causé par du contenu mixte : des ressources (images, CSS, JS) encore chargées en HTTP. La solution complète implique d'activer le SSL sur toutes les pages, de mettre à jour les URLs en base de données via des requêtes REPLACE, de corriger le thème et les modules, et d'ajouter le header upgrade-insecure-requests comme filet de sécurité.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
SécuritéIntermédiaire5 FAQ

Sécuriser PrestaShop avant mise en production : checklist complète

Avant de lancer une boutique PrestaShop en production, sécurisez les points d'entrée critiques : renommez le dossier admin, ajoutez une double authentification HTTP, verrouillez les permissions de fichiers, masquez phpMyAdmin et installez Fail2Ban. Ces mesures s'appliquent de PrestaShop 1.6 à 8.x.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
SécuritéIntermédiaire7 FAQ

Réinitialiser le mot de passe admin PrestaShop via phpMyAdmin

Pour récupérer l'accès au back-office PrestaShop, régénérez le mot de passe admin via phpMyAdmin : hash MD5(cookie_key + password) sur PS 1.6, ou bcrypt via password_hash() sur PS 1.7/8.x, puis mettez à jour la colonne passwd de la table ps_employee.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
SécuritéIntermédiaire5 FAQ

Images en HTTP au lieu de HTTPS sur PrestaShop : diagnostic et solutions

Le contenu mixte HTTP/HTTPS sur PrestaShop provient généralement d'URLs codées en dur dans les templates Smarty ou dans la base de données. La solution : utiliser des chemins relatifs ou les variables Smarty natives, et remplacer les images d'indicateurs par des icônes vectorielles SVG pour de meilleures performances.

PS 1.6 PS 1.7 PS 8.x
Lire l'article
🚚

Livraison

3 articles

Transporteurs, Mondial Relay, Colissimo

🏪

Multi-boutique

3 articles

Configuration multi-shop, id_shop

📧

E-mails

1 article

Templates, SMTP, notifications

🔌

API & Webservice

1 article

REST API, webservices, intégrations

💳

Paiement

1 article

Modules paiement, Stripe, PayPal