mrp.bom : champs, relations et API
Le modèle mrp.bom (« Nomenclature ») est un modèle persistant déclaré par le module Fabrication, puis enrichi par 5 autres modules. Il expose 50 champs, dont 32 déclarés directement sur le modèle ; 15 champs d'autres modèles pointent vers lui. Retrouvez ci-dessous chaque champ avec son nom technique, son type, son libellé français et ses relations, puis un exemple d'appel à l'API JSON-2 d'Odoo 20.
Fiche d'identité
- Nom technique
mrp.bom- Libellé
- Nomenclature
- Type
- Persistant (models.Model)
- Table SQL
mrp_bom- Module d'origine
- Fabrication (
mrp) - Étendu par
- mrp_account, mrp_subcontracting, purchase_mrp, project_mrp, sale_mrp
- Tri par défaut (_order)
sequence, id- Champ d'affichage (_rec_name)
product_tmpl_id- Hérite de (mixins)
- mail.threadproduct.catalog.mixin
Champs du modèle
32 champs propres, 12 hérités des mixins et 6 champs automatiques de l'ORM. Cliquez sur un nom pour obtenir le lien direct vers le champ.
50 champs affichés sur 50
| Nom technique | Libellé | Type | Détails |
|---|---|---|---|
| active | Actif | boolean | |
| allow_operation_dependencies | Custom Operation Dependencies Select to customise operation dependencies. When checked, operations will be in parallel by default. | boolean | |
| batch_size | Valeur taille de lot Tous les ordres de fabrication générés automatiquement pour ce produit seront de cette taille. | float | |
| bom_line_ids | Lignes de nomenclature | one2many | inverse : |
| byproduct_ids | Sous-produits | one2many | inverse : |
| code | Référence | char | |
| company_id | Société | many2one | |
| component_count | Component Count | integer | calculé |
| continuous | Continuous Production If active, registering production on a work order will automatically unblock the next work order if it is blocked. | boolean | |
| currency_id | Devise | many2one | related : ajouté par Accounting - MRP ( |
| days_to_prepare_mo | Jours pour préparer Créer et confirmer les ordres de fabrication ce nombre de jours à l’avance, afin de disposer de suffisamment de temps pour réapprovisionner les composants ou fabriquer les semi-produits. | integer | |
| enable_batch_size | Taille de lot | boolean | |
| extra_cost | Extra Cost Set an additional cost per manufactured unit (e.g. labour, energy, packaging) | monetary | ajouté par Accounting - MRP ( |
| json_popover | Données JSON pour le widget popover | char | calculé |
| note | Notes supplémentaires Notes supplémentaires pour l'ordre de fabrication. Les notes ajoutées ici seront également affichées dans l'Atelier. | html | |
| operation_count | Nombre d’opérations | integer | calculé |
| operation_ids | Opérations | one2many | inverse : |
| picking_type_id | Type d'opération Quand un approvisionnement a une route 'fabriquer' avec un type d'opération défini, le système essayera de créer un ordre de fabrication pour ce produit en utilisant une nomenclature qui a le même type d'opération. Si ce n'est pas le cas, le type d'opération n'est pas pris en compte dans la recherche de la nomenclature. Cela permet de définir des règles de stock qui génèrent des ordres de fabrication avec différentes nomenclatures. | many2one | |
| possible_product_template_attribute_value_ids | Valeur d'attribut possible du modèle produit | many2many | calculé |
| produce_delay | Délai de fabrication Délai moyen en jours pour fabriquer ce produit. Dans le cas d'une nomenclature à plusieurs niveaux, les délais de fabrication des composants seront ajoutés. Dans le cas où le produit est sous-traité, cela peut être utilisé pour déterminer la date à laquelle les composants doivent être envoyés au sous-traitant. | integer | |
| product_id | Variante de produit Si une variante de produit est définie, la nomenclature n'est disponible que pour ce produit. | many2one | |
| product_qty | Quantité Il doit s'agir de la plus petite quantité dans laquelle ce produit peut être produit. Si la nomenclature contient des opérations, assurez-vous que la capacité du poste de travail est exacte. | float | requis |
| product_tmpl_id | Produit | many2one | requis |
| project_id | Projet | many2one | ajouté par MRP Project ( |
| ready_to_produce | Statut de préparation de la fabrication | selection | requis Valeurs : |
| sequence | Séquence | integer | |
| show_copy_operations_button | Afficher le bouton de copie des opérations Champ technique utilisé pour contrôler la visibilité du bouton "Copier les opérations existantes". | boolean | calculé |
| show_set_bom_button | Afficher le bouton Définir la nomenclature | boolean | calculé |
| subassembly_count | Subassembly Count | integer | calculé |
| subcontractor_ids | Sous-traitants | many2many | ajouté par MRP Subcontracting ( |
| type | Type de nomenclature | selection | requis Valeurs : |
| uom_id | Unité L'unité de mesure est l'unité utilisée dans la gestion du stock | many2one→ uom.uom | requis |
| has_message | A un message | boolean | calculé hérité de mail.thread |
| message_attachment_count | Nombre de pièces jointes | integer | calculé hérité de mail.thread |
| message_follower_ids | Abonnés | one2many | inverse : hérité de mail.thread |
| message_has_error | Erreur d'envoi du message Si coché, certains messages ont une erreur de livraison. | boolean | calculé hérité de mail.thread |
| message_has_error_counter | Nombre d'erreurs Nombre de messages avec des erreurs d'envoi | integer | calculé hérité de mail.thread |
| message_has_sms_error | Erreur d'envoi SMS Si coché, certains messages ont une erreur de livraison. | boolean | calculé hérité de mail.thread |
| message_ids | Messages | one2many | inverse : hérité de mail.thread |
| message_is_follower | Est un abonné | boolean | calculé hérité de mail.thread |
| message_needaction | Nécessite une action Si coché, de nouveaux messages demandent votre attention. | boolean | calculé hérité de mail.thread |
| message_needaction_counter | Nombre d'actions Nombre de messages nécessitant une action | integer | calculé hérité de mail.thread |
| message_partner_ids | Abonnés (Partenaires) | many2many | calculé hérité de mail.thread |
| rating_ids | Évaluations | one2many | inverse : hérité de mail.thread |
| create_date | Créé le | datetime | lecture seuleautomatique |
| create_uid | Créé par | many2one | lecture seuleautomatique |
| display_name | Nom affiché | char | lecture seulecalculéautomatique |
| id | ID | integer | lecture seuleautomatique |
| write_date | Dernière mise à jour le | datetime | lecture seuleautomatique |
| write_uid | Dernière mise à jour par | many2one | lecture seuleautomatique |
Relations
Modèles liés depuis ce modèle
- mrp.bom.byproduct : byproduct_ids
- mrp.bom.line : bom_line_ids
- mrp.routing.workcenter : operation_ids
- product.product : product_id
- product.template : product_tmpl_id
- product.template.attribute.value : possible_product_template_attribute_value_ids
- project.project : project_id
- res.company : company_id
- res.currency : currency_id
- res.partner : subcontractor_ids
- stock.picking.type : picking_type_id
- uom.uom : uom_id
Champs d'autres modèles qui pointent ici
- account.analytic.account : bom_ids
- mrp.bom.byproduct : bom_id
- mrp.bom.line : bom_id, child_bom_id
- mrp.production : bom_id
- mrp.routing.workcenter : bom_id
- mrp.unbuild : bom_id, mo_bom_id
- mrp.workorder : production_bom_id
- res.partner : bom_ids
- stock.replenish.mixin : bom_id
- stock.replenishment.info : bom_id, bom_ids
- stock.warehouse.orderpoint : bom_id, effective_bom_id
Lire ce modèle par l'API
Exemple d'appel à l'API JSON-2 d'Odoo 20 : lecture des cinq premiers enregistrements avec des champs réels du modèle. Remplacez l'instance, la base et la clé API par les vôtres.
curl -X POST "https://votre-instance.odoo.com/json/2/mrp.bom/search_read" \
-H "Authorization: bearer $ODOO_API_KEY" \
-H "X-Odoo-Database: votre-base" \
-H "Content-Type: application/json" \
-d '{"domain":[],"fields":["product_tmpl_id","product_qty","ready_to_produce","type","uom_id"],"limit":5}'import requests
BASE_URL = "https://votre-instance.odoo.com/json/2"
headers = {"Authorization": f"bearer {API_KEY}", "X-Odoo-Database": "votre-base"}
res = requests.post(
f"{BASE_URL}/mrp.bom/search_read",
headers=headers,
json={"domain": [], "fields": ["product_tmpl_id","product_qty","ready_to_produce","type","uom_id"], "limit": 5},
)
res.raise_for_status()
print(res.json())- L'accès à l'API externe est réservé à la formule Custom d'Odoo.
- XML-RPC et JSON-RPC seront retirés dans Odoo 22 (automne 2028) : préférez JSON-2.
- Les droits d'accès et règles d'enregistrement de l'utilisateur de la clé s'appliquent.
Citer cet outil
Vous rédigez un tutoriel, une documentation interne ou une réponse sur un forum ? Copiez ce lien pour renvoyer vos lecteurs vers la fiche à jour.
<a href="https://aidoo.ai/fr/outils/explorateur-modeles-odoo/mrp-bom">mrp.bom (Odoo 20.0)</a>Sources
- Code source du modèle sur GitHub
- Documentation Odoo 20 : ORM API
- Documentation Odoo 20 : API externe JSON-2
Données vérifiées le 25 septembre 2026 · Odoo 20.0 Community
Vous avez un projet Odoo ou souhaitez exploiter votre ERP avec l'IA ? Échangeons
Intégration, développement de modules, connexion de Claude ou ChatGPT à vos données : décrivez-nous votre contexte, nous vous répondons sous 24 heures ouvrées.