Connecter Sage 100 et Odoo : garder Sage et synchroniser vos données
Par L'équipe Maillon9 novembre 202614 min de lecture
Connecter Sage 100 et Odoo permet à une PME de garder sa gestion commerciale ou sa comptabilité dans Sage, et de vendre avec Odoo, sans migration ni ressaisie. Ce guide, écrit pour les intégrateurs Sage, détaille ce qui se synchronise et dans quel sens, les règles qui évitent les doublons, ce qu'il faut côté Odoo et côté Sage, et les cas où une migration reste préférable.
Garder Sage 100 et ajouter Odoo, ou migrer
Garder Sage 100 et y relier Odoo est souvent le choix le plus sûr quand le client veut Odoo pour vendre, pas pour tenir sa comptabilité. Les pages sur « Odoo Sage » présentent presque toujours Odoo comme le remplaçant de Sage. Chez vos clients, la comptabilité tourne pourtant dans Sage depuis des années, l'expert-comptable y a ses habitudes, et la gestion commerciale porte des tarifs et des familles réglés avec soin.
Odoo arrive alors par la vente : le CRM, la boutique en ligne, les devis envoyés depuis le navigateur. Relier les deux logiciels laisse chacun à sa place. Les clients et les articles de Sage remplissent Odoo, les commandes prises dans Odoo arrivent dans la gestion commerciale, et les factures deviennent des écritures comptables.
Nous conseillons de connecter d'abord et de décider ensuite. Une migration touche la comptabilité, l'historique et les habitudes de toute l'entreprise. Une connexion se met en place donnée par donnée, sans toucher à Sage. Si le client décide plus tard de quitter Sage, Odoo contiendra déjà ses tiers, ses articles, ses tarifs et ses taxes. L'historique comptable passera alors par le fichier des écritures comptables (FEC), qu'Odoo sait importer d'après sa documentation de la localisation française.
Vous restez ainsi l'interlocuteur du client quand Odoo entre dans l'entreprise, et la console Maillon pour les intégrateurs Sage réunit tous vos clients au même endroit.
Quel Sage relier à Odoo
Vérifiez d'abord de quel Sage parle votre client, car trois logiciels portent ce nom. Sage 100, en France, s'installe sur un serveur de l'entreprise ou de son hébergeur et range ses données dans SQL Server. Sage Accounting est un logiciel de comptabilité en ligne, distinct de Sage 100. Enfin, le Sage 100 vendu en Amérique du Nord est un autre logiciel, qui porte le même nom.
La différence compte au moment de choisir un connecteur. Un module de la boutique d'applications d'Odoo qui porte le nom de Sage peut viser l'un ou l'autre : vérifiez dans sa description qu'il parle bien du Sage 100 de votre client.
Maillon relie le Sage 100 français : Sage 100c et Sage 100cloud, Comptabilité et Gestion commerciale, sur SQL Server. Les versions de Windows et les droits à prévoir sont dans les prérequis de la passerelle.
Comment Odoo et Sage 100 échangent leurs données
Odoo et Sage 100 ne se parlent pas directement : il faut un programme qui lise l'un et écrive dans l'autre. Côté Odoo, ce programme passe par l'API externe, l'interface qui permet à un autre logiciel de lire et de modifier ses données. Depuis Odoo 19, l'API JSON-2 remplace XML-RPC et JSON-RPC, que la documentation d'Odoo annonce supprimées dans Odoo 22, à l'automne 2028, et dans Odoo Online 21.1, à l'hiver 2027. Un connecteur écrit pour les anciennes API cessera de fonctionner à ces dates s'il n'est pas repris.
Côté Sage 100, un programme extérieur passe par deux portes. Il lit dans SQL Server, la base où Sage range ses données. Il écrit par les Objets Métiers, la bibliothèque que Sage fournit pour modifier ses données sans contourner ses contrôles, comme la numérotation des pièces ou le calcul des taxes.
Avec Maillon, ce rôle revient à la passerelle, un service Windows installé sur le serveur Sage. Elle lit les dossiers en SQL, en lecture seule, et n'écrit que par les Objets Métiers. Elle ouvre elle-même une connexion sortante vers Maillon : aucun port entrant n'est à ouvrir. Installer la passerelle Sage 100 décrit chaque écran de son assistant.
Ce que la synchronisation Sage 100 Odoo reprend, donnée par donnée
La synchronisation entre Sage 100 et Odoo se règle donnée par donnée, chacune avec son sens et sa clé de rapprochement, le champ qui retrouve la même fiche des deux côtés. Chez Maillon, chaque échange est un flux : un déclencheur (une heure, un changement dans Odoo) suivi de lectures et d'écritures. La galerie en propose 12.
| Donnée | Sens | Clé de rapprochement | Droits Sage |
|---|---|---|---|
| Clients, fournisseurs et leurs contacts | Odoo vers Sage, ou Sage vers Odoo | Numéro de compte Sage dans la Référence du contact Odoo | Écriture ou lecture |
| Articles | Odoo vers Sage, ou Sage vers Odoo | Référence article Sage dans la Référence interne Odoo | Écriture ou lecture |
| Stock d'un dépôt | Sage vers Odoo | Référence article | Lecture |
| Devis et commandes clients | Dans les deux sens, ensemble | Numéro de la commande Odoo dans la Référence Sage | Documents |
| Commandes fournisseurs | Odoo vers Sage | Numéro de la commande Odoo | Documents |
| Livraisons et factures Sage | Sage vers Odoo, en note sur la commande | Numéro de pièce Sage | Lecture |
| Factures et avoirs Odoo | Odoo vers Sage, en écritures | Numéro de facture dans le journal | Comptabilité |
| Tarifs | Sage vers Odoo | Listes de prix nommées d'après Sage | Lecture |
| Taxes et comptes des articles | Sage vers Odoo | Code de la taxe Sage | Lecture |
Presque tout passe par le connecteur Sage 100 Gestion commerciale. Chaque modèle crée un flux désactivé : vous le relisez, le testez sur un premier lot, puis l'activez. Maillon choisit les champs selon la version d'Odoo, 18, 19 ou 20, comme le SIRET, qui change de nom à chaque version. La page des modèles de flux Odoo et Sage 100 les détaille champ par champ.

