Odoo 20.0 Community · Persistent

mrp.production: fields, relations and API

The mrp.production model ("Manufacturing Order") is a persistent model declared by the Manufacturing module, then extended by 10 other modules. It exposes 135 fields, 103 of them declared directly on the model; 24 fields from other models point to it. Below you will find every field with its technical name, type, label and relations, followed by an Odoo 20 JSON-2 API call.

Model identity

Technical name
mrp.production
Label
Manufacturing Order
Type
Persistent (models.Model)
SQL table
mrp_production
Origin module
Manufacturing (mrp)
Extended by
mrp_account, mrp_product_expiry, mrp_repair, mrp_subcontracting, mrp_subcontracting_account, purchase_mrp, mrp_subcontracting_purchase, project_mrp, project_mrp_account, sale_mrp
Default order (_order)
priority desc, date_start asc,id
Inherits from (mixins)
mail.threadmail.activity.mixinproduct.catalog.mixinres.currency.rate.consolidation.mixin

Model fields

103 own fields, 26 inherited from mixins and 6 automatic ORM fields. Click a name to get a direct link to that field.

135 of 135 fields shown

Technical nameLabelTypeDetails
active_workcenter_idsActive Workcentermany2many
computed
all_move_idsAll Moveone2many

inverse: production_id

all_move_raw_idsAll Move Rawone2many

inverse: raw_material_production_id

allow_workorder_dependenciesAllow Work Order Dependenciesboolean
allowed_uom_idsAllowed Uommany2many
computed
backorder_sequenceBackorder Sequence

Backorder sequence, if equals to 0 means there is not related backorder

integer
bom_idBill of Material

Bills of Materials, also called recipes, are used to autocomplete components and work order instructions.

many2one
computed, stored
bom_product_idsBom Product

List of Products used in the BoM, used to filter the list of products in the subcontracting portal view

many2many
computed

added by MRP Subcontracting (mrp_subcontracting)

company_idCompanymany2one
required
components_availabilityComponent Status

Latest component availability status for this MO. If green, then the MO's readiness status is ready, as per BOM configuration.

char
computed
components_availability_stateComponents Availability Stateselection
computed

Values: available (Available), expected (Expected), late (Late), unavailable (Not Available)

date_deadlineDeadline

Informative date allowing to define when the manufacturing order should be processed at the latest to fulfill delivery on time.

datetime
computed, stored
date_finishedEnd

Date you expect to finish production or actual date you finished production.

datetime
computed, stored
date_startStart

Date you plan to start production or date you actually started production.

datetime
required
delay_alert_dateDelay Alert Datedatetime
computed
delivery_countDelivery Ordersinteger
computed
durationReal Duration

Total real duration (in minutes)

float
computed, stored
duration_expectedExpected Duration

Total expected duration (in minutes)

float
computed, stored
extra_costExtra Unit Costfloat

added by Accounting - MRP (mrp_account)

finished_move_line_idsFinished Productone2many
computed
forecasted_issueForecasted Issueboolean
computed
forecasted_location_idForecasted Location

Location used in the computation of the forecast.

many2one
has_analytic_accountHas Analytic Accountboolean
computed

added by MRP Account Project (project_mrp_account)

incoming_pickingIncoming Pickingmany2one

related: move_finished_ids.move_dest_ids.picking_id

added by MRP Subcontracting (mrp_subcontracting)

is_delayedIs Delayedboolean
computed
is_due_todayIs Due Todayboolean
computed
is_lockedIs Lockedboolean
is_outdated_bomOutdated BoM

The BoM has been updated since creation of the MO

boolean
is_plannedIts Operations are Plannedboolean
computed, stored
json_popoverJSON data for the popover widgetchar
computed
location_dest_idFinished Products Location

Location where the system will stock the finished products.

many2one
requiredcomputed, stored
location_src_idComponents Location

Location where the system will look for components.

many2one
requiredcomputed, stored
lot_producing_idsLot/Serial Numbermany2many
move_byproduct_idsMove Byproductone2many
computed

inverse: production_id

move_dest_idsStock Movements of Produced Goodsone2many

inverse: created_production_id

move_finished_idsFinished Productsone2many
computed, stored

inverse: production_id

move_line_raw_idsDetail Componentone2many
computed

added by MRP Subcontracting (mrp_subcontracting)

move_raw_idsComponentsone2many
computed, stored

inverse: raw_material_production_id

mrp_production_all_child_countNumber of all generated MOinteger
computed
mrp_production_all_child_done_countNumber of done all generated MOinteger
computed
mrp_production_backorder_countCount of linked backorderinteger
computed
mrp_production_child_countNumber of generated MOinteger
computed
mrp_production_source_countNumber of source MOinteger
computed
nameReferencechar
read-only
never_product_template_attribute_value_idsNever attribute valuesmany2many
noteAdditional Notes

Additional notes for the manufacturing order. Notes added here will also be displayed in the Shop Floor.

html
computed, stored
orderpoint_idOrderpointmany2one
originSource

Reference of the document that generated this production order request.

