Fusion de clients : installation et aide
Démarrage rapide
- Téléversez et installez le ZIP dans Modules > "Module Manager", puis ouvrez "Customers" > "Customer Merge" > "Settings" > Contrôle système.
- Confirmez la prise en charge d'AES-256-GCM et de gzip, puis sauvegardez la base de données de la boutique avant une fusion réelle.
- Ouvrez Sources de données, appuyez sur Réanalyser la base, examinez les tables référençant les clients et utilisez Enregistrer les stratégies après avoir choisi des actions sûres pour les tables.
- Examinez "Settings" > Configuration, en particulier Ce qu'il advient des comptes absorbés, la conservation pour l'annulation et les limites d'exécution, puis appuyez sur Enregistrer la configuration.
- Dans "Settings" > Règles de détection, examinez les règles de correspondance et les seuils, puis appuyez sur Enregistrer les réglages de détection.
- Ouvrez Clients en double, lancez Scan complet, attendez son résultat et choisissez Examiner pour un groupe de candidats vérifié.
- Choisissez le compte conservé, résolvez Champs divergents et Adresses, puis examinez Simulation et levez chaque blocage.
- Confirmez avec Fusionner ces comptes, puis vérifiez Historique et annulation, les enregistrements du compte conservé et un exemple de commande/document historique.
Nécessite PrestaShop 1.6.1 ou une version ultérieure et PHP 7.1 ou une version ultérieure.
Manuel de configuration
Installer et vérifier le serveur
Téléversez le ZIP via Modules > "Module Manager" > "Upload a module" et installez-le. Le module crée ses tables et ajoute "Customers" > "Customer Merge". "Configure" ouvre Clients en double.
Nécessite PrestaShop 1.6.1 ou une version ultérieure et PHP 7.1 ou une version ultérieure.
Ouvrez "Customer Merge" > "Settings" > Contrôle système avant toute fusion. Le moteur de fusion nécessite OpenSSL AES-256-GCM pour les instantanés chiffrés, même lorsque l'option d'annulation est désactivée. La compression des instantanés utilise initialement gzip, dont la prise en charge est donc également nécessaire. Désactiver l'annulation ne contourne pas ces exigences.
Sauvegardez la base de données de la boutique avant la première fusion réelle. Une fusion modifie le rattachement des données aux clients et peut mettre hors service les comptes absorbés. Aucun widget n'est ajouté au front-office.
Examiner d'abord les sources de données
Réanalyser les tables référençant les clients
Ouvrez "Customers" > "Customer Merge" > Sources de données et appuyez sur Réanalyser la base. Le registre découvre les tables ayant une colonne id_customer sous le préfixe de tables de la boutique. Il indique les tables connues du cœur, les tables connues de modules, les tables inconnues et leurs risques d'écriture.
La section Peut-être liées aux clients, non touchées signale les colonnes dont le nom différent évoque une référence client. Ces indications sont informatives. Le module ne devine pas comment les déplacer. Les références stockées dans des formats personnalisés ou des systèmes externes sortent du cadre de cette découverte.
Enregistrer une stratégie pour chaque table
Examinez Risque au transfert, puis choisissez Stratégie :
| Stratégie | Signification |
|---|---|
| Transférer les lignes vers le compte conservé | Réaffecter la référence client. |
| Transférer les lignes, fusionner les doublons exacts | Réaffecter les lignes et fusionner les doublons exacts pris en charge. |
| Ne pas toucher à cette table | Préserver les lignes de la table. Examinez les références ainsi conservées avant de fusionner. |
| Me demander à chaque fois | Laisser une décision requise pour la table dans le plan de fusion. |
Appuyez sur Enregistrer les stratégies. Les tables inconnues commencent avec la politique de décision manuelle. Choisir une stratégie de déplacement ne suffit pas à rendre une table risquée modifiable. Les vues, l'absence de clé primaire, les déclencheurs, le stockage non transactionnel et les index uniques non pris en charge limitent les actions disponibles. La simulation identifie les blocages restants.
Relancez l'analyse après l'installation ou la modification d'un module qui stocke des données clients, afin que ses tables soient de nouveau contrôlées avant tout déplacement de données.
Configurer le comportement général et la conservation
Ouvrez "Customer Merge" > "Settings" > Configuration. Examinez les champs suivants et appuyez sur Enregistrer la configuration.
Général
| Réglage | Valeur initiale | Utilisation |
|---|---|---|
| Module actif | Activé | Autorise la détection normale et le traitement planifié. |
| Ce qu'il advient des comptes absorbés | Anonymiser et conserver la ligne (recommandé) | Conserve une ligne client inutilisable après absorption. L'autre choix est Supprimer la ligne quand rien n'y fait référence. |
| Périmètre du scan | Uniquement les comptes juridiquement fusionnables | Maintient le scan dans le domaine actuel d'isolation des clients. |
La liste des périmètres propose aussi Toutes les boutiques, correspondances inter-boutiques affichées à titre indicatif. Cette option analyse toujours uniquement le domaine actuel d’isolation des clients, soit une boutique, soit un groupe de boutiques partageant les clients. Lancez le scan dans chaque domaine concerné et consultez le périmètre indiqué.
Les comptes ne peuvent fusionner qu'au sein d'un même domaine d'isolation des clients : la même boutique, ou le même groupe de boutiques lorsque le partage des clients est activé. Une correspondance entre domaines distincts ne peut pas être fusionnée.
Annulation et conservation
| Réglage | Valeur initiale | Utilisation |
|---|---|---|
| Conserver un instantané pour pouvoir annuler les fusions | Activé lorsque le chiffrement authentifié est disponible | Détermine si une fusion terminée dispose d'un délai d'annulation. L'installation désactive l'annulation si le chiffrement est indisponible. |
| Fenêtre d'annulation (jours) | 30 | Définit le délai d'annulation. Le formulaire propose 1 à 365 jours. |
| Conserver les données de détection (jours) | 30 | Définit la conservation des enregistrements de détection obsolètes. |
| Conservation du journal (jours) | 0 | 0 conserve indéfiniment les enregistrements d'audit ; une valeur positive limite leur conservation. |
Les instantanés contiennent des données clients et sont chiffrés. Conservez les éléments de chiffrement de la boutique avec vos sauvegardes protégées de la base si vous devez pouvoir restaurer les instantanés. La conservation nécessite l'exécution de la tâche de nettoyage. Le traitement d'une demande d'effacement peut supprimer un instantané avant son expiration normale.
Limites d'exécution
| Réglage | Valeur initiale | Quand le modifier |
|---|---|---|
| Taille de lot du scan | 2000 | Réduisez-le si les scans dépassent les limites pratiques du serveur. |
| Plus grand lot de correspondances exploitable | 100 | Exclut une valeur partagée des correspondances utiles lorsque trop de comptes l'utilisent. |
| Plafond de lignes par fusion | 50000 | Bloque les plans dépassant la taille de transaction configurée. |
| Validité de l'aperçu (minutes) | 15 | Impose une nouvelle vérification lorsque l'aperçu est trop ancien. |
Avec les réglages initiaux, les fusions touchant plus de 10000 lignes nécessitent aussi un mode maintenance/CLI explicite, même sous le plafond global de lignes. La confirmation ordinaire du back-office n’active pas ce mode.
Notifications
L'écran propose Envoyer un résumé par e-mail après les scans et fusions planifiés, initialement désactivé, et Envoyer à, initialement vide. Les deux valeurs sont enregistrées, mais la version actuelle n'envoie aucun e-mail récapitulatif. Suivez les opérations avec les résultats des scans et Historique et annulation.
Configurer les règles de détection et lancer un scan
Examiner les signaux de correspondance
Ouvrez "Customer Merge" > "Settings" > Règles de détection. Chaque règle possède un interrupteur d'activation et un Poids. Les règles initiales sont activées avec les poids suivants :
| Règle | Poids | Réglage supplémentaire ou limite |
|---|---|---|
| Même adresse e-mail | 70 | Les deux comptes utilisent exactement la même adresse e-mail. |
| Alias d'e-mail | 60 | Le poids des caractères sosies commence à 20. Examinez vous-même ces correspondances ; seules, elles ne suffisent pas pour une fusion automatique. |
| Même numéro de téléphone | 45 | Compare les numéros de téléphone après normalisation de leur format. |
| Mêmes nom et adresse postale | 45 | La similarité commence à 0.78. |
| Même société ou numéro de TVA | 55 | Le poids du nom de société seul commence à 30. Pour examen uniquement. |
| Même moyen de paiement | 40 | Le poids d'une empreinte de carte seule commence à 20. Pour examen uniquement ; la comparaison des cartes a aussi son propre interrupteur, désactivé au départ. |
| Commande invité et compte enregistré | 10 | Un bonus lorsqu'un autre signal relie les comptes. Ce n'est pas un signal d'identité indépendant. |
Les signaux d'une même famille ne s'additionnent pas simplement, et des signaux contradictoires peuvent baisser le score. Un groupe détecté est une suggestion à examiner, pas l'affirmation que ses comptes appartiennent à une seule personne.
Sous Seuils, Afficher un groupe pour revue à partir de commence à 55 et Considérer comme certain à partir de à 95. Abaissez le seuil d'examen pour inspecter des correspondances plus faibles. Cela n'assouplit pas les garde-fous des fusions automatiques. Appuyez sur Enregistrer les réglages de détection après modification des règles.
Lancer le premier scan
Ouvrez Clients en double et appuyez sur Scan complet. Le premier scan construit l'index d'empreintes. Les scans suivants peuvent traiter progressivement les clients modifiés. Le scan planifié choisit aussi périodiquement un scan complet, afin que la détection ne reste pas indéfiniment limitée aux comptes modifiés.
Attendez la fin du scan ou le signalement d'un résultat partiel. Vérifiez son état et son périmètre avant d'examiner les groupes. Utilisez Examiner pour ouvrir un groupe de candidats. Examinez la confiance et les signaux concordants avec les détails réels des comptes.
Prévisualiser et réaliser une fusion manuelle
Choisir le compte conservé
L'assistant comporte cinq étapes. Dans Quel compte est conservé ?, sélectionnez le compte qui doit garder son identifiant client et sa date d'inscription. Ses identifiants de connexion sont la source par défaut. Examinez le statut enregistré ou invité, le nombre de commandes, les dépenses et les adresses avant de continuer.
Résoudre les champs divergents
Champs divergents répertorie les valeurs en conflit. Vérifiez le prénom, le nom, l'e-mail et les autres champs ordinaires choisis. Choisir Adresse e-mail modifie l'e-mail de connexion : l'adresse de connexion initiale du compte conservé n'est donc pas maintenue inconditionnellement.
Consentement newsletter et Consentement aux offres partenaires utilisent la valeur la plus restrictive. Lorsque les champs PrestaShop correspondants existent, Niveau de risque utilise le risque le plus restrictif, tandis que Délai de paiement autorisé et Encours autorisé utilisent leurs valeurs minimales. Ces champs sont verrouillés. Le groupe par défaut affecte les prix ; les appartenances aux groupes des comptes sont normalement combinées. Les notes internes conservent des marqueurs d'origine.
Examiner les adresses
Dans Adresses, inspectez les adresses identiques et similaires avant de les regrouper. Une adresse référencée par une commande garde son identifiant et ses champs documentaires. Son rattachement client peut changer. Une adresse en double référencée est masquée plutôt que supprimée, préservant les références des documents historiques.
Lire la simulation
Appuyez sur Prévisualiser la fusion. Simulation indique les lignes déplacées, dédupliquées, inchangées et en conflit, avec un plan par table. Les enregistrements clients ne sont pas encore fusionnés à ce stade, même si le module stocke la tâche d'aperçu dans ses propres tables.
Résolvez chaque conflit bloquant avant de continuer. L'absence de clé primaire, un déclencheur, une table non transactionnelle, une stratégie non résolue ou un schéma modifié peuvent bloquer l'exécution. Ne contournez pas ces avertissements en supposant que les lignes sont sans importance.
Confirmer et vérifier
Dans Confirmer la fusion, lisez la phrase décrivant le compte résultant, les nombres de lignes, l'action appliquée aux comptes absorbés et la date limite d'annulation. Appuyez sur Fusionner ces comptes lorsque le plan est correct.
Le moteur valide à nouveau le plan, verrouille les lignes concernées et effectue les modifications des données métier dans une seule transaction de base de données. Si le travail transactionnel échoue, il est annulé. Les enregistrements de tâche et d'échec peuvent néanmoins rester pour investigation.
Ouvrez Historique et annulation après l'opération. Vérifiez les commandes et les adresses du compte conservé. Comparez un exemple de facture historique, de paiement, d'avoir et de total de commande avec vos données antérieures à la fusion. Toutes les sessions clients concernées sont révoquées plutôt que transférées ; les utilisateurs doivent se reconnecter.
Comprendre les modifications de documents et de rattachement
Le module modifie le rattachement client des commandes, retours, avoirs et messages pris en charge. En particulier, le id_customer d'un avoir peut changer. Il ne réécrit ni les montants des factures ou avoirs émis, ni le contenu des documents.
Les paiements, totaux de commande, détails de commande, transporteurs, historique des commandes, mouvements de stock et enregistrements d'expédition sortent du cadre du changement ordinaire de rattachement des commandes. Une adresse liée à une commande garde son identifiant et ses champs documentaires. Examinez séparément les modules personnalisés et les systèmes externes lors de l'évaluation des sources de données.
Utiliser l'historique et l'annulation
Ouvrez "Customer Merge" > Historique et annulation pour examiner la fusion et son résultat. Annuler n'est disponible que si la fusion dispose d'instantanés conservés et utilisables dans son délai d'annulation.
L'annulation vérifie que les données et schémas concernés correspondent encore à l'état après fusion. Elle refuse si des enregistrements ont changé, si la restauration provoquerait une collision, si un identifiant client a été réutilisé, si l'instantané a expiré ou si une demande d'effacement a supprimé des données requises. Elle n'écrase pas le travail ultérieur pour forcer la restauration.
Les sessions clients font exception à la restauration des instantanés. Les sessions révoquées ne sont jamais restaurées par l'annulation. Désactiver l'annulation rend les fusions terminées impossibles à inverser depuis cet écran, bien que le moteur de fusion nécessite toujours le traitement d'instantanés chiffrés pendant l'exécution.
Examiner la fusion automatique et les tâches planifiées
Contrôles automatiques
Dans Règles de détection > Fusion automatique, les contrôles visibles sont :
| Réglage | Valeur initiale |
|---|---|
| Activer la fusion automatique | Désactivé |
| Invité vers compte enregistré uniquement | Activé |
| Indices indépendants requis | 2 |
| Plafond de lignes par fusion automatique | 10000 |
Le seuil de certitude utilise initialement 95. Les contrôles de sécurité excluent toujours du traitement sans surveillance les conflits non résolus, tables inconnues, déclencheurs et tables non transactionnelles.
Dans la version actuelle, ces contrôles ne fusionnent pas automatiquement les candidats. L’interrupteur visible n’active pas les fusions planifiées et les scans ne font que lister les candidats sans créer de tâches de fusion. Fusionnez les candidats via le flux manuel avec examen.
Planification et nettoyage
"Settings" > Cron expose les outils de planification partagés. Le module enregistre "Scan for duplicate customer accounts" à 02:00, "Process the auto-merge queue (disabled by default)" à 02:30 et "Purge expired snapshots and stale detection data" à 04:00. L'exécution réelle dépend du planificateur partagé configuré.
Connectez un point d'entrée du planificateur fonctionnel pour votre installation, puis examinez les résultats des scans et du nettoyage. Le module ne fournit pas de cron.php à la racine : vérifiez donc qu'une commande CLI affichée pointe vers un point d'entrée existant avant de la planifier. Maintenez le nettoyage actif si vous comptez sur l'expiration automatique des instantanés ou des données de détection.
Dépannage
- Un groupe est bloqué : lisez son plan par table dans Simulation. Vérifiez les stratégies, clés primaires, déclencheurs, moteurs de stockage, conflits de clés uniques et domaines d'isolation.
- Le scan ne trouve rien : vérifiez les règles de détection activées et le seuil d'examen. Lancez Scan complet lorsqu'un scan incomplet ou incrémental a pu manquer les comptes attendus.
- Le scan de toutes les boutiques semble inchangé : le traitement de scan ne reconnaît pas la valeur enregistrée pour toutes les boutiques et n’analyse que le domaine actuel d’isolation des clients. Lancez le scan dans chaque domaine concerné.
- Une fusion échoue sur le chiffrement ou la compression : vérifiez Contrôle système et la prise en charge d'AES-256-GCM et de gzip. Désactiver l'annulation ne supprime pas l'exigence d'instantané.
- L'aperçu expire ou change : régénérez Simulation, examinez les nouveaux nombres et confirmez à nouveau.
- L'annulation est indisponible : lisez la raison dans Historique et annulation. Des modifications ultérieures, l'expiration, des conflits de restauration et l'effacement peuvent tous l'empêcher.
- Aucun e-mail récapitulatif n'arrive : aucun e-mail récapitulatif n’est envoyé. Utilisez les écrans de scan et d’historique.
- La fusion automatique ne fait rien : l'interrupteur visible n'active pas le contrôle distinct du traitement cron et ne transforme pas les candidats des scans en tâches. Continuez avec l'examen manuel.
Désinstaller
Exportez ou sauvegardez les enregistrements nécessaires avant de désinstaller via "Module Manager". Les fusions de clients terminées restent appliquées. La désinstallation ne les annule pas.
Le schéma supprime les enregistrements de détection, plans temporaires et instantanés de fusion. Les fusions terminées ne peuvent plus être annulées par le module après suppression de leurs instantanés. Le schéma marque les tâches de fusion, leurs membres, les correspondances entre identités absorbées et conservées et les enregistrements d'audit comme persistants ; ces tables sont donc conservées.
La désinstallation supprime le menu et les tables de travail du module. Des réglages et des entrées de tâches planifiées peuvent subsister : vérifiez ensuite le planificateur partagé et supprimez les entrées restantes. Un enregistrement d'audit conservé après désinstallation ne permet pas d'annuler une fusion.
Questions
Pas encore de questions sur ce module
Posez vos questions sur l'installation, la compatibilité ou la configuration. Les réponses apparaissent ici.
Problèmes connus
7
Choix de l’assistant sans effet sur la fusion
Conflits bloquants affichés comme avertissements
Échec de suppression des comptes absorbés lors de la fusion
Pages d’administration redirigées vers un contrôle système défaillant
Comptages de doublons et aperçus trompeurs
Libellés d’administration non traduits
Renforcement de la sécurité
Demandes de fonctionnalités
3
Implémenté
Détection des clients en double
Fusion des comptes clients avec aperçu
Historique et annulation des fusions
Journal des modifications
v1.0.02026-07-28
- Initialrelease
- InitialDuplicate detection scored on exact email, Gmail dot and plus aliases, lookalike characters, phone numbers normalised to international format, fuzzy name and postal address, company and VAT number, and guest to registered signals
- InitialSQL-first indexing with keyed fingerprints and capped match buckets, so only hashes are stored and the scan holds up on large customer bases
- InitialFive step merge wizard: choose the surviving account, resolve conflicting fields, review addresses, read an exact dry run, then confirm
- InitialDry run reports per-table rows moved, deduplicated, left untouched and in conflict before anything is written, from the same code path that executes
- InitialIssued invoices, credit slips, payments, order details, carriers, order history, stock movements and shipments are never rewritten
- InitialAn address referenced by an order keeps its ID and every field that appears on documents
- InitialAutomatic discovery of every table carrying a customer reference, with a per-table strategy and detection of unique keys that would collide
- InitialMerges run in one database transaction and block on triggers, views, non-transactional tables, missing primary keys and unresolved conflicts
- InitialEncrypted snapshots make every merge reversible, with undo refusing when data changed after the merge
- InitialCustomer sessions are revoked and never restored, by design
- InitialAppend-only, hash-chained audit trail with CSV export
- InitialAutomatic merging available but disabled by default, gated on score, independent signals and safety checks
- InitialGDPR erasure hook purges snapshots and makes affected merges permanently non-undoable
- InitialPrestaShop 1.6.1 to 9.x on PHP 7.1 and later, multishop aware, six languages
Demo
Testez le module complet avant d'acheter
Achetez la licence plus tard et gardez vos réglages.
- Votre démo de 30 jours Testez-le sur votre propre boutique pendant 30 jours à partir de la première installation.
- Boutique de démo prête Découvrez une boutique de démo prête dans votre navigateur.
- Sans inscription Ni compte, ni e-mail, ni domaine de boutique requis.
En téléchargeant, vous acceptez les conditions de la démo et la politique de confidentialité.
En ouvrant cette démo, vous acceptez les conditions de la démo et la politique de confidentialité.