--- title: Pourquoi Odoo pour mon ERP url: https://blog.guigpap.com/fr/infrastructure/why-odoo/ url_md: https://blog.guigpap.com/fr/infrastructure/why-odoo.md category: case-studies date: '2026-01-20' maturite: production techno: - odoo application: - business --- # Pourquoi Odoo pour mon ERP > Comparaison des ERP open-source et justification du choix d'Odoo 18 pour la gestion de projets ## 1. Quoi ? — Définition et contexte **Odoo** est un ERP/CRM **horizontal** : un logiciel généraliste conçu pour être utilisé par tous les secteurs d'activité. Le même socle technique sert des entreprises très différentes, l'adaptation se faisant via paramétrage, modules additionnels ou développements spécifiques. > **Note - ERP horizontal vs vertical** > > Un **ERP horizontal** propose des fonctionnalités standards transverses (CRM, projets, facturation). Un **ERP vertical** est spécialisé pour un secteur (santé, BTP, retail). Odoo est horizontal avec possibilité de verticalisation via modules. ### Contexte personnel En tant que développeur solo gérant plusieurs projets, j'avais besoin de centraliser : | Besoin | Outil précédent | Problème | |--------|-----------------|----------| | Projets et tâches | GitHub Issues + Trello | Données éparpillées | | Suivi des commits | GitHub seul | Pas de lien avec les tâches business | | Contacts et leads | Tableur + notes | Pas de CRM structuré | | Temps passé | Rien | Estimation des devis au doigt mouillé | ### Caractéristiques d'Odoo Community | Caractéristique | Valeur | |-----------------|--------| | **Licence** | LGPL v3 (gratuit, self-hosted) | | **Langage** | Python 3 + PostgreSQL | | **Architecture** | MVC avec ORM propriétaire | | **API** | XML-RPC (natif) + REST (module) | | **Extensibilité** | Système d'addons hérités | --- ## 2. Pourquoi ? — Enjeux et motivations ### Comparaison des alternatives | Critère | Odoo 18 | ERPNext | Dolibarr | Notion/Trello | |---------|---------|---------|----------|---------------| | **Open-source** | Oui (Community) | Oui | Oui | Non | | **Self-hosted** | Oui | Oui | Oui | Non | | **API native** | XML-RPC + REST | REST | REST | REST | | **Modules intégrés** | 30+ apps | 13 modules | 20+ modules | Apps tierces | | **Extensibilité** | Python (addons) | Python/JS | PHP | Limité | | **Interface** | Moderne | Moderne | Datée | Moderne | | **Ressources** | 1.5 GB RAM | 2+ GB RAM | 512 MB RAM | Cloud | ### Critères de décision pour Odoo **1. ERP complet et intégré** Odoo Community inclut gratuitement les modules essentiels : - **Projets** — Kanban, Gantt, tâches, sous-tâches - **CRM** — Pipeline, leads, opportunités - **Contacts** — Entreprises, individus, tags - **Timesheets** — Suivi du temps par tâche Tous ces modules partagent la même base de données et sont liés naturellement. **2. Intégration N8N native via XML-RPC** L'API XML-RPC d'Odoo est stable et bien documentée. N8N parle directement à Odoo sans Zapier ni intégrations payantes : ```javascript // Créer une tâche depuis un webhook GitHub { "model": "project.task", "method": "create", "args": [{ "name": "Issue #123: Fix login bug", "project_id": 1, "x_github_issue_id": 123, "x_github_url": "https://github.com/owner/repo/issues/123" }] } ``` **3. Self-hosted = souveraineté des données** | Avantage | Détail | |----------|--------| | **Propriété** | Données sur mon VPS, pas chez un tiers | | **Pas de limites** | Lignes, utilisateurs, API calls illimités | | **Résilience** | Fonctionne même hors ligne | | **RGPD** | Conforme par design | **4. Extensibilité Python (addons custom)** Le système d'héritage Odoo permet d'étendre n'importe quel modèle. Tous les champs custom utilisent le préfixe `x_` qui n'entre jamais en collision avec les champs natifs Odoo : ```python # addons/project_github_sync/models/project_task.py class ProjectTask(models.Model): _inherit = 'project.task' x_github_issue_id = fields.Integer(string='GitHub Issue Number') x_github_url = fields.Char(string='GitHub URL') x_github_repo = fields.Char(string='GitHub Repo (owner/repo)') x_github_commit_ids = fields.One2many( 'project.task.github.commit', 'task_id', string='Linked Commits', ) ``` > **Tip - Héritage Odoo** > > Le `_inherit` permet d'étendre les modèles existants sans modifier le code source d'Odoo. Les customisations survivent aux mises à jour. --- ## 3. Comment ? — L'addon project_github_sync Pour répondre au besoin de centralisation GitHub, j'ai créé un addon custom. ### Fonctionnalités | Fonction | Description | |----------|-------------| | **Sync bidirectionnelle** | Issues GitHub ↔ Tâches Odoo | | **Commits liés** | Chaque commit référençant une issue est enregistré | | **États synchronisés** | Fermer une issue GitHub ferme la tâche Odoo | | **Mapping configurable** | Associer chaque repo à un projet Odoo | ### Modèles de données ``` project.project ├── x_github_sync_enabled (boolean) ├── x_github_repo (char): "owner/repo" └── task_ids → project.task project.task ├── x_github_issue_id (integer) ├── x_github_url (char) ├── x_github_repo (char) ├── x_github_commit_ids → project.task.github.commit ├── x_github_commit_count (integer, compute) ├── x_github_milestone_id (integer) └── x_github_parent_issue_id (integer) project.task.github.commit (nouveau modèle) ├── task_id → project.task ├── sha (char) ├── sha_short (char) ├── message (text) ├── author (char) ├── url (char) └── commit_date (datetime) ``` L'addon ajoute également 13 champs `x_claude_*` pour la télémétrie Claude Code, 2 champs `x_ai_*_triaged_at` pour le double-triage AI, et 2 champs `x_estimated_hours` / `x_complexity` pour l'estimation. Voir [Odoo 18 sur Docker](/fr/infrastructure/odoo-18-setup/) pour le détail. ### Architecture d'intégration ```mermaid flowchart TD subgraph GH["GitHub"] direction TB G1["Issues · opened, closed, edited, labeled…"] G2["Pull Requests"] G3["Push events · commits"] end subgraph N8N["N8N · github-project-sync"] direction TB N1["Parse event type"] N2["Lookup mapping · Data Table"] N3["Transform data"] N4["Call Odoo XML-RPC"] end subgraph Odoo["Odoo 18"] direction TB O1["project.project · repos liés"] O2["project.task · issues synchro"] O3["project.task.commit · historique"] end GH -->|Webhooks| N8N N8N -->|XML-RPC| Odoo ``` --- ## 4. Et si ? — Limites et évolutions ### Ce qu'Odoo fait bien | Point fort | Détail | |------------|--------| | **Gestion de projets** | Interface Kanban/Gantt native | | **UI moderne** | Responsive, intuitive | | **API stable** | XML-RPC documenté, peu de breaking changes | | **Écosystème** | Milliers d'addons communautaires | ### Ce qu'Odoo fait moins bien | Limite | Impact | Alternative si critique | |--------|--------|------------------------| | **Pas de collaboration temps réel** | Pas d'édition simultanée | Notion, Outline | | **Courbe d'apprentissage** | Formation nécessaire | Trello, Plane | | **Enterprise payant** | Marketing automation, signatures | Budget ou contournement N8N | | **Overhead mémoire** | ~1.5 GB RAM mini | Dolibarr si ressources limitées | ### Le coût caché de la personnalisation Odoo est **rapide à déployer** (time-to-market court) mais la **personnalisation peut être coûteuse** : | Type d'adaptation | Effort | Exemple | |-------------------|--------|---------| | **Paramétrage** | Faible | Changer les champs affichés | | **Module existant** | Moyen | Installer un addon OCA | | **Développement spécifique** | Élevé | Créer `project_github_sync` | > **Caution - Spécificités métier** > > Un ERP horizontal couvre les besoins génériques. Les spécificités métier nécessitent toujours du développement custom. Prévoir ce budget dès le choix de l'outil. ### Grille de décision : Odoo ou autre ? | Si votre besoin prioritaire est... | Choisissez... | |------------------------------------|---------------| | Collaboration docs temps réel | Notion, Outline | | ERP léger + facturation simple | Dolibarr | | Manufacturing / production | ERPNext | | Juste gestion de tâches | Plane, Focalboard | | ERP complet self-hosted + API | **Odoo Community** | ### Évolutions futures envisagées | Évolution | Module/Action | Bénéfice attendu | |-----------|---------------|------------------| | CRM complet | Module natif | Pipeline de ventes structuré | | Devis automatiques | Timesheets + Templates | Estimation basée sur l'historique | | Marketing automation | Enterprise ou N8N | Séquences de nurturing | --- ## Pages liées ### Infrastructure - [Odoo 18 sur Docker](/fr/infrastructure/odoo-18-setup/) — Guide de déploiement - [Architecture VPS](/fr/infrastructure/architecture-vps/) — Vue d'ensemble ### Workflows - [GitHub-Odoo Sync](/fr/workflows/github-odoo-sync/) — Workflow de synchronisation complet - [N8N en mode Queue](/fr/infrastructure/n8n-queue-mode/) — Automatisation ### Référence - [Glossaire](/fr/reference/glossary/) — ERP, XML-RPC, Addon ## Metadonnees agent - Cet article est issu du blog GuiGPaP Lab. - Contexte global du blog: https://blog.guigpap.com/llms.txt - Contact auteur: https://odoo.guigpap.com/mon-cv - Licence: CC-BY-SA 4.0