Aller au contenu

Pourquoi Odoo pour mon ERP

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.

En tant que développeur solo gérant plusieurs projets, j’avais besoin de centraliser :

BesoinOutil précédentProblème
Projets et tâchesGitHub Issues + TrelloDonnées éparpillées
Suivi des commitsGitHub seulPas de lien avec les tâches business
Contacts et leadsTableur + notesPas de CRM structuré
Temps passéRienEstimation des devis au doigt mouillé
CaractéristiqueValeur
LicenceLGPL v3 (gratuit, self-hosted)
LangagePython 3 + PostgreSQL
ArchitectureMVC avec ORM propriétaire
APIXML-RPC (natif) + REST (module)
ExtensibilitéSystème d’addons hérités

CritèreOdoo 18ERPNextDolibarrNotion/Trello
Open-sourceOui (Community)OuiOuiNon
Self-hostedOuiOuiOuiNon
API nativeXML-RPC + RESTRESTRESTREST
Modules intégrés30+ apps13 modules20+ modulesApps tierces
ExtensibilitéPython (addons)Python/JSPHPLimité
InterfaceModerneModerneDatéeModerne
Ressources1.5 GB RAM2+ GB RAM512 MB RAMCloud

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 :

// Créer une tâche depuis un webhook GitHub
{
"model": "project.task",
"method": "create",
"args": [{
"name": "Issue #123: Fix login bug",
"project_id": 1,
"github_issue_id": 123,
"github_issue_url": "https://github.com/..."
}]
}

3. Self-hosted = souveraineté des données

AvantageDétail
PropriétéDonnées sur mon VPS, pas chez un tiers
Pas de limitesLignes, utilisateurs, API calls illimités
RésilienceFonctionne même hors ligne
RGPDConforme par design

4. Extensibilité Python (addons custom)

Le système d’héritage Odoo permet d’étendre n’importe quel modèle :

addons/project_github_sync/models/project_task.py
class ProjectTask(models.Model):
_inherit = 'project.task'
github_issue_id = fields.Integer(string='GitHub Issue ID')
github_issue_url = fields.Char(string='GitHub Issue URL')
github_state = fields.Selection([
('open', 'Open'),
('closed', 'Closed')
], string='GitHub State')

Pour répondre au besoin de centralisation GitHub, j’ai créé un addon custom.

FonctionDescription
Sync bidirectionnelleIssues GitHub ↔ Tâches Odoo
Commits liésChaque commit référençant une issue est enregistré
États synchronisésFermer une issue GitHub ferme la tâche Odoo
Mapping configurableAssocier chaque repo à un projet Odoo
project.project
├── github_repo (char): "owner/repo"
├── github_enabled (boolean)
└── task_ids → project.task
project.task
├── github_issue_id (integer)
├── github_issue_url (char)
├── github_state (selection)
└── commit_ids → project.task.commit
project.task.commit (nouveau modèle)
├── task_id → project.task
├── sha (char)
├── message (text)
├── author (char)
├── url (char)
└── date (datetime)
┌─────────────────────────────────────────────────────────┐
│ GitHub │
│ ├─ Issues (opened, closed, edited, labeled...) │
│ ├─ Pull Requests │
│ └─ Push events (commits) │
└─────────────────────┬───────────────────────────────────┘
│ Webhooks
┌─────────────────────────────────────────────────────────┐
│ N8N (github-project-sync) │
│ ├─ Parse event type │
│ ├─ Lookup mapping (Data Table) │
│ ├─ Transform data │
│ └─ Call Odoo XML-RPC │
└─────────────────────┬───────────────────────────────────┘
│ XML-RPC
┌─────────────────────────────────────────────────────────┐
│ Odoo 18 │
│ ├─ project.project (repos liés) │
│ ├─ project.task (issues synchro) │
│ └─ project.task.commit (historique) │
└─────────────────────────────────────────────────────────┘

Point fortDétail
Gestion de projetsInterface Kanban/Gantt native
UI moderneResponsive, intuitive
API stableXML-RPC documenté, peu de breaking changes
ÉcosystèmeMilliers d’addons communautaires
LimiteImpactAlternative si critique
Pas de collaboration temps réelPas d’édition simultanéeNotion, Outline
Courbe d’apprentissageFormation nécessaireTrello, Plane
Enterprise payantMarketing automation, signaturesBudget ou contournement N8N
Overhead mémoire~1.5 GB RAM miniDolibarr si ressources limitées

Odoo est rapide à déployer (time-to-market court) mais la personnalisation peut être coûteuse :

Type d’adaptationEffortExemple
ParamétrageFaibleChanger les champs affichés
Module existantMoyenInstaller un addon OCA
Développement spécifiqueÉlevéCréer project_github_sync
Si votre besoin prioritaire est…Choisissez…
Collaboration docs temps réelNotion, Outline
ERP léger + facturation simpleDolibarr
Manufacturing / productionERPNext
Juste gestion de tâchesPlane, Focalboard
ERP complet self-hosted + APIOdoo Community
ÉvolutionModule/ActionBénéfice attendu
CRM completModule natifPipeline de ventes structuré
Devis automatiquesTimesheets + TemplatesEstimation basée sur l’historique
Marketing automationEnterprise ou N8NSéquences de nurturing