Blog

Guides

Ce qu’implique vraiment une intégration ERP Odoo

Guide pratique de l’implémentation ERP Odoo : les phases dans l’ordre, le cadrage, configuration ou développement sur mesure, la migration des données, les intégrations, la production, l’hébergement, la montée de version annuelle et comment choisir son intégrateur.

Odoo est l’une des plateformes ERP les plus complètes du marché, et l’une des plus faciles à sous-estimer. Le logiciel n’est pas la partie difficile. L’intégration l’est : l’ajustement au métier, les données, les décisions que personne ne veut prendre, et les semaines qui suivent la mise en production, pendant lesquelles les équipes utilisent le système ou le contournent en silence. Ce guide décrit ce qu’implique réellement une implémentation ERP Odoo, dans l’ordre où les choses arrivent, pour que vous puissiez anticiper le travail que la démonstration ne montre jamais.

Odoo n’est pas un produit qu’on installe, c’est une plateforme qu’on ajuste

Par défaut, Odoo fournit des applications pour les ventes, les achats, les stocks, la production, la comptabilité, les projets, les RH, l’e-commerce et bien d’autres, qui partagent toutes une même base de données et un même référentiel de tiers et d’articles. C’est pour cette base commune que les entreprises choisissent Odoo, et c’est elle qui rend ces projets plus délicats qu’ils n’en ont l’air : une décision prise côté stock ressort dans les comptes trois mois plus tard, et un raccourci pris sur les données articles se paie dans tous les modules à la fois.

Activer les applications prend un après-midi. Les ajuster à la manière dont votre entreprise établit ses devis, achète, expédie, facture et clôture un mois, c’est le projet — et deux entreprises d’un même secteur exploitent rarement Odoo de la même façon.

Les phases d’une intégration Odoo

Une implémentation réaliste suit presque toujours la même séquence. Sauter une phase ne supprime pas le travail : cela le déplace là où il coûte plus cher.

  • Cadrage et périmètre — cartographier le fonctionnement actuel de l’entreprise et décider ce que l’ERP doit reprendre, améliorer ou abandonner.
  • Configuration — paramétrer les applications standard, le plan comptable, les taxes, les entrepôts, les listes de prix, les utilisateurs et les droits d’accès à partir de cette cartographie.
  • Développement sur mesure — créer des modules uniquement pour les parties du métier qu’Odoo standard ne couvre réellement pas.
  • Migration des données — reprendre les tiers, les articles, les stocks, les documents ouverts et les soldes, nettoyés et rapprochés.
  • Intégrations — relier Odoo aux systèmes que vous conservez : boutique en ligne, paiements, banque, transporteurs, machines, outils internes.
  • Recette sur données réelles — les personnes qui utiliseront le système font passer leurs propres dossiers dans le système, pas une démonstration scénarisée.
  • Formation — les utilisateurs clés formés sur votre configuration et vos données, puis la formation du reste des équipes.
  • Mise en production et les semaines qui suivent — la bascule, puis les corrections qui n’apparaissent qu’au contact du volume réel.
  • Maintenance et montée de version annuelle — parce qu’un ERP ne se termine pas, il s’entretient.

Chaque phase doit se terminer par un livrable que vous pouvez ouvrir, examiner et valider. Une phase dont le seul résultat est un point d’avancement est une phase que vous ne pouvez pas vérifier.

Cadrage : ce qu’il faut décider avant de toucher au système

Le cadrage n’est pas un atelier sur les fonctionnalités. C’est l’exercice qui consiste à écrire comment l’entreprise fonctionne réellement aujourd’hui — pas comme l’organigramme le décrit, ni comme l’ancien système l’imposait. Ceux qui le savent sont ceux qui font le travail : c’est donc à eux qu’on demande. Les décisions à prendre avant que quiconque configure quoi que ce soit :

  • Quels processus entrent dans Odoo en première phase, et lesquels restent où ils sont pour l’instant.
  • Comment un devis devient une commande, une livraison puis une facture — qui valide quoi, et à partir de quels seuils.
  • Votre plan comptable, vos règles de taxes et votre localisation fiscale, et qui valide la clôture mensuelle.
  • Comment le stock est compté et valorisé : coût standard ou coût moyen, mono ou multi-entrepôts, avec ou sans lots et numéros de série.
  • Les rapports sur lesquels l’entreprise pilote réellement, par opposition à ceux qui sont seulement imprimés.
  • Quelles données doivent être reprises, depuis quels systèmes, et ce qui peut être laissé derrière.
  • Tous les systèmes avec lesquels Odoo échangera des données, et de quel côté se trouve la référence pour chaque donnée.
  • Une personne nommément désignée chez vous, capable de trancher sans réunir un comité.

