Odoo 19.0 Community · Persistent

purchase.order.line: fields, relations and API

The purchase.order.line model ("Purchase Order Line") is a persistent model declared by the Purchase module, then extended by 10 other modules. It exposes 67 fields, 58 of them declared directly on the model; 6 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
purchase.order.line
Label
Purchase Order Line
Type
Persistent (models.Model)
SQL table
purchase_order_line
Origin module
Purchase (purchase)
Extended by
purchase_stock, stock_landed_costs, sale_purchase, sale_purchase_stock, stock_dropshipping, purchase_mrp, project_purchase, purchase_product_matrix, purchase_requisition, purchase_requisition_stock
Default order (_order)
order_id, sequence, id
Inherits from (mixins)
analytic.mixin

Model fields

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

67 of 67 fields shown

Technical nameLabelTypeDetails
allowed_uom_idsAllowed Uommany2many
computed
amount_to_invoice_at_dateAmountfloat
computed
company_currency_idCompany Currencymany2one

related: company_id.currency_id

added by Purchase Agreements (purchase_requisition)

company_idCompanymany2one
read-only

related: order_id.company_id

currency_idCurrencymany2one

related: order_id.currency_id

date_approveConfirmation Datedatetime
read-only

related: order_id.date_approve

date_orderOrder Datedatetime
read-only

related: order_id.date_order

date_plannedExpected Arrival

Delivery date expected from vendor. This date respectively defaults to vendor pricelist lead time then today's date.

datetime
computed, stored
discountDiscount (%)float
computed, stored
display_typeDisplay Type

Technical field for UX purpose.

selection

Values: line_section (Section), line_subsection (Subsection), line_note (Note)

forecasted_issueForecasted Issueboolean
computed

added by Purchase Stock (purchase_stock)

invoice_linesBill Linesone2many
read-only

inverse: purchase_line_id

is_configurable_productIs the product configurable?boolean

related: product_template_id.has_configurable_attributes

added by Purchase Matrix (purchase_product_matrix)

is_downpaymentIs Downpaymentboolean
is_storableIs Storableboolean

related: product_id.is_storable

added by Purchase Stock (purchase_stock)

location_final_idLocation from procurementmany2one

added by Purchase Stock (purchase_stock)

move_dest_idsDownstream moves altmany2many

added by Purchase Stock (purchase_stock)

move_idsReservationone2many
read-only

inverse: purchase_line_id

added by Purchase Stock (purchase_stock)

nameDescriptiontext
requiredcomputed, stored
on_time_rate_percOTDfloat

related: order_id.on_time_rate_perc

added by Purchase Requisition Stock (purchase_requisition_stock)

order_idOrder Referencemany2one
required
orderpoint_idOrderpointmany2one

added by Purchase Stock (purchase_stock)

parent_idParent Section Linemany2one
computed
partner_idPartnermany2one
read-only

related: order_id.partner_id

price_subtotalSubtotalmonetary
computed, stored
price_taxTaxfloat
computed, stored
price_totalTotalmonetary
computed, stored
price_total_ccCompany Subtotalmonetary
computed, stored

added by Purchase Agreements (purchase_requisition)

price_unitUnit Pricefloat
requiredcomputed, stored
price_unit_discountedUnit Price (Discounted)float
computed
price_unit_product_uomUnit Price Product UoM

The Price of one unit of the product's Unit of Measure

float
computed
product_description_variantsCustom Descriptionchar

added by Purchase Stock (purchase_stock)

product_idProductmany2one
product_no_variant_attribute_value_idsProduct attribute values that do not create variantsmany2many
product_qtyQuantityfloat
required
product_template_attribute_value_idsProduct Template Attribute Valuemany2many
read-only

related: product_id.product_template_attribute_value_ids

product_template_idProduct Templatemany2one

related: product_id.product_tmpl_id

added by Purchase Matrix (purchase_product_matrix)

product_typeProduct Typeselection
read-only

related: product_id.type

product_uom_idUnitmany2one
product_uom_qtyTotal Quantityfloat
computed, stored
propagate_cancelPropagate cancellationboolean

added by Purchase Stock (purchase_stock)

purchase_line_warn_msgPurchase Line Warn Msgtext
computed
qty_invoicedBilled Qtyfloat
computed, stored
qty_invoiced_at_dateBilledfloat
computed
qty_receivedReceived Qtyfloat
computed, stored
qty_received_at_dateReceivedfloat
computed
qty_received_manualManual Received Qtyfloat
qty_received_methodReceived Qty Method

According to product configuration, the received quantity can be automatically computed by mechanism: - Manual: the quantity is set manually on the line - Stock Moves: the quantity comes from confirmed pickings

selection
computed, stored

Values: manual (Manual)

qty_to_invoiceTo Invoice Quantityfloat
read-onlycomputed, stored
sale_line_idOrigin Sale Itemmany2one

added by Sale Purchase (sale_purchase)

sale_order_idSale Ordermany2one

related: sale_line_id.order_id

added by Sale Purchase (sale_purchase)

selected_seller_idSelected Seller

Technical field to get the vendor pricelist used to generate this line

many2one
computed
sequenceSequenceinteger
stateStateselection

related: order_id.state

tax_calculation_rounding_methodTax calculation rounding methodselection
read-only

related: company_id.tax_calculation_rounding_method

tax_idsTaxesmany2many
technical_price_unitTechnical Price Unit

Technical field for price computation

float
translated_product_nameTranslated Product Nametext
computed
analytic_distributionAnalytic Distributionjson
computed, stored

inherited from analytic.mixin

analytic_precisionAnalytic Precisioninteger

inherited from analytic.mixin

distribution_analytic_account_idsDistribution Analytic Accountmany2many
computed

inherited from analytic.mixin

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/purchase.order.line/search_read" \
  -H "Authorization: bearer $ODOO_API_KEY" \
  -H "X-Odoo-Database: your-db" \
  -H "Content-Type: application/json" \
  -d '{"domain":[],"fields":["name","order_id","price_unit","product_qty","state"],"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}/purchase.order.line/search_read",
    headers=headers,
    json={"domain": [], "fields": ["name","order_id","price_unit","product_qty","state"], "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/purchase-order-line">purchase.order.line (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.