Odoo 20.0 Community · Persistent

stock.move: fields, relations and API

The stock.move model ("Stock Move") is a persistent model declared by the Inventory module, then extended by 25 other modules. It exposes 128 fields, 122 of them declared directly on the model; 16 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
stock.move
Label
Stock Move
Type
Persistent (models.Model)
SQL table
stock_move
Origin module
Inventory (stock)
Extended by
mrp, stock_account, mrp_account, sale_stock, stock_delivery, purchase_stock, stock_landed_costs, product_expiry, repair, mrp_repair, mrp_subcontracting, sale_purchase_stock, mrp_subcontracting_dropshipping, purchase_mrp, mrp_subcontracting_purchase, pos_stock, pos_mrp, project_mrp, project_stock_account, project_mrp_account, sale_mrp, project_purchase_stock, purchase_requisition_stock, sale_project_stock, sale_project_stock_account
Default order (_order)
sequence, id
Display field (_rec_name)
reference
Inherits from (mixins)
product.catalog.line.mixin

Model fields

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

128 of 128 fields shown

Technical nameLabelTypeDetails
account_move_idstock_move_idmany2one

added by WMS Accounting (stock_account)

additionalWhether the move was added after the picking's confirmationboolean
allowed_operation_idsAllowed Operationone2many

related: raw_material_production_id.bom_id.operation_ids

added by Manufacturing (mrp)

allowed_uom_idsAllowed Uommany2many
computed
analytic_account_line_idsAnalytic Account Linemany2many

added by WMS Accounting (stock_account)

availabilityForecasted Quantity

Quantity in stock that can still be reserved for this move

float
read-onlycomputed
bom_line_idBoM Linemany2one

added by Manufacturing (mrp)

byproduct_idBy-products

By-product line that generated the move in a manufacturing order

many2one

added by Manufacturing (mrp)

cogs_aml_idsCOGS lines

Account move lines using this move in order to compute their COGS

many2many
computed

added by WMS Accounting (stock_account)

company_currency_idCompany Currencymany2one
read-only

related: company_id.currency_id

added by WMS Accounting (stock_account)

company_idCompanymany2one
required
consume_unbuild_idConsumed Disassembly Ordermany2one

added by Manufacturing (mrp)

cost_shareCost Share (%)

The percentage of the final production cost for this by-product. The total of all by-products' cost share must be smaller or equal to 100.

float

added by Manufacturing (mrp)

created_production_idCreated Production Ordermany2one

added by Manufacturing (mrp)

created_purchase_line_idsCreated Purchase Order Linesmany2many

added by Purchase Stock (purchase_stock)

dateDate Scheduled

Scheduled date until move is done, then date of actual move processing

datetime
required
date_deadlineDeadline

In case of outgoing flow, validate the transfer before this date to allow to deliver at promised date to the customer. In case of incoming flow, validate the transfer before this date in order to have these products in stock at the date promised by the supplier

datetime
read-only
delay_alert_dateDelay Alert Date

Process at this date to be on time

datetime
computed, stored
description_pickingDescription Of Pickingtext
computed
description_picking_manualDescription Picking Manualtext
read-only
display_assign_serialDisplay Assign Serialboolean
computed
display_import_lotDisplay Import Lotboolean
computed
forecast_availabilityForecast Availabilityfloat
computed
forecast_expected_dateForecasted Expected datedatetime
computed
forecasted_location_idForecasted Location

Location used in the computation of the forecast.

many2one
has_lines_without_result_packageHas Lines Without Result Packageboolean
computed
has_trackingProduct with Trackingselection

related: product_id.tracking

inventory_nameInventory Namechar
read-only
invoice_line_idsInvoice Lineone2many

inverse: stock_move_id

added by WMS Accounting (stock_account)

is_date_editableIs Date Editableboolean
computed
is_dropshipIs Dropshipboolean
computed, stored

added by WMS Accounting (stock_account)

is_inIs Incoming (valued)boolean
computed, stored

added by WMS Accounting (stock_account)

is_initial_demand_editableIs initial demand editableboolean
computed
is_inventoryInventoryboolean
is_lockedIs Lockedboolean
read-onlycomputed
is_outIs Outgoing (valued)boolean
computed, stored

