stock.warehouse: fields, relations and API
The stock.warehouse model ("Warehouse") is a persistent model declared by the Inventory module, then extended by 9 other modules. It exposes 59 fields, 53 of them declared directly on the model; 28 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
stock.warehouse- Label
- Warehouse
- Type
- Persistent (models.Model)
- SQL table
stock_warehouse- Origin module
- Inventory (
stock) - Extended by
- stock_picking_batch, point_of_sale, mrp, purchase_stock, repair, mrp_subcontracting, mrp_subcontracting_dropshipping, stock_fleet, website_sale_collect
- Default order (_order)
sequence,id
Model fields
53 own fields, 0 inherited from mixins and 6 automatic ORM fields. Click a name to get a direct link to that field.
59 of 59 fields shown
| Technical name | Label | Type | Details |
|---|---|---|---|
| active | Active | boolean | |
| buy_pull_id | Buy rule | many2one | added by Purchase Stock ( |
| buy_to_resupply | Buy to Resupply When products are bought, they can be delivered to this warehouse | boolean | computed added by Purchase Stock ( |
| code | Short Name Short name used to identify your warehouse | char | required |
| company_id | Company The company is automatically set from your user preferences. | many2one | requiredread-only |
| delivery_route_id | Delivery Route | many2one | |
| delivery_steps | Outgoing Shipments Default outgoing route to follow | selection | required Values: |
| in_type_id | In Type | many2one | |
| int_type_id | Internal Type | many2one | |
| lot_stock_id | Location Stock | many2one | required |
| manu_type_id | Manufacturing Operation Type | many2one | added by Manufacturing ( |
| manufacture_mto_pull_id | Manufacture MTO Rule | many2one | added by Manufacturing ( |
| manufacture_pull_id | Manufacture Rule | many2one | added by Manufacturing ( |
| manufacture_steps | Manufacture 1 Step: Consume components from stock and produce. 2 Steps: Pick components from stock and then produce. 3 Steps: Pick components from stock, produce, and then move final product(s) from production area to stock. | selection | required Values: added by Manufacturing ( |
| manufacture_to_resupply | Manufacture to Resupply When products are manufactured, they can be manufactured in this warehouse. | boolean | computed added by Manufacturing ( |
| mto_pull_id | MTO rule | many2one | |
| name | Warehouse | char | required |
| opening_hours | Opening Hours | many2one | added by Click & Collect ( |
| out_type_id | Out Type | many2one | |
| pack_type_id | Pack Type | many2one | |
| partner_id | Address | many2one | |
| pbm_loc_id | Picking before Manufacturing Location | many2one | added by Manufacturing ( |
| pbm_mto_pull_id | Picking Before Manufacturing MTO Rule | many2one | added by Manufacturing ( |
| pbm_route_id | Picking Before Manufacturing Route | many2one | added by Manufacturing ( |
| pbm_type_id | Picking Before Manufacturing Operation Type | many2one | added by Manufacturing ( |
| pick_type_id | Pick Type | many2one | |
| pos_type_id | Point of Sale Operation Type | many2one | added by Point of Sale ( |
| qc_type_id | Quality Control Type | many2one | |
| reception_route_id | Receipt Route | many2one | |
| reception_steps | Incoming Shipments Default incoming route to follow | selection | required Values: |
| repair_mto_pull_id | Repair MTO Rule | many2one | added by Repairs ( |
| repair_type_id | Repair Operation Type | many2one | added by Repairs ( |
| resupply_route_ids | Resupply Routes Routes will be created for these resupply warehouses and you can select them on products and product categories | one2many | inverse: |
| resupply_wh_ids | Resupply From Routes will be created automatically to resupply this warehouse from the warehouses ticked | many2many | |
| route_ids | Routes Defaults routes through the warehouse | many2many | |
| sam_loc_id | Stock after Manufacturing Location | many2one | added by Manufacturing ( |
| sam_rule_id | Stock After Manufacturing Rule | many2one | added by Manufacturing ( |
| sam_type_id | Stock After Manufacturing Operation Type | many2one | added by Manufacturing ( |
| sequence | Sequence Gives the sequence of this line when displaying the warehouses. | integer | |
| store_type_id | Storage Type | many2one | |
| subcontracting_dropshipping_pull_id | Subcontracting-Dropshipping MTS Rule | many2one | added by Dropship and Subcontracting Management ( |
| subcontracting_mto_pull_id | Subcontracting MTO Rule | many2one | added by MRP Subcontracting ( |
| subcontracting_pull_id | Subcontracting MTS Rule | many2one | added by MRP Subcontracting ( |
| subcontracting_resupply_type_id | Subcontracting Resupply Operation Type | many2one | added by MRP Subcontracting ( |
| subcontracting_route_id | Resupply Subcontractor | many2one | added by MRP Subcontracting ( |
| subcontracting_to_resupply | Resupply Subcontractors | boolean | added by MRP Subcontracting ( |
| subcontracting_type_id | Subcontracting Operation Type | many2one | added by MRP Subcontracting ( |
| view_location_id | View Location | many2one | required |
| wh_input_stock_loc_id | Input Location | many2one | |
| wh_output_stock_loc_id | Output Location | many2one | |
| wh_pack_stock_loc_id | Packing Location | many2one | |
| wh_qc_stock_loc_id | Quality Control Location | many2one | |
| xdock_type_id | Cross Dock Type | many2one | |
| create_date | Created on | datetime | read-onlyautomatic |
| create_uid | Created by | many2one | read-onlyautomatic |
| display_name | Display Name | char | read-onlycomputedautomatic |
| id | ID | integer | read-onlyautomatic |
| write_date | Last Updated on | datetime | read-onlyautomatic |
| write_uid | Last Updated by | many2one | read-onlyautomatic |
Relations
Models linked from this model
- res.company: company_id
- res.partner: partner_id
- resource.calendar: opening_hours
- stock.location: lot_stock_id, pbm_loc_id, sam_loc_id, view_location_id, wh_input_stock_loc_id, wh_output_stock_loc_id, wh_pack_stock_loc_id, wh_qc_stock_loc_id
- stock.picking.type: in_type_id, int_type_id, manu_type_id, out_type_id, pack_type_id, pbm_type_id, pick_type_id, pos_type_id, qc_type_id, repair_type_id, sam_type_id, store_type_id, subcontracting_resupply_type_id, subcontracting_type_id, xdock_type_id
- stock.route: delivery_route_id, pbm_route_id, reception_route_id, resupply_route_ids, route_ids, subcontracting_route_id
- stock.rule: buy_pull_id, manufacture_mto_pull_id, manufacture_pull_id, mto_pull_id, pbm_mto_pull_id, repair_mto_pull_id, sam_rule_id, subcontracting_dropshipping_pull_id, subcontracting_mto_pull_id, subcontracting_pull_id
- stock.warehouse: resupply_wh_ids
Fields of other models pointing here
- delivery.carrier: warehouse_ids
- mrp.production: warehouse_id
- pos.config: warehouse_id
- product.replenish: warehouse_id
- product.template: warehouse_id
- purchase.report: picking_type_id
- purchase.requisition: warehouse_id
- report.stock.quantity: warehouse_id
- res.config.settings: pos_warehouse_id, website_warehouse_id
- res.users: property_warehouse_id
- sale.order: warehouse_id
- sale.order.line: warehouse_id
- sale.report: warehouse_id
- stock.location: warehouse_id
- stock.move: warehouse_id
- stock.picking.batch: warehouse_id
- stock.picking.type: warehouse_id
- stock.quant: warehouse_id
- stock.replenishment.option: warehouse_id
- stock.route: supplied_wh_id, supplier_wh_id, warehouse_ids
- stock.rule: warehouse_id
- stock.rules.report: warehouse_ids
- stock.warehouse: resupply_wh_ids
- stock.warehouse.orderpoint: warehouse_id
- website: warehouse_id
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 -X POST "https://your-instance.odoo.com/json/2/stock.warehouse/search_read" \
-H "Authorization: bearer $ODOO_API_KEY" \
-H "X-Odoo-Database: your-db" \
-H "Content-Type: application/json" \
-d '{"domain":[],"fields":["name","code","company_id","delivery_steps","lot_stock_id"],"limit":5}'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.warehouse/search_read",
headers=headers,
json={"domain": [], "fields": ["name","code","company_id","delivery_steps","lot_stock_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-warehouse">stock.warehouse (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.