Extraire des données ERP Odoo avec le connecteur Data Platform
Le connecteur Odoo extrait les données de n'importe quelle instance Odoo ERP : contacts, leads CRM, commandes de vente, factures, produits, inventaire, RH, projets, et plus encore
Objectif
Le connecteur Odoo extrait les données de n'importe quelle instance Odoo ERP : contacts, leads CRM, commandes de vente, factures, produits, inventaire, RH, projets, et plus encore.
26 modèles prédéfinis couvrant 9 domaines + un endpoint custom model pour n'importe quel modèle Odoo + un endpoint model fields pour l'introspection du schéma.
Le connecteur retourne du JSON brut depuis l'API JSON-RPC d'Odoo. La platform aplatit automatiquement les objets imbriqués en colonnes et stocke le résultat dans le lakehouse. Aucune définition manuelle du schéma n'est nécessaire.
Compatible avec Odoo 14–19.
1. Obtenir une clé API
- Connectez-vous à votre instance Odoo
- Cliquez sur votre avatar (en haut à droite) > My Profile
- Allez dans l'onglet Account Security
- Cliquez sur New API Key
- Saisissez une description (par exemple,
data-platform-connector) - Cliquez sur Generate Key
- Copiez la clé immédiatement : elle ne s'affiche qu'une seule fois
Odoo Online : l'accès à l'API nécessite le Custom plan. Voir Odoo Pricing.
2. Configurer les identifiants
3. Types d'endpoints disponibles
models : Modèles prédéfinis
26 modèles Odoo couramment utilisés, regroupés par domaine :
Paramètres :
custom_model : N'importe quel modèle Odoo
Pour les modèles absents de la liste prédéfinie (par exemple, helpdesk.ticket, mrp.production, fleet.vehicle).
model_fields : Introspection du schéma
Retourne les définitions de champs pour n'importe quel modèle (nom, type, obligatoire, texte d'aide, relation). Utile pour découvrir les champs disponibles avant d'extraire des données.
4. Ajouter une source Odoo sur la Data Platform
- Dans les Connectors de la Data Platform, trouvez Odoo dans le store des sources et cliquez sur Sélectionner.
- Renseignez les champs de connexion de l'étape 2, URL, Login, API Key, et (pour un déploiement auto-hébergé) Database.
- Cliquez sur Connecter pour vérifier les identifiants. Le connecteur s'authentifie via JSON-RPC et résout votre
uidOdoo. - Cliquez sur Ajouter un endpoint, choisissez
models,custom_model, oumodel_fieldsdans le menu déroulant, et renseignez les paramètres requis par cet endpoint (par exemple Model, Fields Filter optionnel, Domain Filter optionnel, Max Items optionnel). - Répétez l'étape 4 pour chaque endpoint supplémentaire que vous souhaitez ingérer dans cette source. Chacun devient une table distincte dans le lakehouse.
- Nommez la source et cliquez sur Créer.
Le nom technique ne peut pas être modifié après la création de la source. Il est utilisé lors de l'ouverture de la source via le SDK Data Platform.
5. Exemple rapide : extraire les contacts
- Endpoint :
models - Model :
res.partner(Contacts) - Fields Filter :
name, email, phone, is_company, city, country_id - Max Items :
100(ou vide pour tout extraire)
Le connecteur retourne du JSON brut depuis l'API Odoo. La platform aplatit automatiquement les objets imbriqués et stocke le résultat dans le lakehouse.
6. Syntaxe du Domain Filter
Le filtre de domaine utilise la notation polonaise (préfixe) d'Odoo. Saisissez-le sous forme de tableau JSON :
Opérateurs courants : =, !=, >, <, >=, <=, in, not in, like, ilike
Les conditions OR utilisent le préfixe | :
Laissez vide [] pour extraire tous les enregistrements.
7. Bonnes pratiques
Utiliser le filtre de champs
Sans filtre, Odoo retourne tous les champs : certains modèles comptent plus de 200 champs. Utilisez le filtre de champs pour ne garder que ce dont vous avez besoin, en particulier pour les modèles volumineux comme res.partner.
Commencer avec max_items
Définissez max_items à 10 ou 100 pour tester rapidement. Retirez la limite une fois satisfait.
Utiliser model_fields pour découvrir les champs
L'endpoint model_fields retourne le schéma complet de n'importe quel modèle. Utilisez-le pour trouver les noms de champs, les types et les relations avant de configurer l'extraction.
Stages et tables de référence
Extrayez crm.stage, account.journal, product.category en tant que tables de référence. Joignez-les aux données principales sur les champs d'ID stage/journal/category.
8. Limitations connues
- La disponibilité des modèles dépend des applications installées. Des modèles comme
crm.leadnécessitent l'application CRM,sale.ordernécessite Sales, etc. Utilisezcustom_modelpour tester si un modèle existe sur votre instance. - Certains champs nécessitent des groupes d'utilisateurs spécifiques. Par exemple,
project.project.stage_idnécessite le groupe « Use Stages on Project ». Si vous obtenez une erreur de permission, utilisezfields_filterpour exclure les champs restreints. - L'accès à l'API Odoo Online nécessite le Custom plan. Voir Odoo Pricing.
Pour des informations techniques détaillées (mécanismes internes d'authentification, référence complète des endpoints, pagination, limites de débit, format de sortie, référence du Domain Filter, compatibilité des versions, limitations), consultez la référence technique Odoo.
Aller plus loin
Si vous avez besoin d'une formation ou d'une assistance technique pour la mise en oeuvre de nos solutions, contactez votre commercial ou cliquez sur ce lien pour obtenir un devis et demander une analyse personnalisée de votre projet à nos experts de l’équipe Professional Services.
Posez vos questions, faites-nous part de vos commentaires et interagissez directement avec l’équipe qui développe la Data Platform sur le canal Discord dédié.
Si vous avez besoin d'une assistance concernant vos services OVHcloud, créez une demande depuis notre centre d'aide.
Rejoignez notre communauté d'utilisateurs.