PS PrestaShop Intermédiaire

DataFirefly Catalog Merge : fusionner les doublons d’attributs et de caractéristiques

Installation, réglages, fusion des doublons de valeurs d'attributs et de caractéristiques, ordre d'affichage et dépannage.

Mis à jour Version du module 1.0.0

<h2>Installation</h2>
<p>Installez le module depuis <strong>Modules > Gestionnaire de modules > Installer un module</strong> en envoyant le fichier ZIP, ou en déposant le dossier <code>dfcatalogmerge</code> dans le répertoire <code>/modules/</code> de votre boutique puis en cliquant sur Installer.</p>
<p>À l’installation, le module crée ses deux tables (positions des valeurs de caractéristiques et historique des fusions), enregistre le hook <code>filterProductContent</code> et ajoute un onglet <strong>Fusion catalogue</strong> sous le menu Catalogue.</p>
<div class= »df-callout warn »><p>Ce module modifie définitivement les données de votre catalogue. Avant votre première campagne de nettoyage, faites une sauvegarde de votre base de données. Les fusions ne sont pas réversibles.</p></div>

<h2>Réglages du module</h2>
<p>Les réglages se trouvent dans la page de configuration du module. Quatre options, toutes activées par défaut.</p>
<h3>Forcer l’ordre sur les fiches produits</h3>
<p>Applique les positions que vous avez définies aux valeurs de caractéristiques affichées en fiche produit. Cette option est indispensable sur PrestaShop 8, dont le cœur ne trie pas les valeurs de caractéristiques. Sur PrestaShop 9, le module alimente en plus la colonne de position native, et l’option garantit que le résultat est identique quel que soit le réglage <code>PS_FEATURE_VALUES_ORDER</code> de la boutique.</p>
<h3>Fusionner les déclinaisons en doublon</h3>
<p>Quand deux déclinaisons d’un même produit deviennent identiques après une fusion, le module les réunit automatiquement. Désactivez cette option uniquement si vous souhaitez traiter ces cas manuellement, en sachant que PrestaShop gère mal deux déclinaisons portant exactement les mêmes attributs.</p>
<h3>Mettre à jour les tables tierces</h3>
<p>Le module recherche dans la base de données toutes les tables comportant une colonne <code>id_attribute</code> ou <code>id_feature_value</code> en dehors des tables du cœur, notamment l’index de la recherche à facettes, et y repointe ou y supprime les lignes concernées. Sans cette option, des filtres fantômes peuvent subsister après une fusion.</p>
<h3>Conserver un historique des fusions</h3>
<p>Enregistre chaque fusion appliquée : valeur d’origine, valeur cible, nombre de lignes modifiées, employé et date. Consultable dans l’onglet Historique.</p>

<h2>Fusionner des valeurs d’attributs</h2>
<p>Ouvrez <strong>Catalogue > Fusion catalogue</strong>, onglet <strong>Valeurs d’attributs</strong>. Choisissez le groupe d’attributs à nettoyer et la langue dans laquelle vous voulez lire les libellés.</p>
<p>Le tableau liste les valeurs du groupe avec, pour chacune, le nombre de produits et de déclinaisons qui l’utilisent. Cochez les doublons à supprimer, choisissez la valeur à conserver dans la liste « Fusionner les valeurs cochées dans », puis cliquez sur <strong>Simuler</strong>.</p>
<h3>Lire le rapport de simulation</h3>
<p>La simulation n’écrit rien. Le rapport indique le nombre de lignes de déclinaison à convertir, le nombre de produits concernés, les déclinaisons portant déjà la valeur cible et celles qui deviendront identiques après la fusion. Si le rapport vous convient, cliquez sur <strong>Appliquer cette fusion</strong>.</p>
<h3>Ce qui arrive aux déclinaisons</h3>
<p>Toutes les déclinaisons utilisant une valeur supprimée basculent sur la valeur conservée. Trois cas particuliers sont traités automatiquement :</p>
<ul>
<li>Une déclinaison portait déjà la valeur cible et son doublon : la ligne en doublon est retirée, le reste de la déclinaison n’est pas touché.</li>
<li>Deux déclinaisons d’un même produit deviennent identiques : elles sont réunies. Les quantités sont additionnées boutique par boutique, les images et les prix spécifiques sont transférés, la déclinaison par défaut est conservée, et le stock du produit parent est resynchronisé.</li>
<li>Les paniers en cours référençant la déclinaison supprimée sont repointés vers celle qui reste.</li>
</ul>
<div class= »df-callout note »><p>Les valeurs à fusionner doivent appartenir au même groupe d’attributs que la valeur cible. Le module refuse une fusion entre deux groupes différents, qui produirait des déclinaisons incohérentes.</p></div>

<h2>Fusionner des valeurs de caractéristiques</h2>
<p>L’onglet <strong>Valeurs de caractéristiques</strong> fonctionne de la même façon : choisissez une caractéristique, cochez les doublons, choisissez la valeur cible, simulez puis appliquez.</p>
<p>Les associations produit sont converties vers la valeur conservée. Si un produit portait déjà les deux valeurs, l’association en doublon est supprimée. Sur PrestaShop 9, les valeurs de caractéristiques attachées aux déclinaisons sont traitées en même temps.</p>
<h3>Valeurs personnalisées</h3>
<p>PrestaShop permet de saisir une valeur de caractéristique propre à un seul produit, marquée <em>personnalisée</em> dans le tableau. Ces valeurs sont la première source de doublons après un import. Vous pouvez les fusionner dans une valeur partagée comme n’importe quelle autre. Si la valeur cible était elle-même personnalisée et se retrouve utilisée par plusieurs produits après la fusion, le module la convertit automatiquement en valeur partagée.</p>