added by WMS Accounting (stock_account)

is_quantity_done_editableIs quantity done editableboolean
computed
is_scrapIs Scrapboolean
read-only
is_storableIs Storableboolean

related: product_id.is_storable

is_subcontractThe move is a subcontract receiptboolean

added by MRP Subcontracting (mrp_subcontracting)

is_valuedIs Valuedboolean
computed

added by WMS Accounting (stock_account)

location_dest_idIntermediate Location

The operations brings product to this location

many2one
requiredcomputed, stored
location_dest_usageDestination Location Typeselection

related: location_dest_id.usage

location_idSource Location

The operation takes and suggests products from this location.

many2one
requiredcomputed, stored
location_usageSource Location Typeselection

related: location_id.usage

lot_idsSerial Numbersmany2many
computed
move_dest_idsDestination Moves

Optional: next stock move when chaining them

many2many
move_line_idsMove Lineone2many

inverse: move_id

move_lines_countMove Lines Countinteger
computed
move_orig_idsOriginal Move

Optional: previous stock move when chaining them

many2many
never_product_template_attribute_value_idsNever attribute Valuesmany2many
next_serialFirst SN/Lotchar
next_serial_countNumber of SN/Lotsinteger
operation_idOperation To Consumemany2one

added by Manufacturing (mrp)

order_partner_idOrder Partner

If the move originates from a document from another company, contains that company's partner, otherwise the move's partner.

many2one
computed

added by WMS Accounting (stock_account)

orderpoint_idOriginal Reordering Rulemany2one
originSource Documentchar
origin_company_idOrigin Company

Only set if the move is generated from a document belonging to another company

many2one
computed

added by WMS Accounting (stock_account)

origin_returned_move_idOrigin return move

Move that created the return move

many2one
package_idsPackagesone2many
computed
packaging_uom_idPackaging

Packaging unit from sale or purchase orders

many2one
computed, stored
packaging_uom_qtyPackaging Quantity

Quantity in the packaging unit

float
computed, stored
partner_idDestination Address

Optional address where goods are to be delivered, specifically used for allotment

many2one
computed, stored
pickedPicked

This checkbox is just indicative, it doesn't validate or generate any product moves.

boolean
computed, stored
picking_codePicking Codeselection
read-only

related: picking_type_id.code

picking_idTransfermany2one
picking_type_idOperation Typemany2one
computed, stored
price_unitPrice Unitfloat
priorityPriorityselection
computed, stored

Values: 0 (Normal), 1 (Urgent)

procure_methodSupply Method

By default, the system will take from the stock in the source location and passively wait for availability. The other possibility allows you to directly create a procurement on the source location (and thus ignore its current stock) to gather products. If we want to chain moves and have this one to wait for the previous, this second option should be chosen.

selection
required

Values: make_to_stock (Default: Take From Stock), make_to_order (Advanced: Apply Procurement Rules)

procurement_valuesProcurement Values

Dummy field to store procurement values to propagate them to later steps

json
product_category_idProduct Categorymany2one

related: product_id.categ_id

product_idProductmany2one
required
product_qtyDemand in Product UoM

Quantity in the default UoM of the product

float
computed, stored
product_qty_availableProduct On Hand Quantityfloat

related: product_id.qty_available

added by Manufacturing (mrp)

product_tmpl_idProduct Templatemany2one

related: product_id.product_tmpl_id

product_uom_qtyDemand

This is the quantity of product that is planned to be moved.Lowering this quantity does not generate a backorder.Changing this quantity on assigned moves affects the product reservation, and should be done with care.

float
required
product_value_idsProduct Valueone2many

inverse: move_id

added by WMS Accounting (stock_account)

product_virtual_availableProduct Forecasted Quantityfloat

related: product_id.virtual_available

added by Manufacturing (mrp)

production_group_idUsed for Productionsmany2one

added by Manufacturing (mrp)

production_idProduction Order for finished productsmany2one

added by Manufacturing (mrp)

propagate_cancelPropagate cancel and split

If checked, when this move is cancelled, cancel the linked move too