Ce qui sort du cadrage, c’est une liste de modules, une liste d’écarts et un plan de phases. La liste d’écarts est la pièce maîtresse : elle sépare ce qu’Odoo standard fait déjà de ce qu’il ne fait pas, et répartit les écarts en trois catégories — réglé par la configuration, réglé par du code, ou réglé en changeant le processus. C’est ce document qui détermine le budget : il doit donc exister avant que quoi que ce soit ne soit construit. Un prestataire qui refuse de produire l’équivalent avant de chiffrer un développement vous chiffre une hypothèse.

Configurer d’abord, développer ensuite

Chaque ligne de code spécifique dans Odoo est une ligne que quelqu’un devra porter à la montée de version suivante. C’est tout l’argument en faveur de la configuration d’abord. Les applications standard, correctement paramétrées, couvrent déjà l’essentiel de ce qu’une entreprise demande, et ce qu’elles couvrent ne coûte rien à maintenir.

L’ordre est donc fixe. La configuration d’abord. Ensuite Odoo Studio pour les champs, les vues et les petites automatisations. Ensuite un vrai module Python quand le besoin vous appartient réellement : une règle de tarification que personne d’autre n’a, un document exigé par une réglementation, une machine ou une place de marché dont les connecteurs standard n’ont jamais entendu parler.

Configuration ou code : comment trancher

La plupart des débats sur un projet ERP sont cette question déguisée. Un test rapide en règle la majorité :

  • Le besoin peut-il s’exprimer par un paramètre, une règle de liste de prix, une route de stock, une règle de validation, une mise en page de document ou un filtre de rapport ? C’est de la configuration. Traité là, il survit à toutes les versions futures.
  • S’agit-il d’un champ supplémentaire, d’une modification de vue ou d’une action automatisée simple ? Studio le fera — en gardant à l’esprit que les personnalisations Studio vivent dans la base de données et non dans git, ce qui compte dès que vous voulez les relire, les versionner et les passer d’un environnement à l’autre.
  • Faut-il une logique qui s’exécute à l’enregistrement, un calcul dont Odoo n’a aucune notion, un document dans un format imposé par un tiers, ou une liaison en direct avec un autre système ? C’est un module Python, et il doit être cadré et chiffré comme tel.
  • Le besoin n’existe-t-il que parce que l’ancien logiciel fonctionnait ainsi ? Changez le processus. C’est l’option la moins chère de la liste, et la plus souvent écartée.

La question qui règle le reste : le besoin peut-il s’expliquer sans faire référence au système précédent ? Sinon, c’est une habitude, pas un besoin. Parfois la bonne décision est de changer votre façon de travailler plutôt que le fonctionnement du logiciel, et un bon intégrateur vous le dira par écrit — une fois, avec ses raisons — puis construira ce que vous aurez décidé.

Migration des données : ce qui coule les projets sans bruit

C’est sur la migration que les projets ERP échouent sans que personne ne l’annonce. Le système démarre, les chiffres ne tombent pas juste, la comptabilité garde un tableur à côté, et en un trimestre plus personne ne fait confiance à l’ERP. La règle qui l’évite est simple : chaque objet est repris délibérément, rapproché d’un chiffre auquel votre équipe financière fait déjà confiance, et validé avant de compter.

