DataFirefly Fix Product Category : rattacher les produits à leurs catégories parentes
Installation, simulation et correction en masse, mode automatique, exclusions et dépannage.
Installation
Installez le module depuis Modules > Gestionnaire de modules > Installer un module en envoyant le fichier ZIP, ou déposez le dossier dffixproductcategory dans le répertoire /modules/ de votre boutique puis cliquez sur Installer.
L’installation ajoute l’onglet Correction des catégories produit sous le menu Catalogue et enregistre les hooks du mode automatique. Aucune table n’est créée : le module écrit uniquement dans la table native category_product.
La correction en masse ajoute des associations sur tout le catalogue. Sauvegardez la table category_product avant la première correction, pour pouvoir revenir en arrière si le résultat ne correspond pas à votre organisation.
Principe de fonctionnement
Pour chaque catégorie d’un produit, le module remonte l’arbre jusqu’au sommet et ajoute les catégories parentes auxquelles le produit n’est pas encore associé. Toutes les catégories du produit sont prises en compte, pas seulement sa catégorie par défaut.
Exemple : un produit associé uniquement à Chaussures > Running > Trail est ajouté à Running et à Chaussures. La catégorie Racine n’est jamais ajoutée, la catégorie Accueil seulement si l’option correspondante est active.
- Aucune association existante n’est supprimée.
- La catégorie par défaut du produit n’est jamais modifiée : le fil d’Ariane et l’URL du produit restent identiques.
- Le produit est placé en dernière position dans chaque catégorie ajoutée, ce qui préserve votre tri manuel.
- L’arbre est lu à partir de la catégorie parente de chaque catégorie, le résultat reste donc juste même si l’arbre imbriqué de PrestaShop n’a pas été régénéré.
Correction en masse
Ouvrez Catalogue > Correction des catégories produit. Le panneau Correction en masse traite tout le catalogue par lots, avec une barre de progression.
Simuler
Cliquez sur Simuler. Rien n’est écrit. Les compteurs indiquent le nombre de produits dans le périmètre, les produits à corriger et les associations manquantes. Le tableau d’aperçu liste les 100 premiers produits concernés avec les catégories qui leur seront ajoutées.
Corriger le catalogue
Cliquez sur Corriger le catalogue et confirmez. Les lots s’enchaînent jusqu’à la fin du catalogue et le compteur Associations ajoutées indique le résultat. Vous pouvez relancer la correction à tout moment : les produits déjà corrigés ne sont pas modifiés.
Produits actifs uniquement
Cochez cette case pour limiter la simulation et la correction aux produits actifs de la boutique courante. Par défaut, tous les produits sont traités, y compris les produits désactivés, pour qu’ils soient correctement classés le jour où vous les réactivez.
Réglages
Inclure la catégorie Accueil
Désactivé par défaut. Une fois activé, la catégorie Accueil est ajoutée comme les autres parents. En multiboutique, chaque boutique possède sa propre catégorie Accueil et le réglage s’applique à chacune.
Mode automatique à l’enregistrement d’un produit
Activé par défaut. Chaque produit créé ou modifié est rattaché à ses catégories parentes. Le traitement a lieu à la fin de la requête, après l’enregistrement des catégories du produit, ce qui couvre la fiche produit de PrestaShop 8 et 9, l’import CSV et le webservice.
Mode automatique au déplacement d’une catégorie
Activé par défaut. Quand vous changez la catégorie parente d’une catégorie, tous les produits de sa branche sont rattachés aux nouveaux parents. Une modification du nom ou de la description ne déclenche aucun traitement. Les anciens parents restent associés aux produits : retirez-les à la main si besoin.
Catégories exclues
Sélectionnez les catégories qui ne doivent jamais être ajoutées comme parentes, par exemple une catégorie vitrine Promotions ou Nouveautés. Le champ de filtre retrouve une catégorie par son nom, et Ctrl (Cmd sur Mac) permet d’en sélectionner plusieurs. Une catégorie exclue est sautée, mais ses propres parents continuent d’être ajoutés.
Taille des lots
Nombre de produits traités par requête pendant la correction en masse, de 20 à 2000. La valeur par défaut, 200, convient à la plupart des hébergements. Baissez-la si une requête dépasse le temps d’exécution maximal de votre serveur.
Recherche à facettes
Après chaque ajout d’associations, le module vide le cache des blocs de filtres de ps_facetedsearch, pour que les filtres des catégories parentes tiennent compte des nouveaux produits. Les associations étant créées en base, aucune option d’affichage des sous-catégories n’est nécessaire dans le module de navigation à facettes.
Bonnes pratiques
- Lancez une simulation avant la première correction et parcourez l’aperçu pour valider le résultat.
- Réglez les exclusions avant la correction en masse, pas après : le module ne retire jamais une association déjà créée.
- Après un gros import, relancez une correction en masse pour contrôler qu’aucun produit n’a été oublié.
- Videz le cache de la boutique si un listing ne montre pas immédiatement les nouveaux produits.
Dépannage
Le mode automatique ne se déclenche pas pour certains employés
PrestaShop ignore les hooks d’un module quand le profil de l’employé connecté n’a pas le droit Voir sur ce module (Paramètres avancés > Équipe > Permissions, section Modules). Donnez ce droit aux profils qui modifient le catalogue, ou lancez une correction en masse après leurs modifications.
Une catégorie retirée d’un produit revient à l’enregistrement
C’est le comportement attendu du mode automatique : toute catégorie parente d’une catégorie du produit est rajoutée. Ajoutez cette catégorie aux exclusions, ou retirez aussi la sous-catégorie concernée du produit.
La correction en masse s’arrête sur une erreur
Réduisez la taille des lots et relancez : les produits déjà traités sont ignorés au passage suivant. Les erreurs du mode automatique sont enregistrées dans Paramètres avancés > Logs, sans jamais bloquer l’enregistrement du produit.
Compatibilité
- PrestaShop 8.0 à 9.x, le même ZIP couvre les deux branches.
- Multiboutique et multilingue.
- Architecture ModuleAdminController, sans dépendance Composer.
- Interface disponible en français, anglais, espagnol, allemand, italien, néerlandais, polonais et portugais.