boolean
purchase_line_idPurchase Order Linemany2one
read-only

added by Purchase Stock (purchase_stock)

quantityQuantityfloat
computed, stored
quantity_product_uomQuantity in Product UoMfloat
computed, stored
raw_material_production_idProduction Order for componentsmany2one

added by Manufacturing (mrp)

referenceReferencechar
computed, stored
reference_idsReferencesmany2many
remaining_qtyRemaining Quantityfloat
computed

added by WMS Accounting (stock_account)

remaining_valueRemaining Valuemonetary
computed

added by WMS Accounting (stock_account)

repair_idRepairmany2one

added by Repairs (repair)

repair_line_typeTypeselection

Values: add (Add), remove (Remove), recycle (Recycle)

added by Repairs (repair)

requisition_line_idsRequisition Lineone2many

inverse: move_dest_id

added by Purchase Requisition Stock (purchase_requisition_stock)

reservation_dateDate to Reserve

Computes when a move should be reserved

date
computed, stored
restrict_partner_idOwner many2one
returned_move_idsAll returned moves

Optional: all returned moves created from this move

one2many

inverse: origin_returned_move_id

route_idsDestination route

Preferred route

many2many
rule_idStock Rule

The stock rule that created this stock move

many2one
sale_line_idSale Linemany2one

added by Sales and Warehouse Management (sale_stock)

scrap_reason_tag_idsScrap Reasonmany2many
sequenceSequenceinteger
should_consume_qtyQuantity To Consumefloat
computed

added by Manufacturing (mrp)

should_replenish_scrappedShould Replenishboolean
show_details_visibleDetails Visibleboolean
computed
show_lots_m2oShow lot_idboolean
computed
show_lots_textShow lot_nameboolean
computed
show_quantShow Quantboolean
computed
show_subcontracting_details_visibleShow Subcontracting Details Visibleboolean
computed

added by MRP Subcontracting (mrp_subcontracting)

standard_priceStandard Pricefloat
computed

added by WMS Accounting (stock_account)

stateStatus

* New: The stock move is created but not confirmed. * Waiting Another Move: A linked stock move should be done before this one. * Waiting: The stock move is confirmed but the product can't be reserved. * Available: The product of the stock move is reserved. * Done: The product has been transferred and the transfer has been confirmed.

selection
read-only

Values: draft (New), waiting (Waiting Another Move), confirmed (Waiting), partially_available (Partially Available), assigned (Available), done (Done), cancel (Cancelled)

to_refundUpdate quantities on SO/PO

Trigger a decrease of the delivered/received quantity in the associated Sale Order/Purchase Order

boolean

added by WMS Accounting (stock_account)

unbuild_idDisassembly Ordermany2one

added by Manufacturing (mrp)

unit_factorUnit Factorfloat
computed, stored

added by Manufacturing (mrp)

uom_idUnitmany2one
requiredcomputed, stored
use_expiration_dateUse Expiration Dateboolean

related: product_id.use_expiration_date

added by Products Expiration Date (product_expiry)

valueValue

The current value of the move. It's zero if the move is not valued.

monetary

added by WMS Accounting (stock_account)

value_computed_justificationComputed Value Descriptiontext
computed

added by WMS Accounting (stock_account)

value_justificationValue Descriptiontext
computed

added by WMS Accounting (stock_account)

value_manualManual Valuemonetary
computed

added by WMS Accounting (stock_account)

warehouse_idWarehouse

the warehouse to consider for the route selection on the next procurement (if any).

many2one
weightWeightfloat
computed, stored

added by Delivery - Stock (stock_delivery)

workorder_idWork Order To Consumemany2one

added by Manufacturing (mrp)

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/stock.move/search_read" \
  -H "Authorization: bearer $ODOO_API_KEY" \
  -H "X-Odoo-Database: your-db" \
  -H "Content-Type: application/json" \
  -d '{"domain":[],"fields":["reference","company_id","date","location_dest_id","location_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}/stock.move/search_read",
    headers=headers,
    json={"domain": [], "fields": ["reference","company_id","date","location_dest_id","location_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/stock-move">stock.move (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.