L’essentiel des ennuis est évitable, et cela se joue avant l’import — dans votre ancien système, ou dans un tableur, tant qu’il est encore temps. À nettoyer en priorité :

  • Les doublons de clients et de fournisseurs. Fusionnez-les avant le chargement. Une fois que des documents sont rattachés à des doublons dans Odoo, le nettoyage devient un projet à part entière.
  • Les données articles : des références cohérentes, des unités de mesure qui correspondent à la façon dont vous achetez et vendez réellement, et un arbitrage entre variantes et articles distincts pris avant le premier import plutôt qu’après.
  • Le plan comptable. Décidez si vous reprenez l’ancien ou si vous adoptez la localisation fiscale d’Odoo en y faisant correspondre le vôtre. La correspondance est bien plus simple avant l’arrivée des données.
  • Les encours uniquement. Factures non réglées, commandes en cours, stock actuel. L’historique clos est en général plus utile consultable dans l’ancien système qu’à moitié importé dans le nouveau.
  • Le stock. Comptez-le. Un import ne corrige pas un inventaire que personne n’a compté physiquement, et tous les chiffres de production en aval héritent de l’erreur.
  • Les petites négligences : codes de taxe manquants, références mortes, contacts sans e-mail, et adresses stockées dans un seul champ libre qui doit maintenant en devenir cinq.

Puis chargez dans l’ordre : les données de base d’abord (tiers, articles, unités de mesure, nomenclatures, listes de prix), les soldes ensuite (factures ouvertes, stock initial par emplacement et par lot, à-nouveaux comptables). Chaque chargement passe par une base de préproduction et s’exécute deux fois : la seconde exécution est ce qui prouve que la première était reproductible, et non un bricolage fait à la main à minuit.

Chargé ne veut pas dire migré. Avant validation, la valorisation des stocks, les créances clients, les dettes fournisseurs et la balance générale sont comparées au système source, et l’écart est expliqué jusqu’à être nul ou compris. C’est ce rapprochement qui rend les chiffres dignes de confiance le lundi qui suit la mise en production.

Bascule globale ou module par module

Il y a deux façons honnêtes de démarrer, et le choix relève plus du métier que de la technique.

Une bascule globale met tout en service à la même date. Elle se justifie quand les processus sont trop imbriqués pour être séparés — quand production, stock et comptabilité ne peuvent pas raisonnablement être suivis dans deux systèmes à la fois — et quand l’entreprise dispose d’une période réellement calme pour la mener. Le prix à payer : tout doit fonctionner le jour J, et chaque équipe apprend tout en même temps.

Un démarrage par phases met en service des groupes de modules. Les ventes, les achats et les stocks peuvent tourner en premier pendant que la comptabilité clôture l’exercice en cours dans l’ancien système ; la comptabilité bascule à une clôture d’exercice ou de période ; la production suit une fois le stock fiable. Le prix à payer : des passerelles temporaires entre l’ancien et le nouveau, et une période pendant laquelle la comptabilité rapproche deux systèmes. Ce que vous achetez, c’est une semaine normale pour chaque équipe qui apprend une chose, au lieu d’une semaine anormale où tout le monde apprend tout.

Procédez par phases quand vous le pouvez ; basculez d’un coup quand le calendrier comptable ou l’imbrication des processus vous y oblige. Dans les deux cas, écrivez la procédure de bascule, définissez le point de retour arrière et nommez la personne autorisée à le déclencher — avant le jour J, pas pendant.

Les intégrations avec les systèmes que vous gardez

Une implémentation Odoo se déroule rarement en vase clos. Odoo expose ses modèles en XML-RPC et JSON-RPC, et un module sur mesure peut ajouter des points d’entrée REST, des webhooks et des tâches planifiées : la question n’est donc presque jamais de savoir si deux systèmes peuvent se parler. Elle est de savoir qui détient la référence sur quelle donnée, et ce qui se passe quand l’un des deux est indisponible. Les liaisons les plus fréquentes :

  • E-commerce : le site d’Odoo lui-même, ou Shopify ou WooCommerce en vitrine, Odoo gardant le stock, la tarification et la facturation.
  • Paiements et banque : les passerelles côté vente, l’import et le rapprochement des relevés bancaires côté comptabilité.
  • Transport : étiquettes transporteurs, tarifs et numéros de suivi réécrits sur le bon de livraison.
  • Outils métier : CRM, messagerie, tableurs, BI et API internes — orchestrés dans un outil de workflow comme n8n quand le flux relève du processus métier plutôt que de la fonctionnalité produit.
  • Industriel : balances, imprimantes d’étiquettes, terminaux code-barres, automates et données machines, où le réseau de l’atelier contraint la conception autant que le logiciel.
  • L’application historique qui ne disparaîtra pas, et qui doit désormais rester synchronisée avec Odoo.

