Marge par jour
margeparjour · v1.0.0
Vous voyez ce que rapporte une journée de travail avant d'accepter le devis.
dolixdoublons · version 1.1.3
Vous retrouvez les fiches saisies deux fois, et vous les fusionnez : tiers, contacts et adhérents.
79 € hors taxes.
La commande, le paiement, la facture et le téléchargement sont assurés par le DoliStore.

La même entreprise existe deux fois dans votre base, sous deux orthographes, et vous ne savez plus laquelle est à jour.
Au bout de quelques années, la même entreprise finit saisie deux fois. « Cabinet Vaillant » et « SARL Cabinet Vaillant », le même email écrit avec une majuscule, le même téléphone écrit avec des espaces. Les devis sont sur une fiche, les factures sur l’autre. Le chiffre d’affaires du client est faux, et personne ne sait plus laquelle des deux fiches est à jour.
Un tri par nom ne les fait pas apparaître côte à côte : la forme juridique, l’accent ou l’espace suffisent à les séparer dans la liste.
À qui ça sert : Les bases de plusieurs années, les fichiers importés depuis un tableur, les structures où plusieurs personnes créent des fiches sans se concerter.
Ce bloc figure sur les six fiches, sans exception.
Le module compare vos fiches sur des critères que vous choisissez, et vous présente des groupes de fiches réellement identiques une fois la mise en forme retirée.
Ce qu’il sait analyser : les tiers, les contacts et les adresses, et — si le module Adhérents est activé — les adhérents.
Les critères :
| Critère | Objets | Ce qui est ignoré |
|---|---|---|
| Même email | tiers, contacts, adhérents | casse et espaces |
| Même nom | tiers | accents, ponctuation, formes juridiques (SARL, SAS, EURL, GmbH, Ltd…) |
| Même nom et prénom | contacts, adhérents | accents, ponctuation, ordre du nom et du prénom |
| Même téléphone | tiers, contacts, adhérents | format : 01 23 45 67 89, +33 1 23 45 67 89, 0033… donnent la même clé |
| Même SIRET, SIREN ou n° de TVA | tiers | espaces, ponctuation, casse |
Le rapprochement est une égalité stricte après normalisation, pas un score de ressemblance. Deux fiches ne sont groupées que si l’une de leurs valeurs est réellement identique. Il n’y a donc pas de « probabilité de doublon » à interpréter, et les champs vides ne forment jamais de groupe.
L’analyse est en lecture seule. Rien n’est modifié tant que vous n’avez pas choisi une fiche à conserver, coché une fiche à fusionner, cliqué et confirmé.
Le module fusionne les trois objets qu’il analyse. Le chemin n’est pas le même pour les tiers et pour les deux autres.
Pour un tiers, le module s’appuie sur la fusion native de Dolibarr. Les devis, commandes, factures, contacts, catégories et documents joints du doublon sont reportés sur la fiche que vous conservez, dont les champs vides sont complétés avec ceux du doublon. Le doublon est ensuite supprimé.
Dolibarr ne sait pas les fusionner. Son cœur ne propose la fusion que pour les tiers : deux contacts en double se recopient et se suppriment à la main, en espérant n’avoir rien oublié. Le module écrit cette fusion lui-même.
Tout ce qui désignait la fiche supprimée est reporté sur la fiche conservée :
| Ce qui suit la fiche conservée | Contacts | Adhérents |
|---|---|---|
| Rôles sur les devis, commandes, factures, projets et autres documents | oui | — |
| Rattachements aux tiers | oui | — |
| Catégories | oui | oui |
| Événements d’agenda et rappels | oui | — |
| Notifications et alertes | oui | — |
| Cibles des campagnes d’emailing | oui | — |
| Cotisations | — | oui |
| Partenariats | — | oui |
| Attributs supplémentaires | oui | oui |
| Compte utilisateur lié | oui | oui |
Les champs vides de la fiche conservée — adresse, téléphones, fonction, date de naissance, réseaux sociaux — sont complétés avec ceux du doublon, et les deux notes sont mises bout à bout. La fiche conservée garde son propre rattachement : fusionner deux contacts portés par deux tiers différents ne touche pas aux tiers.
L’opération se fait dans une transaction. Si une seule étape échoue, rien n’est appliqué : les deux fiches restent en place et un message le dit.
Quand la fiche conservée porte déjà le même lien que le doublon — la même catégorie, le même rattachement à un tiers, une cotisation de même date — la ligne redondante du doublon est écartée plutôt que de faire échouer l’opération.
C’est une opération irréversible. Le module demande une confirmation explicite qui le dit, exige les droits Dolibarr de création et de suppression sur l’objet visé en plus de son propre droit, et revérifie les deux fiches côté serveur avant d’écrire quoi que ce soit.
L’écran tient en une page, sous TiersDoublons.
En haut, l’objet à analyser et les cases des critères. Le bouton Analyser affiche un bandeau du type « 3 groupe(s) de doublons trouvé(s), soit 6 fiche(s) concernée(s) sur 14 analysée(s). », puis un tableau par groupe.
Chaque groupe indique en titre les critères qui ont rapproché ces fiches, et liste les fiches avec leur nom cliquable, leur email, leur téléphone, leurs identifiants et leur ville. Une colonne « Conserver » et une colonne « Fusionner » vous laissent désigner la fiche maîtresse.
Sur la capture, le groupe 1 rapproche « Cabinet Vaillant » et « SARL Cabinet Vaillant » sur les quatre critères à la fois, alors que leurs emails ne s’écrivent pas avec la même casse et que leurs téléphones ne sont pas saisis dans le même format.
Le choix de l’objet change la liste analysée et les critères proposés. Sur Contacts / adresses, chaque groupe rapproche la même personne saisie plusieurs fois — souvent sur deux tiers différents — et porte le même bouton de fusion.
La page de configuration regroupe les deux garde-fous, l’historique et le tableau des fusions déjà effectuées.