char
package_history_idsPackage Historyone2many

inverse: production_id

packages_countPackages Countinteger
computed
picking_idsPicking associated to this manufacturing ordermany2many
computed
picking_type_idOperation Typemany2one
requiredcomputed, stored
previous_date_startPrevious Date Startdatetime
priorityPriority

Components will be reserved first for the MO with the highest priorities.

selection

Values: 0 (Normal), 1 (Urgent)

product_default_codeProduct Default Codechar

related: product_id.default_code

product_description_variantsCustom Descriptionchar
product_idProductmany2one
requiredcomputed, stored
product_nameProduct Namechar
computed
product_qtyQuantity To Producefloat
requiredcomputed, stored
product_tmpl_idProduct Templatemany2one

related: product_id.product_tmpl_id

product_trackingProduct Trackingselection

related: product_id.tracking

product_uom_qtyTotal Quantityfloat
computed, stored
product_variant_attributesProduct Variant Attributesmany2many

related: product_id.product_template_attribute_value_ids

production_capacityProduction Capacity

Quantity that can be produced with the current stock of components

float
computed
production_group_idProduction Groupmany2one
production_location_idProduction Locationmany2one
computed, stored
project_idProjectmany2one
computed, stored

added by MRP Project (project_mrp)

propagate_cancelPropagate cancel and split

If checked, when the previous move of the move (which was generated by a next procurement) is cancelled or split, the move generated by this move will too

boolean
purchase_order_countCount of generated POinteger
computed

added by Purchase and MRP Management (purchase_mrp)

qty_producedQuantity Producedfloat
computed
qty_producingQuantity Producingfloat
reference_idsReferencesmany2many
remaining_timeRemaining Working Time

The remaining time to finish this production in hours.

float
computed
repair_countCount of source repairsinteger
computed

added by Mrp Repairs (mrp_repair)

reservation_stateMO Readiness

Manufacturing readiness for this MO, as per bill of material configuration: * Ready: The material is available to start the production. * Waiting: The material is not available to start the production.

selection
read-onlycomputed, stored

Values: confirmed (Waiting), assigned (Ready), waiting (Waiting Another Operation)

reserve_visibleAllowed to Reserve Production

Technical field to check when we can reserve quantities

boolean
computed
sale_line_idOrigin sale order linemany2one

added by Sales and MRP Management (sale_mrp)

sale_order_countCount of Source SOinteger
computed

added by Sales and MRP Management (sale_mrp)

scrap_countScrap Moveinteger
computed
search_date_categoryDate Categoryselection
read-only

Values: before (Before), yesterday (Yesterday), today (Today), day_1 (Tomorrow), day_2 (The day after tomorrow), after (After)

serial_numbers_countCount of serial numbersinteger
computed
show_allocationShow Allocation

Technical Field used to decide whether the button "Allocation" should be displayed.

boolean
computed
show_final_lotsShow Final Lotsboolean
computed
show_generate_bomShow Generate BOMboolean
computed
show_lockShow Lock/unlock buttonsboolean
computed
show_lot_idsDisplay the serial number shortcut on the movesboolean
computed
show_valuationShow Valuationboolean
computed

added by Accounting - MRP (mrp_account)

stateState

* Draft: The MO is not confirmed yet. * Confirmed: The MO is confirmed, the stock rules and the reordering of the components are trigerred. * In Progress: The production has started (on the MO or on the WO). * To Close: The production is done, the MO has to be closed. * Done: The MO is closed, the stock moves are posted. * Cancelled: The MO has been cancelled, can't be confirmed anymore.

selection
read-onlycomputed, stored

Values: draft (Draft), confirmed (Confirmed), progress (In Progress), to_close (To Close), done (Done), cancel (Cancelled)

subcontract_extra_move_idSubcontracting Cost Entry

Journal entry neutralising the subcontractor bill's stock valuation, so the finished move keeps the full cost while the bill is not counted twice.

many2one

added by Purchase and Subcontracting Management (mrp_subcontracting_purchase)

subcontractor_idSubcontractor

Used to restrict access to the portal user through Record Rules

many2one

added by MRP Subcontracting (mrp_subcontracting)

unbuild_countNumber of Unbuildsinteger
computed
unbuild_idsUnbuildsone2many

inverse: mo_id

unreserve_visibleAllowed to Unreserve Production

Technical field to check when we can unreserve

boolean
computed
uom_idUnitmany2one
requiredcomputed, stored
use_create_components_lotsUse Create Components Lotsboolean

related: picking_type_id.use_create_components_lots

user_idResponsiblemany2one
valid_product_template_attribute_line_idsValid Product Template Attribute Linemany2many

related: product_tmpl_id.valid_product_template_attribute_line_ids

validate_button_styleValidate Button Styleselection
computed

Values: primary (Primary), secondary (Secondary), invisible (Invisible)

warehouse_idWarehousemany2one

related: location_src_id.warehouse_id

wip_move_countWIP Journal Entry Countinteger
computed

added by Accounting - MRP (mrp_account)

wip_move_idsWip Movemany2many