Ce qui distingue une intégration qui tient dans la durée d’une intégration qu’il faut surveiller en permanence :

  • Un seul système de référence par donnée, écrit noir sur blanc, pour que rien ne soit modifié des deux côtés.
  • Des écritures idempotentes et des identifiants externes stockés, pour qu’une nouvelle tentative ne crée jamais une deuxième commande.
  • Des traitements en file d’attente, avec relances et file d’attente des échecs, plutôt que des appels synchrones qui figent l’écran d’un utilisateur quand l’autre bout est lent.
  • Un journal lisible par un non-développeur, et une alerte quand un flux s’arrête — au lieu d’un silence que personne ne remarque pendant une semaine.
  • Un environnement de préproduction raccordé au bac à sable du tiers, pour que l’intégration soit éprouvée avant de toucher à de l’argent réel.

Les intégrations sont le poste le plus souvent sous-estimé d’un budget ERP, et la raison est toujours la même : l’effort est dans les particularités de l’autre système, ses quotas d’appels et sa gestion des erreurs, pas dans Odoo.

Production : ce qu’implique vraiment un déploiement MRP sous Odoo

L’application de production d’Odoo couvre les nomenclatures, les postes de charge et les opérations, les ordres de travail et la sous-traitance, le tout posé sur le même moteur de stock que les réceptions, les livraisons et la valorisation. La qualité et la maintenance sont des applications distinctes, et la qualité relève de l’édition Enterprise. Pour la plupart des PME industrielles, le standard suffit. Le temps passe à décrire l’atelier avec justesse, pas à écrire du code.

  • Des nomenclatures conformes à la réalité, variantes comprises, nomenclatures kit ou fantômes, rebuts et sous-produits. Une nomenclature presque juste produit des chiffres de stock durablement faux.
  • Des gammes et des postes de charge dont les capacités et les coûts veulent dire quelque chose, parce qu’ils alimentent à la fois l’ordonnancement et la marge.
  • Le réapprovisionnement : règles de réapprovisionnement, délais, fabrication à la commande ou sur stock, et routes en plusieurs étapes pour la réception, le contrôle qualité et le rangement.
  • La traçabilité : lots et numéros de série choisis délibérément, parce que ce choix décide si un rappel produit prend un après-midi ou un mois.
  • La réalité de l’atelier : lecture de codes-barres, ordres de travail sur tablette, et étapes que les opérateurs suivront vraiment. Un opérateur obligé de marcher jusqu’à un bureau pour confirmer une étape ne la confirmera pas, et vos données d’en-cours meurent là.
  • Le coût de revient : coût standard ou coût moyen, et des comptes analytiques qui montrent la marge par ordre de fabrication plutôt que par année.

Le sur-mesure en production se justifie généralement pour l’intégration des machines et des balances, une règle d’ordonnancement propre à votre site, une étiquette ou un format EDI imposé par un client, et les documents qualité qu’un organisme réglementaire veut sous une forme précise. Ce sont de vrais écarts. Un écran d’ordre de travail qui ressemble simplement à l’ancien n’en est pas un.

Formation et transfert

Les gens contournent un ERP qu’ils ne comprennent pas, et chaque contournement devient une donnée que le système n’a pas. Formez donc les utilisateurs clés sur votre configuration et vos données — pas sur une base de démonstration qui ne ressemble en rien à leur quotidien — et laissez-les former leurs propres équipes, parce que ce sont eux qui répondront aux questions de la troisième semaine. Des procédures écrites par rôle, dans la langue dans laquelle l’équipe travaille réellement, valent mieux qu’un webinaire enregistré que personne ne rouvre.