| Réglage | Défaut | Effet |
|---|---|---|
| Nombre maximum de fiches analysées | 20 000 | Au-delà, l’analyse est bloquée pour ne pas saturer le serveur. |
| Taille maximale d’un groupe | 10 | Une valeur partagée par plus de fiches que ce nombre est considérée comme un standard téléphonique ou une adresse générique : elle est écartée, et le nombre de valeurs écartées est affiché. |
| Conserver un historique des fusions | activé | Enregistre chaque fusion : date, utilisateur, type d’objet, fiche conservée, fiche supprimée. |
Le second réglage est celui qui évite le faux groupe géant : sans lui, un standard
03 88 00 00 00 partagé par quarante fiches d’une même collectivité formerait un groupe de
quarante « doublons ».

| Tables créées en base | Une table : llx_dolixdoublons_log. Elle enregistre l'historique des fusions (date, utilisateur, type d'objet, fiche conservée, fiche fusionnée, noms des deux fiches, entité). |
|---|---|
| Permissions | Un droit : « Utiliser la détection de doublons ». La fusion exige en plus les droits standards de Dolibarr sur l'objet : créer/modifier ET supprimer. Sans le droit de suppression, l'analyse reste consultable mais les boutons de fusion ne s'affichent pas. |
| Désinstallation |
|
llx_dolixdoublons_log. Elle ne contient que l’historique des
fusions.Le descripteur du module ne déclare qu’une version minimale. Aucune borne haute n’est inscrite dans le code : les versions ci-dessous sont celles sur lesquelles le module a réellement été exécuté.
| Versions de Dolibarr | Dolibarr 19.0 minimum. Installé et exécuté sur 23.0.4 et 24.0.0. |
|---|---|
| PHP minimum | 7.4 |
| Modules Dolibarr à activer | Tiers |
| Licence | GPL v3 ou ultérieure, code source complet |
| Langues | Français, anglais |
| Menu | Menu Tiers« Doublons ». |
Le détail — droits du dossier custom, hébergement mutualisé, mise à jour, désinstallation — est sur la page Installation et mise à jour.
Le descripteur exige Dolibarr 19.0 au minimum et PHP 7.4 au minimum. Le module a été installé et exécuté sur 23.0.4 et 24.0.0. Si vous êtes sur une version plus ancienne et que vous avez un doute, écrivez avant d'acheter.
Non. L'analyse ne fait que lire et regrouper. Rien n'est écrit tant que vous n'avez pas choisi une fiche à conserver, coché une fiche à fusionner, cliqué sur le bouton et confirmé la fenêtre d'avertissement.
Il est reporté sur la fiche conservée par la méthode de fusion de Dolibarr lui-même : devis, commandes, factures, contacts, catégories. Les champs vides de la fiche conservée sont complétés avec ceux du doublon. Ensuite seulement, le doublon est supprimé. L'opération est irréversible : faites une sauvegarde avant une campagne de fusion.
Oui, et c'est ce que Dolibarr ne sait pas faire : son cœur ne fusionne que les tiers. La fusion d'un contact ou d'un adhérent est écrite dans le module. Elle reporte sur la fiche conservée tout ce qui désignait la fiche supprimée : rôles sur les devis, commandes, factures et projets, rattachements aux tiers, catégories, événements d'agenda, notifications, cibles d'emailing, attributs supplémentaires, et pour un adhérent ses cotisations et ses partenariats. Le compte utilisateur éventuellement lié suit également. Les champs vides de la fiche conservée sont complétés avec ceux du doublon, les notes sont mises bout à bout, puis le doublon est supprimé. L'ensemble se fait dans une transaction : si une étape échoue, rien n'est appliqué.
Le rapprochement est une égalité stricte après normalisation, pas un score de ressemblance : deux fiches ne sont groupées que si une de leurs valeurs est réellement identique une fois la mise en forme retirée. Les valeurs partagées par plus de fiches que le plafond de groupe — un standard téléphonique, une boîte générique — sont écartées et signalées.
Le menu disparaît. Les fusions déjà faites restent : ce sont des données de votre base. La table d'historique et les réglages restent également, vous pouvez les supprimer vous-même.
Le support est assuré par la personne qui a écrit le module, à support@dolix.fr. La commande, le paiement, la facture et le téléchargement sont assurés par le DoliStore, où les nouvelles versions sont publiées.
Repris du fichier ChangeLog.md du module : une seule source.
1.1.310 septembre 2026
Technique : la fonction de vérification du jeton anti-CSRF porte désormais un nom préfixé par le module, pour qu'une fonction du même nom ajoutée un jour dans Dolibarr ne puisse pas empêcher la page de s'ouvrir. Un jeton vide est refusé explicitement.
1.1.210 septembre 2026
Correctif important : le formulaire de fusion transmettait toujours le type d'objet « tiers », quel que soit le type analysé. Une fusion lancée depuis les contacts ou les adhérents était traitée comme une fusion de tiers. Le type réellement affiché est désormais transmis, et la fusion des contacts et des adhérents, écrite depuis la 1.1.0, est réellement accessible depuis l'écran. Correctif : l'écran de configuration renvoyait une erreur 500 à l'enregistrement, la fonction d'écriture des réglages de Dolibarr étant appelée sans que sa bibliothèque soit chargée. Les réglages s'enregistrent normalement.
1.1.110 septembre 2026
Correctif de compatibilité PostgreSQL : la détection des colonnes optionnelles passe désormais par l'abstraction de Dolibarr, une requête en erreur annulant sur PostgreSQL la transaction en cours. Aucune donnée n'était altérée.
1.1.010 septembre 2026
Fusion des contacts et fusion des adhérents, que Dolibarr ne propose pas nativement : tout ce qui désigne la fiche supprimée est reporté sur la fiche conservée — documents et éléments liés, rattachements, événements, catégories, notifications, cotisations, partenariats et compte utilisateur associé — dans une transaction. Détection des doublons d'adhérents, proposée quand le module Adhérents est activé. Gestion des conflits de clé unique lors d'une fusion. Compatibilité entre versions : les colonnes absentes selon la version de Dolibarr sont détectées et ignorées. L'historique distingue désormais le type d'objet fusionné.
1.0.09 septembre 2026
Première version : détection des doublons de tiers et de contacts sur quatre critères, normalisation avant rapprochement, analyse en lecture seule, fusion des tiers par la méthode native de Dolibarr, garde-fous, historique et page de configuration.
Écrivez à support@dolix.fr. C’est la personne qui a écrit le module qui répond.
Réponse sous deux jours ouvrés. Ce n’est pas un service d’astreinte.
À joindre à votre message
Ce module est en vente sur le DoliStore.
La commande, le paiement, la facture et le téléchargement sont assurés par le DoliStore.
margeparjour · v1.0.0
Vous voyez ce que rapporte une journée de travail avant d'accepter le devis.
dolixdomaine · v1.0.4
Un client change de nom : ses adresses passent au nouveau domaine en une opération.
dolixmasse · v1.0.4
Vous changez un champ sur une série de fiches sans écrire une requête SQL.
dolixtaches · v1.0.3
Une tâche a été créée dans le mauvais projet : vous la déplacez, avec ses sous-tâches, son temps passé et ses documents.
dolixprix · v1.0.0
Un devis en brouillon reprend les prix du catalogue sans passer par un clonage.