added by Accounting - MRP (mrp_account)

workcenter_idWorkcentermany2one
workorder_idsWork Ordersone2many
computed, stored

inverse: production_id

activity_calendar_event_idNext Activity Calendar Eventmany2one
computed

inherited from mail.activity.mixin

activity_date_deadlineNext Activity Deadlinedate
read-onlycomputed

inherited from mail.activity.mixin

activity_exception_decorationActivity Exception Decoration

Type of the exception activity on record.

selection
computed

Values: warning (Alert), danger (Error)

inherited from mail.activity.mixin

activity_exception_iconIcon

Icon to indicate an exception activity.

char
computed

inherited from mail.activity.mixin

activity_idsActivitiesone2many

inverse: res_id

inherited from mail.activity.mixin

activity_plans_idsActivity Plansmany2many
computed

inherited from mail.activity.mixin

activity_stateActivity State

Status based on activities Overdue: Due date is already passed Today: Activity date is today Planned: Future activities.

selection
computed

Values: overdue (Overdue), today (Today), planned (Planned)

inherited from mail.activity.mixin

activity_summaryNext Activity Summarychar

related: activity_ids.summary

inherited from mail.activity.mixin

activity_type_iconActivity Type Iconchar

related: activity_ids.icon

inherited from mail.activity.mixin

activity_type_idNext Activity Typemany2one

related: activity_ids.activity_type_id

inherited from mail.activity.mixin

activity_user_idResponsible Usermany2one
read-onlycomputed

inherited from mail.activity.mixin

consolidation_currency_idConsolidation Currencymany2one
computed

inherited from res.currency.rate.consolidation.mixin

consolidation_rateRatefloat
computed

inherited from res.currency.rate.consolidation.mixin

has_messageHas Messageboolean
computed

inherited from mail.thread

message_attachment_countAttachment Countinteger
computed

inherited from mail.thread

message_follower_idsFollowersone2many

inverse: res_id

inherited from mail.thread

message_has_errorMessage Delivery error

If checked, some messages have a delivery error.

boolean
computed

inherited from mail.thread

message_has_error_counterNumber of errors

Number of messages with delivery error

integer
computed

inherited from mail.thread

message_has_sms_errorSMS Delivery error

If checked, some messages have a delivery error.

boolean
computed

inherited from mail.thread

message_idsMessagesone2many

inverse: res_id

inherited from mail.thread

message_is_followerIs Followerboolean
computed

inherited from mail.thread

message_needactionAction Needed

If checked, new messages require your attention.

boolean
computed

inherited from mail.thread

message_needaction_counterNumber of Actions

Number of messages requiring action

integer
computed

inherited from mail.thread

message_partner_idsFollowers (Partners)many2many
computed

inherited from mail.thread

my_activity_date_deadlineMy Activity Deadlinedate
read-onlycomputed

inherited from mail.activity.mixin

rating_idsRatingsone2many

inverse: res_id

inherited from mail.thread

create_dateCreated ondatetime
read-onlyautomatic
create_uidCreated bymany2one
read-onlyautomatic
display_nameDisplay Namechar
read-onlycomputedautomatic
idIDinteger
read-onlyautomatic
write_dateLast Updated ondatetime
read-onlyautomatic
write_uidLast Updated bymany2one
read-onlyautomatic

Relations

Models linked from this model

Fields of other models pointing here

Reading this model through the API

Odoo 20 JSON-2 API call reading the first five records with real fields of the model. Replace the instance, database and API key with your own.

curl
curl -X POST "https://your-instance.odoo.com/json/2/mrp.production/search_read" \
  -H "Authorization: bearer $ODOO_API_KEY" \
  -H "X-Odoo-Database: your-db" \
  -H "Content-Type: application/json" \
  -d '{"domain":[],"fields":["name","company_id","date_start","location_dest_id","location_src_id"],"limit":5}'
Python (requests)
import requests

BASE_URL = "https://your-instance.odoo.com/json/2"
headers = {"Authorization": f"bearer {API_KEY}", "X-Odoo-Database": "your-db"}

res = requests.post(
    f"{BASE_URL}/mrp.production/search_read",
    headers=headers,
    json={"domain": [], "fields": ["name","company_id","date_start","location_dest_id","location_src_id"], "limit": 5},
)
res.raise_for_status()
print(res.json())
  • External API access requires Odoo's Custom plan.
  • XML-RPC and JSON-RPC will be removed in Odoo 22 (fall 2028): use JSON-2.
  • The access rights and record rules of the key's user apply.

Cite this tool

Writing a tutorial, internal documentation or a forum answer? Copy this link to send your readers to the up-to-date reference.

<a href="https://aidoo.ai/en/outils/explorateur-modeles-odoo/mrp-production">mrp.production (Odoo 20.0)</a>

Sources

Data verified on September 25, 2026 · Odoo 20.0 Community

Have an Odoo project, or want to put your ERP to work with AI? Let's talk

Implementation, custom module development, connecting Claude or ChatGPT to your data: tell us about your context and we will reply within 24 business hours.