Le transfert technique est l’autre moitié : les dépôts de code, la documentation des modules, les accès à la base et aux sauvegardes, les identifiants d’intégration, et une liste ouverte de ce qui reste à décider. La mesure d’un bon transfert, c’est de savoir si vous pourriez exploiter le système, et faire appel à quelqu’un d’autre pour le faire évoluer, sans l’intégrateur d’origine. Si la réponse est non et que votre prestataire s’en accommode, c’est une position commerciale, pas une contrainte technique.

La version annuelle, et ce que coûte le sur-mesure au moment de la montée de version

Odoo publie une version majeure chaque année et ne maintient qu’un nombre limité de versions. Un déploiement Odoo s’entretient donc, il ne se termine pas. Planifiez la première montée de version avant la mise en production, pas quand le support s’arrête.

  • La configuration standard et les données sont prises en charge par la procédure de montée de version d’Odoo et passent en général sans drame.
  • Les modules sur mesure sont le vrai travail : API dépréciées, champs renommés, héritages de vues modifiés et modèles déplacés doivent être relus et adaptés, version après version.
  • Les modules tiers avancent au rythme de leur auteur, ce qui est une raison de traiter chaque application installée comme une dépendance avant de l’installer.
  • Les intégrations sont retestées sur la nouvelle version, parce qu’un champ renommé casse un connecteur en silence.
  • La montée de version entière est répétée sur une copie de la production et validée par les mêmes utilisateurs clés qui ont validé le démarrage.

C’est le coût honnête de chaque personnalisation, et la raison pour laquelle la liste des écarts compte plus que la liste des fonctionnalités. Un déploiement resté proche du standard traite une montée de version comme une relecture. Un déploiement qui porte des années de code sur mesure jamais relu la transforme en réimplémentation — c’est ainsi que des entreprises se retrouvent bloquées plusieurs versions en arrière, incapables de recevoir les correctifs et face à un chiffrage considérable pour se remettre à jour.

Odoo Online, odoo.sh ou auto-hébergement

L’endroit où Odoo tourne détermine ce que vous pouvez construire, qui porte l’exploitation, et la façon dont se passera une montée de version. Tranchez tôt et délibérément, parce que déménager ensuite est un projet en soi.

Odoo Online

Odoo exploite la plateforme et vous la configurez. Les personnalisations Studio y sont possibles ; les modules Python sur mesure ne le sont pas, et il n’y a ni accès shell ni accès à la base. C’est la bonne réponse pour une entreprise qui restera dans le standard, et la mauvaise dès l’instant où la liste des écarts contient du code.

odoo.sh

La plateforme d’Odoo pour faire tourner Odoo avec votre propre code : adossée à git, avec des branches de développement et de préproduction, un build à chaque push, des sauvegardes et un chemin de montée de version pris en charge. C’est là que se situent la plupart des implémentations comportant du développement, parce que les développeurs disposent d’un vrai flux de travail et que vous n’avez pas de serveurs à exploiter.

Auto-hébergement

Votre propre infrastructure, ou l’hébergeur de votre choix — ce à quoi se ramènent en général les exigences de résidence des données. C’est la bonne réponse quand la résidence, une intégration sur site ou une équipe plateforme existante l’imposent. En échange, vous prenez en charge le réglage de PostgreSQL, les sauvegardes et les tests de restauration, la supervision, la gestion du filestore et la mécanique de montée de version. C’est un vrai métier d’exploitation : prévoyez les compétences pour l’assurer, ou passez par odoo.sh.

L’édition est une question distincte de l’hébergement. Community couvre beaucoup pour un usage léger en auto-hébergement ; Enterprise ajoute des modules, les applications mobiles et Studio, que beaucoup d’entreprises finissent par vouloir. Dans tous les cas, la licence est un contrat entre vous et Odoo. Un intégrateur qui ne revend pas de licences n’a aucun intérêt commercial dans l’édition que vous retiendrez — c’est bon à savoir, parce que celui qui en revend en a un.

Distinguer un bon intégrateur d’un mauvais

