Modèles de flux Odoo et Sage 100
Douze flux prêts à l'emploi pour synchroniser vos clients et leurs contacts, articles, stocks, devis, commandes et factures entre Odoo 18, 19 ou 20 et Sage 100, avec leur compatibilité version par version.
29 min de lectureMis à jour le 10 novembre 2026
Vous utilisez Odoo pour vendre (CRM, ventes, boutique en ligne) et Sage 100 pour la gestion commerciale ou la comptabilité ? La galerie de modèles de Maillon vous donne des flux déjà construits entre les deux : vous choisissez un modèle, vous indiquez votre compte Odoo et votre dossier Sage, et Maillon crée le flux. La version d'Odoo est lue directement sur votre compte : vous n'avez pas à la donner. Il arrive désactivé : vous le relisez dans l'éditeur, vous le testez, puis vous l'activez.
La galerie se trouve dans Flux › Modèles. Pour choisir les flux d'un projet et le logiciel maître de chaque donnée, voir le guide Connecter Sage 100 et Odoo.

Avant de commencer
Un compte Odoo dédié
Créez dans Odoo un utilisateur réservé à Maillon, avec les seuls droits utiles (Contacts, Ventes, Inventaire ou Facturation selon les modèles). Dans ses préférences, onglet Sécurité du compte, créez une clé API. En Odoo 20, choisissez la portée rpc ; un utilisateur qui n'est pas administrateur ne peut pas créer de clé de plus d'un mois : notez sa date d'expiration.
Le compte connecté dans Maillon
Dans Flux › Comptes connectés, ajoutez un compte Odoo : adresse de votre Odoo, identifiant de l'utilisateur et clé API. Le nom de la base est facultatif : Maillon le trouve seul (Odoo Online, Odoo.sh, serveur à une seule base) ; indiquez-le seulement si votre serveur Odoo en a plusieurs. Maillon vérifie la connexion et reconnaît la version d'Odoo.
Les numéros de compte Sage dans Odoo
Maillon rapproche les fiches par une clé commune : le numéro de compte Sage (CT_Num) est écrit dans le champ Référence du contact Odoo, la référence article Sage (AR_Ref) dans la Référence interne de l'article Odoo. Les modèles « Odoo vers Sage » les remplissent eux-mêmes.
Odoo Online : offre Custom
Odoo réserve l'accès à ses données par API à l'offre Custom d'Odoo Online. Avec l'offre Standard, les flux ne pourront pas se connecter. Odoo.sh et les installations sur vos serveurs ne sont pas concernés.
Odoo 18 derrière un serveur web qui ferme /jsonrpc
Certains serveurs web placés devant Odoo ferment l'adresse /jsonrpc, par sécurité : elle permet aussi de créer et de supprimer des bases. Maillon passe alors par XML-RPC (/xmlrpc/2/common et /xmlrpc/2/object), sans réglage de votre part. Si ces adresses sont fermées elles aussi, Maillon vous le dit à l'enregistrement du compte : demandez à l'administrateur du serveur d'ouvrir l'une des deux.
Les modèles et leur compatibilité
« Oui » : le même flux fonctionne tel quel. « Adapté » : Maillon choisit les bons champs selon la version de votre Odoo, qu'il lit lui-même. « Avec limite » : fonctionne, avec une limite précisée dans la galerie.
| Modèle | Odoo 18 | Odoo 19 | Odoo 20 | Droits Sage |
|---|---|---|---|---|
| Tiers et contacts : Odoo vers Sage | Oui | Oui | Adapté (SIRET) | Écriture |
| Tiers et contacts : Sage vers Odoo | Adapté | Adapté | Adapté | Lecture |
| Articles : Odoo vers Sage | Oui | Oui | Oui | Écriture |
| Articles : Sage vers Odoo | Adapté (stock) | Adapté (stock) | Oui | Lecture |
| Stock : Sage vers Odoo | Avec limite | Oui | Oui | Lecture |
| Devis et commandes clients : Odoo vers Sage | Oui | Oui | Oui | Documents |
| Devis et commandes clients : Sage vers Odoo | Oui | Oui | Oui | Lecture |
| Commandes fournisseurs : Odoo vers Sage | Oui | Oui | Oui | Documents |
| Livraisons et factures Sage sur les commandes Odoo | Oui | Oui | Oui | Lecture |
| Factures Odoo : écritures comptables dans Sage | Oui | Oui | Oui | Comptabilité |
| Tarifs : Sage vers Odoo | Oui | Oui | Oui | Lecture |
| Taxes et comptabilité des articles : Sage vers Odoo | Oui | Adapté (positions fiscales) | Adapté (positions fiscales) | Lecture |
Ce qui change d'une version d'Odoo à l'autre et que les modèles prennent en charge :
- SIRET : champ
sireten Odoo 18,company_registryen 19,l10n_fr_sireten 20 (localisation française). - Société ou particulier : en Odoo 18 et 19, Maillon crée les tiers Sage comme sociétés ; en Odoo 20, c'est Odoo qui décide (une fiche avec un numéro de TVA et sans société mère est une société).
- Articles stockables : en Odoo 18 et 19, le suivi du stock n'existe qu'avec l'application Inventaire ; en Odoo 20, il fait partie des articles.
- Lignes de commande : les noms des champs d'unité et de taxes ont changé en Odoo 19 et 20 ; les modèles ne les envoient pas, Odoo et Sage les déduisent de l'article.
- Positions fiscales : en Odoo 18, la position fiscale liste les taxes qu'elle remplace ; à partir d'Odoo 19, c'est la taxe de remplacement qui indique les positions et les taxes qu'elle remplace.
- Applications absentes : à la création d'un flux, Maillon regarde ce que votre Odoo contient (Inventaire, Achats, Facturation…) et construit le flux en conséquence ; un champ qu'Odoo n'a pas est laissé de côté et signalé, sans bloquer le reste. Un modèle qui ne peut pas fonctionner sans une application (les taxes sans Facturation) refuse la création et vous dit laquelle installer.
Les modèles utilisent l'API JSON-2 d'Odoo 19 et 20, et JSON-RPC pour Odoo 18 (XML-RPC quand le serveur web de votre Odoo ferme JSON-RPC). Odoo a annoncé la fin de XML-RPC et JSON-RPC pour Odoo 22 et Odoo Online 21.1 : vos flux Odoo 19 et 20 ne seront pas concernés.
Comment travaillent ces flux
- Tarifs et taxes : tout est recopié à chaque passage. Ces deux modèles relisent l'ensemble des conditions de Sage à chaque exécution et ne réécrivent dans Odoo que ce qui a changé ; ce qui a disparu de Sage disparaît d'Odoo (règles supprimées, listes archivées).
- Planifiés, avec un point de reprise. Chaque exécution (toutes les heures ou chaque nuit, ou dès qu'Odoo signale un changement : voir plus bas) lit les fiches modifiées depuis la précédente, par lots. La première exécution reprend tout l'historique, un lot après l'autre. Dans l'éditeur, Repartir du début relit tout. Le réglage Fiches par exécution va jusqu'à 1000, sauf pour les modèles qui créent des commandes, des achats ou des factures dans Sage (50 au plus) ; sur Odoo Online, restez à 50. Pour lire plus de 200 fiches à la fois dans Sage, la passerelle doit être en version 1.3.9 ou plus récente. Un test depuis l'éditeur relit toujours le même premier lot. Lancer maintenant fait avancer le point de reprise ; le flux activé enchaîne alors les lots jusqu'au dernier.
- Sans doublon. Contacts et articles sont créés ou mis à jour ; une commande ou une facture déjà présente dans Sage est ignorée.
- Une fiche en erreur n'arrête pas les autres. Elle est listée dans l'historique de l'exécution ; corrigez-la dans le logiciel d'origine, elle repartira à la prochaine exécution.
- Dans la langue de votre Odoo. Ce que le flux écrit lui-même dans Odoo (noms des listes de prix et de la catégorie des familles, notes laissées sur les commandes) suit le réglage Langue des textes écrits dans Odoo : par défaut celle de l'utilisateur Odoo du compte connecté, sinon français ou anglais. Les données de Sage (noms des articles, des familles, des taxes) restent telles quelles.
- Vendeur et représentant, par l'adresse e-mail. Le vendeur d'un client ou d'un devis Odoo devient le représentant dans Sage : le collaborateur qui a la même adresse e-mail. Dans l'autre sens, le représentant Sage devient le vendeur Odoo qui a son adresse. Renseignez donc l'e-mail de vos collaborateurs dans Sage, le même que celui de leur utilisateur Odoo : il n'y a rien d'autre à régler. Sans adresse commune, rien ne change, ni dans Sage ni dans Odoo. Un vendeur Odoo est un utilisateur Odoo : un représentant sans compte Odoo n'y devient pas vendeur. Il faut la passerelle 1.3.22 ou plus récente.
- Un seul sens par type de fiche. N'activez pas « Tiers et contacts : Odoo vers Sage » et « Tiers et contacts : Sage vers Odoo » ensemble : chaque modification ferait des allers-retours. La galerie vous prévient. Seuls les deux modèles de devis et commandes clients sont faits pour tourner ensemble : chacun reconnaît les documents venus de l'autre.
Passerelle Sage 1.2.0
Les modèles « Sage vers Odoo » reprennent là où ils s'étaient arrêtés grâce à la date de modification des fiches Sage, à la milliseconde près depuis la passerelle 1.2.0. Mettez votre passerelle à jour depuis sa page d'administration.
Plusieurs sociétés dans Odoo
Quand votre Odoo a plusieurs sociétés et que chacune a son dossier Sage, faites ce réglage dès le début, avant de créer les flux. Sur la page Comptes connectés, ouvrez Plusieurs sociétés sur votre compte Odoo, activez-le, choisissez le dossier Sage de chaque société, enregistrez, puis cliquez sur Installer dans Odoo. Il faut les droits d'administration d'Odoo : sa clé est demandée si le compte connecté ne les a pas, utilisée une fois puis oubliée.
Une référence Sage par société
Chaque contact reçoit un champ Référence Sage, juste après sa référence, avec une valeur par société : son numéro dans le dossier de cette société. Deux dossiers peuvent ainsi numéroter le même client différemment, ou donner le même numéro à deux clients différents. À l'installation, la référence de vos clients déjà reliés à Sage est recopiée dans chaque société.
Un vendeur par société
Le champ Vendeur de la société, juste après le vendeur, part comme représentant dans le dossier de la société ; vide, c'est le vendeur d'Odoo. Un nouveau devis de la société le prend, sauf si vous choisissez un autre vendeur.
Un client dans la société où vous travaillez
Un contact créé dans Odoo, à la main ou par un flux, appartient à la société dans laquelle vous travaillez : il ne part que dans son dossier. Pour le partager entre toutes les sociétés, videz son champ Société : il part alors dans chaque dossier.
Ensuite, à la création d'un flux depuis la galerie, la Société Odoo vient du dossier choisi : vous n'avez plus à la choisir, et un dossier relié à aucune société est refusé. Dupliquer, sur la page Flux, fait de même pour la copie, et les flux s'y regroupent par dossier Sage. Un fichier de flux importé (voir Générer des flux avec une IA) prend aussi la société de son dossier. Chaque flux ne lit et n'écrit que les devis, commandes, factures, listes de prix et taxes de sa société, et sa détection en temps réel ne se déclenche que pour les fiches de sa société et les fiches partagées. Chaque société garde aussi sa liste de prix, sa position fiscale et sa catégorie tarifaire (Price Type, dont le choix ne montre que les listes de la société ouverte).
Les contacts des sociétés sont retrouvés par leur prénom et leur nom, dans un ordre ou dans l'autre (« Jean Dupont » comme « Dupont Jean »), dans les deux sens : un contact ne part dans un dossier que si sa société y a sa Référence Sage, et un contact venu de Sage ne double pas celui qu'Odoo a déjà, quel que soit l'ordre de son nom. Les articles restent partagés, avec la même référence interne dans tous les dossiers.
Ce que les flux installent dans Odoo (le champ Price Type, la règle des articles créés dans Sage, le verrou des listes de prix, les règles du temps réel) n'est jamais installé deux fois : le flux d'une autre société retrouve ce qui est déjà là et s'en sert aussi. Avec Articles créés dans Sage seulement, la création d'articles n'est refusée que dans les sociétés dont le flux le demande, et chaque flux autorise son propre utilisateur Odoo. Il en va de même pour Listes de prix modifiables dans Sage seulement. Retirer un flux laisse en place ce qu'un autre flux utilise encore : tout part avec le dernier. Les champs Référence Sage et Vendeur de la société ne sont jamais retirés par Maillon : ils portent les numéros qui relient Odoo à Sage.
Flux créés avant le réglage
Un flux créé avant d'activer Plusieurs sociétés garde la référence commune. Recréez-le depuis la galerie pour qu'il utilise la Référence Sage de sa société.
Détection en temps réel dans Odoo
Les modèles qui vont d'Odoo vers Sage (contacts, articles, commandes, factures) peuvent démarrer dès qu'une fiche est créée ou modifiée dans Odoo, sans attendre l'heure planifiée et sans installer de module.
Activer et enregistrer
Ouvrez le flux, puis l'onglet Odoo à droite de l'éditeur : la section Détection en temps réel dans Odoo est déjà réglée par le modèle (compte Odoo, fiches surveillées, filtre). Enregistrez le flux et activez-le.
Installer dans Odoo
Cliquez sur Installer dans Odoo. Maillon crée dans votre Odoo une règle d'automatisation « Maillon : nom du flux », avec une action Envoyer une notification webhook vers une adresse propre à ce flux. Seul un administrateur Odoo (droits Paramètres) peut créer une règle : si le compte du flux ne l'est pas, Maillon vous demande l'identifiant et une clé API d'un administrateur, utilisés pour cette seule opération et jamais conservés. Les règles d'automatisation viennent du module Odoo « Règles d'automatisation » (base_automation), qui n'est pas installé par défaut : s'il manque, Maillon vous propose de l'installer. La règle part à chaque modification de la fiche : laissez vide son champ Lors de la mise à jour dans Odoo, sinon seules les modifications des champs qui y figurent préviendraient Maillon.
Pour les devis et commandes, Maillon ajoute deux règles sur les lignes, « Maillon : nom du flux (lignes) » et « (lignes supprimées) » : une ligne modifiée seule, par l'API ou un assistant, ne touche pas la commande quand le montant ne change pas (une désignation par exemple). Ces règles marquent alors la commande comme modifiée, ce qui prévient Maillon. Elles exécutent une ligne de code Python (« Exécuter du code ») qui n'écrit aucune valeur. Un flux créé avant cette version du modèle se recrée depuis la galerie, puis sa détection se réinstalle.
Laisser travailler
À chaque changement, Odoo prévient Maillon et le flux démarre une dizaine de secondes plus tard, une seule fois pour une série de changements rapprochés. Deux exécutions d'un même flux ne se chevauchent jamais.
La planification reste active
Odoo n'envoie chaque notification qu'une fois, sans réessayer si Maillon ne répond pas. La planification continue donc de tourner : elle rattrape ce qu'Odoo n'aurait pas signalé et vérifie que la règle est toujours en place. L'onglet Odoo du flux affiche l'état de la règle et le nombre de fiches que le scan a dû rattraper : s'il n'est pas nul, vérifiez la règle dans Odoo (Paramètres › Technique › Règles d'automatisation, en mode développeur).
Pour arrêter la détection en temps réel, cliquez sur Retirer d'Odoo : la règle est supprimée d'Odoo. Supprimer le flux la retire aussi.
Le détail des modèles
Tiers et contacts : Odoo vers Sage
Lit les sociétés et particuliers Odoo (clients ou fournisseurs, au choix) modifiés depuis la dernière exécution. Une fiche sans Référence est créée dans Sage avec un numéro fait d'un préfixe et de l'identifiant Odoo (C000042), puis ce numéro est écrit dans Odoo. Une fiche avec une référence met à jour le tiers Sage, ou le crée. Sont repris : raison sociale, adresse, code postal, ville, pays, téléphone, e-mail, TVA et, si vous le demandez, SIRET. Les textes trop longs pour Sage sont coupés (35 caractères pour la raison sociale). Par défaut, le flux envoie les clients qu'Odoo connaît (une facture, ou créés depuis le menu Clients) et ceux qui ont un devis ou une commande, à leur nom ou à celui d'un de leurs contacts ; pour les fournisseurs, une facture ou une commande d'achat. Cochez Reprendre aussi les fiches sans devis, commande ni facture pour envoyer toutes les sociétés et tous les particuliers, y compris ceux saisis dans l'application Contacts. Interrupteur décoché, une fiche créée avant son premier devis part dans Sage avec ce devis quand la détection en temps réel est installée, sinon à sa prochaine modification : Odoo ne change pas la fiche quand on lui fait un devis.
Le vendeur d'un client part dans Sage comme son représentant, par son adresse e-mail (voir plus haut). Sans vendeur, ou sans collaborateur Sage à cette adresse, le représentant de Sage ne change pas.
Catégorie tarifaire choisie dans Odoo (clients). Cochez cette option pour choisir la catégorie tarifaire Sage d'un client dans Odoo. Installez ensuite, depuis l'onglet Odoo du flux, le champ Price Type : il se place juste au-dessus de la liste de prix de la fiche client (onglet Ventes et achats), propose les listes de prix des catégories créées par le modèle Tarifs (« Sage Catégorie Grossistes ») et ne permet pas d'en créer. Dans un Odoo à plusieurs sociétés, chaque société a sa propre valeur. La catégorie choisie part dans Sage avec le client, et Odoo donne au client la liste de prix de sa catégorie, sauf s'il a la sienne (tarifs d'exception) : celle-ci est recalculée par le flux des tarifs à son passage suivant. Un client dont le champ est vide reçoit la catégorie qu'il a dans Sage. Il faut la passerelle 1.3.22 ou plus récente.
Avec Reprendre les contacts des sociétés (coché par défaut), les personnes rattachées à une société dans Odoo deviennent les contacts de son tiers Sage : nom, fonction, téléphone et e-mail. Odoo n'a qu'un champ pour le nom d'une personne : il va dans le nom du contact Sage, le prénom reste vide. À sa création dans Sage, le numéro du contact Sage est écrit dans la Référence du contact Odoo (SAGE-CT-27) : ensuite, il est retrouvé par ce numéro, et le renommer dans Odoo le renomme dans Sage, sans doublon. Un contact encore sans numéro est reconnu par son nom. Un contact dont la société n'a pas encore de numéro Sage est repris à sa prochaine modification. Les adresses de facturation et de livraison ne sont pas reprises.
Tiers et contacts : Sage vers Odoo
Lit les tiers Sage (clients ou fournisseurs, au choix) modifiés et crée ou met à jour la société Odoo dont la Référence est le numéro de compte. Le pays, texte libre dans Sage, est retrouvé dans Odoo par son nom ou son code. Un tiers mis en sommeil est archivé dans Odoo. Les prospects ne sont pas repris. Le représentant d'un client devient son vendeur dans Odoo : l'utilisateur Odoo qui a l'adresse e-mail du collaborateur Sage. Sans représentant, ou sans utilisateur à cette adresse, le vendeur d'Odoo ne change pas.
Avec Reprendre les contacts des tiers (coché par défaut), le même flux recopie sous chaque société les contacts de son tiers Sage : nom (« Prénom Nom »), fonction, téléphone et e-mail, créés ou mis à jour. Un contact modifié seul dans Sage est repris aussi : Sage ne change pas la date de modification du tiers quand seul un contact change, la passerelle suit donc la dernière modification du tiers ou de l'un de ses contacts. Chaque contact Odoo garde dans sa Référence le numéro du contact Sage (SAGE-CT-27, le même que dans l'autre sens) : renommé dans Sage, il est renommé dans Odoo, sans doublon. Les contacts déjà présents dans Odoo sans ce numéro sont reconnus une fois par leur nom, puis reçoivent leur numéro. Un contact supprimé dans Sage reste dans Odoo. Reprendre le numéro de TVA est décoché par défaut : Odoo refuse une fiche dont le numéro de TVA est invalide, et ses contacts avec elle ; cochez-le quand les numéros de Sage sont à jour. Le portable et la civilité ne sont pas repris, ces champs ayant disparu d'Odoo en version 19 ; 500 contacts au plus par tiers. Demande la passerelle Sage 100 en version 1.3.16 ou plus. Un flux « Contacts des tiers : Sage vers Odoo » créé avant continue de fonctionner : vous pouvez le remplacer par celui-ci.
Articles : Odoo vers Sage
Lit les articles Odoo modifiés, archivés compris, et met à jour l'article Sage de même Référence interne (désignation, prix de vente, prix d'achat, code-barres, poids), ou le crée. Un article archivé est mis en sommeil. Les articles à plusieurs variantes ne sont pas repris.
Articles sans référence. Avec Créer un code pour les articles sans référence (coché par défaut), un article Odoo actif qui n'a que son nom et son prix reçoit un code Sage : le début choisi (ART par défaut) puis son identifiant Odoo sur 6 chiffres, par exemple ART000042. Le code est écrit dans sa référence interne Odoo, puis l'article est créé dans Sage ; vos devis et commandes Odoo le retrouvent ensuite. Un code qui existe déjà dans Sage n'est jamais réutilisé : l'article n'est pas créé et une note sur l'article Odoo vous demande sa référence.
Familles. Un nouvel article va dans la famille Sage dont l'intitulé ou le code est le nom de sa catégorie Odoo, celle que le modèle Tarifs : Sage vers Odoo crée sous « Familles Sage ». Sans famille correspondante, il va dans la famille par défaut du flux : choisissez une famille de détail dont le paramétrage comptable est rempli, car Sage en tire les comptes et les taxes de ses articles (avec une famille sans comptes, les lignes de vente partent sans TVA). La famille est choisie à la création de l'article : une catégorie changée ensuite dans Odoo ne déplace pas l'article dans Sage, et une famille absente de Sage n'est pas créée. Un flux créé avant cette version du modèle se recrée depuis la galerie pour en profiter.
Articles : Sage vers Odoo
Crée ou met à jour l'article Odoo dont la référence interne est la référence Sage. Un article suivi en stock dans Sage devient stockable dans Odoo si vous cochez l'option et que l'application Inventaire est installée (en Odoo 18 et 19) ; Maillon le vérifie lui-même à la création du flux. Sans Inventaire, les articles sont créés sans suivi du stock.
Avec Articles créés dans Sage seulement, puis les réglages installés dans Odoo depuis l'onglet Odoo du flux, seul l'utilisateur Odoo du flux peut créer un article : tout autre utilisateur, administrateurs compris, voit un message qui l'invite à créer l'article dans Sage. Cela vaut aussi pour un article dupliqué, importé ou créé depuis une ligne de devis.
Stock : Sage vers Odoo
Recopie dans un entrepôt Odoo la quantité en stock de chaque article d'un dépôt Sage, comme un inventaire. Seuls les articles stockables d'Odoo sont concernés ; un article suivi par lot ou numéro de série n'est pas mis à jour.
Devis et commandes clients : Odoo vers Sage
Pour chaque devis Odoo, crée un devis dans Sage, et pour chaque commande confirmée un bon de commande, avec dans Référence le numéro de la commande Odoo. Chaque ligne reprend la référence article, la quantité, le prix net hors taxes calculé par Odoo et, en désignation, la description ajoutée dans Odoo, ou à défaut le nom de l'article sans sa référence entre crochets ; sections et notes sont ignorées. Le représentant de la pièce Sage est le collaborateur qui a l'adresse e-mail du vendeur de la commande ; sans lui, celui du client dans Sage. Le numéro de pièce Sage est noté sur la commande Odoo. Si le client n'a pas encore de numéro de compte Sage, une note l'indique sur la commande et rien n'est envoyé : avec la détection en temps réel des deux flux, le client part d'abord dans Sage, puis la commande dès qu'il y a son numéro.
Quand vous confirmez dans Odoo un devis déjà envoyé dans Sage, Maillon transforme le devis Sage en bon de commande, comme le fait Sage, et écrit le numéro du bon dans le Document d'origine de la commande Odoo. Un document que Sage a transformé depuis (devis en bon de commande, bon de commande en bon de livraison) est retrouvé par le numéro d'origine que gardent ses lignes : il n'est jamais recréé. Décochez Envoyer aussi les devis pour n'envoyer que les commandes confirmées. Les documents sont repris à partir du jour de la création du flux, ou de la date que vous indiquez.
Quand vous modifiez dans Odoo les lignes d'un devis ou d'une commande déjà envoyé (quantité, prix, remise, désignation, article ajouté ou retiré, depuis le formulaire, le catalogue, l'API ou un assistant), Maillon remplace les lignes d'articles du document Sage par celles d'Odoo et le note sur la commande. Sage contrôle d'abord les nouvelles lignes : un article qu'il ne connaît pas laisse le document intact, et la commande reste à traiter. Cela vaut tant que le document Sage est à la même étape (devis pour un devis, bon de commande pour une commande confirmée) : une fois en préparation, livré ou facturé, il n'est plus modifié. Odoo l'emporte : une ligne changée à la main dans Sage est remplacée à la modification Odoo suivante, mais les lignes de texte saisies dans Sage restent. Un document saisi dans Sage n'est jamais modifié par ce modèle ; le client et les dates ne sont pas renvoyés. Pour un ensemble (nomenclature), Sage ajoute ses composants sous lui à la création du devis : seules les lignes d'articles sont comparées, pas ses composants. Après un remplacement de lignes, l'ensemble est remis sans ses composants, comme lorsqu'on l'ajoute à une pièce existante dans Sage.
Une commande dupliquée dans Odoo est envoyée comme une nouvelle commande : Odoo recopie le document d'origine, mais seule la commande la plus ancienne qui le porte est reliée au document Sage. Un flux créé avant cette version du modèle se recrée depuis la galerie pour en profiter.
Taxes. Les lignes partent hors taxes, sans les taxes d'Odoo : Sage calcule les taxes comme pour une saisie, d'après l'article (ou sa famille) et la catégorie comptable du client. Avec le modèle « Taxes et comptabilité des articles : Sage vers Odoo », Odoo applique les mêmes taxes et les montants sont identiques au centime (TVA, écotaxe, exonération à l'export, client à prix TTC). Une taxe changée à la main sur une ligne Odoo n'est pas reprise. Comme pour une saisie aussi, Sage ajoute les frais du mode d'expédition du client sous son seuil de franco, et valorise au poids net un article marqué Facturation au poids : le total Sage diffère alors de celui d'Odoo. Un article à gamme est refusé par Sage ; la commande reste à traiter.
Devis et commandes clients : Sage vers Odoo
Pour chaque devis ou bon de commande saisi dans Sage, crée le devis dans Odoo pour le client dont la Référence est le numéro de compte Sage, avec le numéro de pièce Sage dans le Document d'origine et la référence Sage dans la Référence client. Les lignes reprennent l'article par sa référence interne, la quantité, le prix et la remise en pourcentage ; les articles doivent déjà exister dans Odoo (modèle Articles : Sage vers Odoo).
Quand Sage transforme le devis en bon de commande, ou qu'un bon de commande est saisi directement, la commande Odoo est confirmée et son document d'origine prend le numéro du bon. Une commande venue d'Odoo par le modèle précédent ne reçoit que cette confirmation, jamais de lignes. Les lignes supprimées dans Sage restent dans Odoo.
Commandes fournisseurs : Odoo vers Sage
Pour chaque commande d'achat confirmée dans Odoo, crée la commande fournisseur dans Sage, avec dans Référence le numéro de la commande Odoo, les lignes (référence article, quantité, prix net hors taxes, désignation comme pour les devis) et une note du numéro Sage sur la commande Odoo. Une commande dont le fournisseur reçoit son numéro Sage part aussitôt, avec la détection en temps réel.
Livraisons et factures Sage sur les commandes Odoo
Quand Sage fait un bon de livraison ou une facture à partir d'une commande venue d'Odoo, une note est ajoutée sur la commande Odoo : numéro, date et montant TTC. Chaque document n'est noté qu'une fois.
Factures Odoo : écritures comptables dans Sage
Pour chaque facture ou avoir validé dans Odoo (clients ou fournisseurs), passe l'écriture dans le journal Sage que vous indiquez : ligne du tiers avec son échéance, lignes de vente ou d'achat et de TVA. Les comptes Odoo sont complétés par des zéros jusqu'à la longueur de vos comptes Sage (411000 devient 41100000) et doivent exister dans Sage. Une facture déjà passée (même numéro de facture dans le journal) est ignorée. Les paiements ne sont pas repris.
Tarifs : Sage vers Odoo
Recopie vos conditions de vente Sage dans des listes de prix Odoo, avec la même priorité que Sage. Il faut la passerelle 1.3.12 ou plus récente, et les articles et clients déjà présents dans Odoo (modèles Articles et Clients : Sage vers Odoo).
- Une liste par catégorie tarifaire (« Sage Catégorie Grossistes », « Sage Catégorie Détaillants »… ; en anglais « Sage Category … ») : pour chaque article dont le prix diffère de son prix de vente, le prix net hors taxes calculé comme Sage (prix ou coefficient sur le prix d'achat, remise de la catégorie), par palier de quantité. Un prix TTC (catégorie comptoir) est ramené au hors taxes avec les taxes de l'article.
- Une liste par client qui a des conditions propres (« Sage Client CARAT Carat S.a.r.l » : son numéro de compte et son intitulé ; en anglais « Sage Customer … »), fondée sur celle de sa catégorie : ses tarifs d'exception sur les articles, sa remise par famille sur la catégorie d'articles de la famille, sa remise de fiche client sur tout le reste. Odoo applique d'abord l'article, puis la famille, puis le reste : l'ordre de Sage.
- Les familles Sage deviennent des catégories d'articles sous « Familles Sage » (« Sage families » en anglais), et chaque article est rangé dans celle de sa famille. « Familles Sage » apparaît aussi seule dans la liste des catégories : c'est la catégorie qui les regroupe, à part des vôtres, et qui limite le flux à ses propres catégories.
- Chaque client reçoit sa liste (celle de sa catégorie s'il n'a pas de condition propre).
À la création, vous choisissez ce qui est repris : tarifs d'exception, remises par famille, paliers de quantité, remise de la fiche client, et le début du nom des listes, « Sage » par défaut (le flux ne touche qu'aux listes qui commencent ainsi). Un flux créé avant le 6 novembre 2026 nommait ses listes sans espace ni type (« SageGrossistes ») : recréez-le depuis le modèle, son premier passage archive ces anciennes listes et donne les nouvelles aux clients.
Listes de prix modifiables dans Sage seulement. Cochez cette option, puis installez les réglages dans Odoo depuis l'onglet Odoo du flux. Seul l'utilisateur Odoo du flux peut alors créer, modifier, archiver, dupliquer ou supprimer une liste de prix et ses règles : tout autre utilisateur, administrateurs compris, voit un message qui l'invite à changer les tarifs dans Sage. La liste de prix de la fiche client et celle du devis passent en lecture seule. Le Price Type reste modifiable : il donne au client la liste de sa catégorie. Les listes vides qu'Odoo crée lui-même (« Default », à l'ajout d'une société ou d'une devise) restent libres. Dans un Odoo à plusieurs sociétés, le verrou ne vaut que pour la société du flux et pour les listes sans société, et la lecture seule seulement quand cette société est ouverte. Retirer les réglages, ou supprimer le flux, rend les listes modifiables. Pour un dossier en mode Uniquement local, il faut la passerelle 1.3.29 ou plus récente.
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.
Les prix des règles sont nets : une remise de Sage est comprise dans le prix, elle n'apparaît pas en remise de ligne. Un palier au montant (par exemple au-delà de 2 000 €) est converti en quantité au prix de l'article. Les prix propres à un énuméré de gamme ne sont pas repris.
Taxes et comptabilité des articles : Sage vers Odoo
Crée vos taxes Sage dans Odoo, puis donne à chaque article les taxes et les comptes de sa fiche Sage (Paramètres > Comptabilité, ou ceux de sa famille quand l'article n'a pas les siens). Il faut la passerelle 1.3.12 ou plus récente et l'application Facturation ou Comptabilité dans Odoo.
- Taxes : chaque code Sage devient une taxe Odoo à son nom, suivi du code (« Tva collectée à 20 % (C20) »), en plus des taxes d'Odoo, avec son compte. Les taxes parafiscales (écotaxe) passent avant la TVA et entrent dans sa base, comme dans Sage. Les taxes au poids et celles calculées sur le TTC ne sont pas reprises.
- Groupes de taxes : chaque taxe est rangée dans un groupe à son intitulé Sage, celui que les devis et factures imprimés affichent dans leurs totaux. Une taxe à 5 % et une à 15 % apparaissent ainsi chacune avec son montant. Un flux créé avant cette version se recrée depuis la galerie ; son premier passage range aussi les taxes déjà créées.
- Comptes : chaque compte est cherché dans Odoo par son numéro Sage, puis sur la longueur des comptes d'Odoo (4457120 cherché en 445712 sur un plan à 6 chiffres) ; s'il manque, il est créé avec le numéro et l'intitulé de Sage (réglable).
- Positions fiscales : chaque autre catégorie comptable (export, DOM-TOM, import) devient une position fiscale qui remplace les taxes et les comptes, comme vos articles le font dans Sage, et les clients et fournisseurs de cette catégorie la reçoivent. Si vos articles remplacent une même taxe de plusieurs façons, le cas le plus fréquent est repris et l'historique de l'exécution le signale.
- Articles : taxes de vente et d'achat, comptes de produits et de charges.
À la création, vous choisissez les catégories comptables de référence (en général « Ventes France » et « Achats France »), le nombre de chiffres des comptes Odoo, et si le flux crée les comptes manquants, reprend les comptes des articles et les positions fiscales.