Odoo Manufacturing Technical Model Names Reference
Every Odoo screen is backed by a model with a technical name, and every integration, report or import eventually needs those names. This reference lists the manufacturing, inventory, purchase and sales models you meet most often, with the fields people query.
| Technical model | What it holds | Odoo app | Commonly used fields |
|---|---|---|---|
mrp.production | Manufacturing order | Manufacturing | product_id, product_qty, bom_id, state, date_start |
mrp.bom | Bill of materials header | Manufacturing | product_tmpl_id, product_qty, type, bom_line_ids |
mrp.bom.line | BOM component line | Manufacturing | bom_id, product_id, product_qty, product_uom_id |
mrp.bom.byproduct | By-product line on a BOM | Manufacturing | bom_id, product_id, product_qty |
mrp.routing.workcenter | BOM operation (routing step), Odoo 13 and later | Manufacturing | bom_id, workcenter_id, name, time_cycle_manual |
mrp.workcenter | Work center | Manufacturing | name, capacity, time_efficiency, costs_hour |
mrp.workorder | Work order generated from a BOM operation | Manufacturing | production_id, workcenter_id, state, duration_expected |
mrp.workcenter.productivity | Time tracking entries on a work center | Manufacturing | workcenter_id, workorder_id, date_start, date_end, loss_id |
mrp.unbuild | Unbuild order | Manufacturing | mo_id, product_id, product_qty, state |
product.template | Product template (the item as users see it) | Inventory | name, type, uom_id, tracking, standard_price |
product.product | Product variant (the stockable record) | Inventory | default_code, product_tmpl_id, barcode |
uom.uom | Unit of measure | Inventory | name, category_id, factor, uom_type |
stock.warehouse | Warehouse | Inventory | name, code, lot_stock_id |
stock.location | Stock location | Inventory | complete_name, usage, location_id |
stock.picking.type | Operation type (receipt, delivery, manufacturing) | Inventory | name, code, warehouse_id |
stock.picking | Transfer (receipt, delivery, internal) | Inventory | picking_type_id, partner_id, state, scheduled_date |
stock.move | Planned or done stock movement | Inventory | product_id, product_uom_qty, location_id, location_dest_id, state |
stock.move.line | Detailed operation line with lot and location | Inventory | move_id, lot_id, quantity (qty_done before Odoo 17) |
stock.quant | On-hand quantity per product, location and lot | Inventory | product_id, location_id, lot_id, quantity, reserved_quantity |
stock.lot | Lot or serial number (stock.production.lot before Odoo 17) | Inventory | name, product_id |
stock.scrap | Scrap order | Inventory | product_id, scrap_qty, location_id, scrap_location_id |
stock.warehouse.orderpoint | Reordering rule (min/max) | Inventory | product_id, location_id, product_min_qty, product_max_qty |
stock.route | Route such as Buy or Manufacture | Inventory | name, rule_ids |
stock.rule | Procurement rule inside a route | Inventory | route_id, action, picking_type_id |
stock.valuation.layer | Inventory valuation layer | Inventory (accounting) | product_id, quantity, value, stock_move_id |
purchase.order | Purchase order | Purchase | partner_id, state, date_planned, order_line |
sale.order | Sales order | Sales | partner_id, state, commitment_date, order_line |
res.partner | Customer, vendor or contact | Contacts | name, supplier_rank, customer_rank |
Field names shift between Odoo versions. Confirm in Settings > Technical > Models with developer mode on, or with fields_get, before relying on a field in code.
Want Odoo data answered in plain English?
Optional: a short call on read-only natural-language access to your ERP data.
Optional. The tool and every export work without this. No spam.
How to use this reference
Search by model name, plain-language meaning or field. Use the technical name in XML-RPC and JSON-RPC calls, in import templates (the Import button accepts model field names), in automated actions, and when you write custom reports in the database. Switch on developer mode in Odoo and open Settings, Technical, Models to confirm the exact fields in your version before you code against them.
- Search the list for mrp to see all manufacturing models
- Use product.template for item master data and product.product for variants
- Check the Odoo version column notes for renamed models
- Export the table to Excel to share with a consultant
How the models connect
A manufacturing order (mrp.production) points to a BOM (mrp.bom), whose lines (mrp.bom.line) become raw material stock.move records. Operations on the BOM (mrp.routing.workcenter) become work orders (mrp.workorder) on a work center (mrp.workcenter). Physical stock lives in stock.quant, one row per product, location and lot. Moves change quants when they reach the done state. Understanding that chain tells you where to look when a number looks wrong.
Version differences that bite
Odoo renames things between releases. Lots moved from stock.production.lot to stock.lot in Odoo 17, and the done quantity field on move lines changed from qty_done to quantity. Routings were a separate model in older releases and became BOM operations in Odoo 13. Always test a query on a copy of your database for your exact version, and keep the version in the name of any script you share.
Common mistakes
Querying product.template when you need the variant, so stock numbers come back wrong. Writing to stock.quant directly instead of using inventory adjustments, which skips valuation and moves. Assuming a quant quantity is available; reserved_quantity must be subtracted. Treating draft moves as stock. Each of these produces plausible numbers that do not match what the warehouse sees.
Frequently Asked Questions
How do I find a model's technical name in Odoo?
Turn on developer mode, then open any record and use the bug icon menu to view fields, or go to Settings, Technical, Models and search. The Model column shows the technical name such as mrp.production, and the Fields tab lists every field with its type.
Is there a database table for each model?
Yes. Odoo stores each model in PostgreSQL with dots replaced by underscores, so mrp.production becomes the mrp_production table. Direct SQL is fine for read-only reporting, but use the ORM or the external API for any write so computed fields and stock logic still run.
Which model holds on-hand inventory?
stock.quant holds on-hand quantity per product, location and lot or serial. Available quantity is quantity minus reserved_quantity. Stock moves record the history, but quants are the current state, so inventory reports and reorder logic read from them.
Do these names work in Odoo Online and Odoo.sh?
Yes for the standard apps, since the models are the same. Odoo Online restricts custom code and direct database access, so use the external API there. Enterprise-only apps such as Quality add their own models that are not in this list.
If you want to ask questions of your Odoo or other ERP data in plain English instead of writing RPC calls, Netray can set that up read-only and on-prem.
Related Tools
Odoo XML-RPC BOM Export Python Script Generator
Fill in your Odoo URL, database and filters to get a ready Python script that exports BOMs and component lines to a CSV file.
Other ERPsERPNext DocType Reference for Manufacturing
Lookup table of ERPNext manufacturing, stock, buying and selling DocTypes with what each stores and where it links.
Developer ToolsERPNext REST API BOM and Stock Query Generator
Build ERPNext REST requests with correct filters and fields for BOMs, stock bins and work orders, ready to paste into curl or Postman.
ERP Migration & SelectionSmall Manufacturer MRP Vendor Demo Question Checklist
Questions to ask in every cloud MRP demo so you compare vendors on your real process, not their sample data.
More Other ERPs tools
See all- Infor VISUAL Work Order Status and Structure Reference
- Infor VISUAL Manufacturing Scheduling Checklist
- Infor XA (MAPICS) Period End Close Checklist
- Infor VISUAL Database Table Reference
- Infor XA (MAPICS) Application Module Reference
- IBM i Commands for Infor XA Administrators Reference
- Acumatica Generic Inquiry Design Template
- Acumatica Manufacturing Edition Setup Checklist
- Sage X3 Import Template Worksheet