Le 9 novembre 2026, nous avons relevé en lecture seule, avec le connecteur Maillon, le dossier de démonstration BIJOU : 46 comptes clients, 30 fournisseurs, 85 articles et 14 familles de détail. Au premier passage, le modèle des tiers de Sage vers Odoo créerait 44 sociétés, dont 11 archivées (les clients mis en sommeil), sans les 2 prospects.
Un seul logiciel maître par donnée
La règle qui évite les doublons tient en une phrase : chaque donnée a un seul logiciel maître. Si les clients sont créés dans Odoo, le flux va d'Odoo vers Sage, pas l'inverse. Activer les deux sens ferait tourner chaque modification en rond, et la galerie de Maillon vous prévient quand le modèle inverse est déjà utilisé.
La clé de rapprochement fait le reste. Un client Odoo sans numéro de compte Sage reçoit un numéro à sa création dans Sage, par exemple C000042, écrit ensuite dans Odoo. Relancer un flux ne crée donc pas de doublon, et une commande ou une facture déjà présente dans Sage est ignorée.
Les devis et commandes clients font exception, car ils vivent des deux côtés. Un devis créé dans Odoo devient un devis dans Sage. Confirmé dans Odoo, il devient un bon de commande dans Sage, transformé comme le ferait un utilisateur, et le numéro du bon s'inscrit dans le document d'origine de la commande Odoo. Une ligne modifiée ensuite dans Odoo remplace celle de Sage, après contrôle par Sage, tant que le document Sage n'a pas avancé. Dans l'autre sens, un devis saisi dans Sage crée un devis dans Odoo, et chaque modèle reconnaît les documents venus de l'autre.
Tarifs et taxes : retrouver dans Odoo les prix de Sage
Les prix et les taxes sont le point où se juge une synchronisation : une commande prise dans Odoo doit donner la même facture dans Sage. Maillon part d'un principe : Sage calcule, Odoo reprend.
Les lignes de commande partent d'Odoo hors taxes, et Sage calcule les taxes comme pour une saisie, d'après l'article, sa famille et la catégorie comptable du client. Le modèle des taxes recopie les taxes de Sage dans Odoo, donne à chaque article ses taxes et ses comptes, et fait des autres catégories comptables (export, DOM-TOM) des positions fiscales. Odoo applique alors les mêmes taxes que Sage, écotaxe comprise. Deux cas donnent encore un total différent : les frais d'expédition que Sage ajoute sous le seuil de franco, et les articles facturés au poids.
Le modèle des tarifs recopie les conditions de vente de Sage dans des listes de prix Odoo. Chaque catégorie tarifaire devient une liste, comme « Sage Catégorie Grossistes », et chaque client qui a ses propres conditions reçoit la sienne. Les familles deviennent des catégories d'articles, et Odoo applique les règles dans l'ordre de Sage : l'article, la famille, puis le reste. Le 5 novembre 2026, sur le dossier de démonstration BIJOU, Odoo 18 et Odoo 19 ont appliqué les mêmes 5 920 prix que Sage après ce flux.
Activez les listes de prix dans Odoo
Dans Odoo, cochez Listes de prix dans Ventes › Configuration › Paramètres. Sans elles, Odoo garde le prix de vente de l'article, même si le client a sa liste.
Ce qu'il faut côté Odoo et côté Sage
La mise en place demande un compte de chaque côté, avec des droits limités à ce que font les flux.
- Odoo : un utilisateur réservé à Maillon, avec les seuls droits utiles (Contacts, Ventes, Inventaire ou Facturation), et une clé API créée dans ses préférences. En Odoo 20, la clé d'un utilisateur qui n'est pas administrateur dure un mois au plus : notez son échéance.
- Odoo Online : l'accès aux données par API n'existe que sur l'offre Custom, selon la documentation de l'API externe d'Odoo. Odoo.sh et les serveurs du client ne sont pas concernés.
- Sage 100 : la passerelle sur le serveur Sage et un login SQL en lecture seule. Pour écrire, il faut aussi le runtime des Objets Métiers avec sa licence, et un utilisateur Sage dédié, dont les droits s'appliquent à toutes les écritures.
- Maillon : les flux qui écrivent dans Sage demandent l'offre Pro, présentée avec les autres dans les tarifs de Maillon.
La détection en temps réel s'installe en plus, depuis l'éditeur du flux : Maillon crée dans Odoo une règle d'automatisation qui le prévient à chaque modification d'une fiche. Il faut pour cela, une seule fois, un compte administrateur d'Odoo.
En production : erreurs, relances et charge sur Sage
Une synchronisation se juge sur la durée. Chaque flux planifié lit par lots les fiches modifiées depuis l'exécution précédente et garde un point de reprise : le premier passage reprend l'historique, puis seules les modifications circulent. Sur Odoo Online, qui accepte peu d'appels à la fois, gardez des lots de 50 fiches.
Une fiche en erreur n'arrête pas les autres. Si Odoo, Sage ou la passerelle ne répond pas, l'élément est relancé seul, après 5 minutes, 15 minutes, 1 heure, puis toutes les 4 heures pendant 24 heures. Si Sage ou Odoo refuse les données, comme un article inconnu ou un compte en sommeil, l'élément passe dans l'onglet À traiter du flux, avec sa référence et son erreur. Les administrateurs du client et de l'intégrateur en sont prévenus par e-mail, comme le détaille la page sur les relances automatiques des flux.
Reste la question que posent les clients : la synchronisation ralentit-elle Sage ? La passerelle mesure elle-même ses requêtes et ses écritures sur le serveur, et vous pouvez limiter ce qu'elle demande, comme l'explique la page sur la charge sur Sage. Pour un client qui préfère que ses données restent sur son serveur, le mode Uniquement local exécute ces mêmes flux sur le serveur Sage, et les données vont directement de Sage à Odoo.
Export, développement sur mesure ou flux : que proposer
Trois approches s'offrent à vous, et elles ne vieillissent pas de la même façon.
| Critère | Export CSV ou FEC | Connecteur développé sur mesure | Flux de la galerie Maillon |
|---|---|---|---|
| Données | Figées au moment de l'export | À jour, si le programme tourne | À jour à chaque passage, ou dès qu'Odoo signale un changement |
| Doublons | Contrôlés à la main à chaque import | Ceux que le développeur a prévus | Évités par la clé de rapprochement |
| Nouvelle version d'Odoo | Formats d'import à revoir | Code à reprendre | Champs choisis selon la version |
| Maintenance | Par la personne qui exporte | Par son auteur, pour ce seul client | Par Maillon, pour tous ses clients |
Nous déconseillons l'export refait chaque semaine et le connecteur codé une fois, puis laissé de côté. Le premier fige les données et multiplie les ressaisies. Le second fonctionne le jour de la livraison, puis s'arrête à la première API supprimée. Un flux est un réglage, pas un développement. Il se relit dans l'éditeur et se reprend chez un autre client. Il tient aussi dans un fichier qu'un assistant d'intelligence artificielle (IA) peut écrire à votre place, comme le montre la page générer des flux avec une IA.
Maillon n'est pas toujours la bonne réponse. Si votre client quitte Sage d'un coup, c'est un projet de migration, avec l'import du FEC dans Odoo. Si son dossier Sage 100 n'est pas sur SQL Server, la passerelle ne pourra pas le lire.
Et l'IA, des deux côtés
Une fois les deux logiciels reliés, l'IA peut travailler sur chacun. Maillon branche Claude, ChatGPT, Le Chat ou Cursor sur Sage 100 par MCP (Model Context Protocol), le standard qui permet à un assistant IA d'utiliser des outils externes : c'est le rôle du serveur MCP Sage 100. L'assistant lit le dossier au moment de la question, avec les droits de la personne qui la pose.
Côté Odoo, notre partenaire Aidoo fait pour Odoo ce que Maillon fait pour Sage : il connecte Odoo à Claude et à ChatGPT par MCP. Avec les deux connecteurs, un même assistant peut lire les devis d'Odoo et les factures de Sage dans une seule conversation. Pour transformer ces usages en offres, voir ce qu'un intégrateur peut proposer avec l'IA sur Sage 100.
Questions fréquentes
Peut-on garder la comptabilité dans Sage et facturer dans Odoo ?
Oui. Le modèle des factures passe chaque facture ou avoir validé dans Odoo en écriture dans le journal Sage de votre choix : le tiers avec son échéance, les lignes de vente et de TVA. Les comptes d'Odoo doivent exister dans Sage, et les règlements ne sont pas repris. Le reste est sur la page du connecteur Sage 100 Comptabilité.
La synchronisation fonctionne-t-elle dans les deux sens ?
Oui, mais une donnée à la fois. Les clients ou les articles vont dans un seul sens, choisi selon le logiciel où ils sont créés. Seuls les devis et commandes clients circulent dans les deux sens, avec deux modèles faits l'un pour l'autre.
Est-elle en temps réel ?
Dans le sens Odoo vers Sage, oui : une règle installée dans Odoo prévient Maillon à chaque modification, et la planification rattrape ce qui aurait manqué. Dans le sens Sage vers Odoo, les flux sont planifiés, par exemple toutes les heures ou chaque nuit, et ne lisent que les fiches modifiées.
Quelles versions d'Odoo sont prises en charge ?
Odoo 18, 19 et 20, sur Odoo Online avec l'offre Custom, sur Odoo.sh ou sur un serveur du client. En versions 19 et 20, les flux utilisent déjà l'API JSON-2, qui remplace les anciennes.
Par où commencer
Commencez par un seul sens et des données simples. Sur un dossier de test où Sage reste maître des clients et des articles, activez ces deux modèles vers Odoo, vérifiez les fiches, puis ajoutez les tarifs et les taxes. Les commandes et les factures viennent ensuite, quand les clés de rapprochement sont en place des deux côtés.
Pour voir ces flux sur le dossier de démonstration et en parler avec nous, réservez un créneau de découverte.