La plateforme est la même pour tout le monde. Ce qui sépare un projet Odoo qui aboutit d’un projet qui s’enlise tient presque entièrement aux personnes qui le mènent. Les signes que vous avez en face de vous quelqu’un qui a déjà fait cela correctement :

  • Il vous interroge sur votre clôture mensuelle avant de vous montrer le moindre écran.
  • Il produit une liste d’écarts écrite et un plan de phases avant de chiffrer un développement.
  • Il vous dit lesquels de vos besoins vous devriez abandonner.
  • Il dit « ça dépend », puis il dit de quoi ça dépend.
  • Il vous montre un logiciel qui tourne sur vos données, pas des diapositives.
  • Il est explicite sur la propriété du code et sur l’endroit où il vit : votre dépôt ou le sien.
  • Il planifie la première montée de version avant la mise en production.
  • Il place la relation de licence là où elle doit être : entre vous et Odoo.

Et les signaux d’alerte :

  • Un prix ferme pour l’implémentation complète avant que quiconque ait regardé vos processus et vos données.
  • Tout est « sans problème ». Un ingénieur honnête dit « ça dépend » ; un commercial dit « sans problème ».
  • La personnalisation proposée comme réponse à chaque besoin. Un développement se facture, un paramètre non.
  • Du travail fait uniquement dans Studio et présenté comme du développement sur mesure, sans rien en gestion de version ni moyen de le passer d’un environnement à l’autre.
  • Des modules qui modifient le cœur d’Odoo, ou du code qui n’existe que sur le serveur de production.
  • Une migration des données évoquée pour la première fois la semaine du démarrage.
  • Aucune réponse sur ce qui se passera à la prochaine version majeure.
  • Le silence sur le sixième mois : qui corrige, qui surveille les sauvegardes, qui répond au téléphone.

Le test le moins cher : demandez ce qu’il adviendra de vos modules sur mesure à la sortie de la prochaine version d’Odoo. Une réponse honnête décrit un travail de relecture et d’adaptation, et ce qui en détermine l’ampleur. Une réponse évasive signifie que quelqu’un le paiera plus tard, et que ce ne sera pas lui.

Ce qui fait vraiment le coût

Personne ne peut vous donner un chiffre honnête avant le cadrage, et les variables n’ont rien de mystérieux :

  • Le nombre de processus et de modules dans le périmètre, et le nombre de services qu’ils touchent.
  • La longueur de la liste d’écarts — autrement dit, la part du travail qui relève du code plutôt que de la configuration.
  • L’état de vos données, généralement pire que ce que tout le monde imagine, et la chose la plus simple à améliorer avant de commencer.
  • Le nombre d’intégrations, et à quel point les systèmes en face sont récalcitrants.
  • Le nombre de personnes à former, sur combien de sites et dans combien de langues.
  • L’hébergement et l’édition, qui relèvent d’un contrat distinct avec Odoo et ne font pas partie de l’implémentation.
  • La maintenance et la montée de version annuelle — une ligne qui ne disparaît jamais, et qui doit figurer au plan dès le premier jour.

Quiconque chiffre une implémentation complète sans avoir vu vos processus et vos données devine, ou compte récupérer la différence en avenants. La chose la plus utile à acheter en premier est une phase de cadrage avec un livrable écrit — liste de modules, liste d’écarts, plan de phases — qui vous appartient et que vous pourriez remettre à un autre prestataire. Un prestataire qui refuse de vendre cela seul vous a appris quelque chose lui aussi.

Rien de tout cela n’est spectaculaire, et c’est pourtant toute la différence entre un projet ERP ennuyeux et un projet dont on finit par raconter l’histoire.

Singleton est un studio logiciel à Tunis. Nous intégrons Odoo, développons des modules Odoo sur mesure et connectons Odoo aux systèmes qui l’entourent, en français, en anglais et en arabe, et dans la même journée de travail que les entreprises de France et du reste de l’Europe. Nous ne sommes pas partenaire Odoo et nous ne revendons pas de licences Odoo — vous achetez la vôtre directement auprès d’Odoo, nous n’avons donc aucun intérêt commercial dans l’édition ou l’hébergement que vous choisirez. Si vous préparez un projet ERP et souhaitez un périmètre écrit avant de vous engager sur un développement, contactez-nous.