<h2>Détecter les doublons automatiquement</h2>
<p>L’onglet <strong>Détection de doublons</strong> analyse l’ensemble du catalogue et regroupe les valeurs dont le libellé est identique une fois la casse, les accents, la ponctuation et les espaces multiples ignorés. « Rouge », « rouge » et « ROUGE » forment donc un seul groupe, tout comme « Coton bio » et « coton-bio ».</p>
<p>Pour chaque groupe, la valeur la plus utilisée est proposée comme cible, avec une préférence pour les valeurs partagées plutôt que personnalisées. Le bouton <strong>Simuler cette fusion</strong> envoie le groupe vers l’écran de simulation, où vous gardez la main sur le choix final.</p>
<p>L’analyse se fait dans la langue sélectionnée. Sur un catalogue multilingue, relancez-la dans chaque langue : un doublon peut n’apparaître que dans une traduction.</p>

<h2>Définir l’ordre d’affichage</h2>
<p>Dans les deux premiers onglets, chaque ligne possède une poignée à gauche. Faites glisser une ligne pour changer sa position : le nouvel ordre est enregistré immédiatement, sans rechargement de page.</p>
<p>Le bouton <strong>Trier automatiquement</strong> range les valeurs sans intervention manuelle. Les tailles de vêtement suivent la séquence XS, S, M, L, XL, XXL plutôt que l’ordre alphabétique, et les valeurs numériques suivent l’ordre naturel : 2 avant 10, 39 avant 41.</p>
<h3>Ce que voit le client</h3>
<p>Pour les valeurs d’attributs, la position est celle utilisée par le sélecteur de déclinaisons de la fiche produit, dans PrestaShop 8 comme dans PrestaShop 9. Aucun réglage supplémentaire n’est nécessaire.</p>
<p>Pour les valeurs de caractéristiques, l’ordre s’applique au tableau des caractéristiques de la fiche produit dès lors que l’option « Forcer l’ordre sur les fiches produits » est active. Sur PrestaShop 9, la position native est alimentée en parallèle, ce qui fait remonter le même ordre dans les autres écrans du back-office.</p>
<div class= »df-callout tip »><p>Si l’ordre ne change pas en front après une modification, videz le cache de la boutique. Les fiches produits sont mises en cache par PrestaShop et par la plupart des modules de performance.</p></div>

<h2>Historique des fusions</h2>
<p>L’onglet <strong>Historique</strong> liste les fusions appliquées, de la plus récente à la plus ancienne : date, type, valeur d’origine avec son identifiant, valeur conservée et nombre de lignes modifiées. Les identifiants sont conservés pour permettre un recoupement avec une sauvegarde de base de données si vous devez revenir en arrière manuellement.</p>

<h2>Bonnes pratiques</h2>
<ul>
<li>Sauvegardez la base de données avant une campagne de nettoyage, en particulier sur un catalogue de plusieurs milliers de produits.</li>
<li>Simulez systématiquement. Le rapport vous montre les déclinaisons qui vont disparaître par fusion avant que cela n’arrive.</li>
<li>Travaillez groupe par groupe plutôt qu’en une seule passe, pour garder des rapports lisibles.</li>
<li>Après une grosse fusion, relancez l’indexation de la recherche à facettes si vous utilisez ce module.</li>
<li>Sur une boutique très fréquentée, appliquez les fusions en heures creuses : la conversion des déclinaisons verrouille brièvement les tables concernées.</li>
</ul>

<h2>Dépannage</h2>
<h3>La fusion est refusée avec un message sur le groupe d’attributs</h3>
<p>Toutes les valeurs cochées doivent appartenir au même groupe d’attributs que la valeur cible, ou à la même caractéristique pour les valeurs de caractéristiques. Vérifiez que vous n’avez pas coché une valeur d’un autre groupe portant le même nom.</p>
<h3>L’ordre des valeurs de caractéristiques ne bouge pas en fiche produit</h3>
<p>Vérifiez que l’option « Forcer l’ordre sur les fiches produits » est active, puis videz le cache. Si votre thème affiche les caractéristiques via un module tiers plutôt que via les variables natives de la fiche produit, l’ordre peut ne pas être repris : contactez-nous avec le nom du thème.</p>
<h3>Une fusion s’est interrompue</h3>
<p>Les écritures se déroulent dans une transaction : en cas d’erreur, la base revient à son état initial et aucune donnée n’est perdue. Le message d’erreur affiché en haut de l’écran contient la cause. Les tables doivent être en InnoDB pour que l’annulation fonctionne.</p>
<h3>Des filtres à facettes affichent encore la valeur supprimée</h3>
<p>Assurez-vous que l’option « Mettre à jour les tables tierces » était active au moment de la fusion, puis relancez l’indexation du module de navigation à facettes depuis sa page de configuration.</p>

<h2>Compatibilité</h2>
<ul>
<li>PrestaShop 8.0 à 9.x, le même ZIP couvre les deux branches.</li>
<li>Multiboutique et multilingue.</li>
<li>Architecture ModuleAdminController, sans dépendance Composer.</li>
<li>Interface disponible en français, anglais, espagnol, allemand, italien, néerlandais, polonais et portugais.</li>
</ul>

Cette page vous a-t-elle été utile ?

Toujours bloqué ? Contactez le support