Odoo 19.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 9 other modules. It exposes 125 fields, 95 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 19 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, project_mrp, project_mrp_account, sale_mrp
Default order (_order)
priority desc, date_start asc,id
Inherits from (mixins)
mail.threadmail.activity.mixinproduct.catalog.mixin

Model fields

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

125 of 125 fields shown

Technical nameLabelTypeDetails
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)

consumptionConsumptionselection
requiredread-only

Values: flexible (Allowed), warning (Allowed with warning), strict (Blocked)

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
duration_expectedExpected Duration

Total expected duration (in minutes)

float
computed
extra_costExtra Unit Costfloat

added by Accounting - MRP (mrp_account)

finished_move_line_idsFinished Productone2many
computed
forecasted_issueForecasted Issueboolean
computed
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_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_final_idFinal Location from procurementmany2one
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
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_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
orderpoint_idOrderpointmany2one
originSource

Reference of the document that generated this production order request.

char
picking_idsPicking associated to this manufacturing ordermany2many
computed
picking_type_idOperation Typemany2one
requiredcomputed, stored
priorityPriority

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

selection

Values: 0 (Normal), 1 (Urgent)

product_description_variantsCustom Descriptionchar
product_idProductmany2one
requiredcomputed, stored
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_idUnitmany2one
requiredcomputed, stored
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
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
scrap_idsScrapsone2many

inverse: production_id

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_produceShow Produce

Technical field to check if produce button can be shown

boolean
computed
show_produce_allShow Produce All

Technical field to check if produce all button can be shown

boolean
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)

subcontracting_has_been_recordedHas been recorded?boolean

added by MRP Subcontracting (mrp_subcontracting)

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
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

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_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

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

website_message_idsWebsite Messages

Website communication history

one2many

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 19 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","consumption","date_start","location_dest_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","consumption","date_start","location_dest_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 19.0)</a>

Sources

Data verified on September 23, 2026 · Odoo 19.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.