Skip to Content
Odoo model

purchase.order

Purchase Order. Defined in module purchase; exists in Odoo 16, 17, 18, 19, 20. Across the upgrade steps we tracked: 26 fields added, 12 removed, 1 renamed, 1 type changes.

  1. Odoo 16 purchase
  2. Odoo 17 purchase
  3. Odoo 18 purchase
  4. Odoo 19 purchase
  5. Odoo 20 purchase

Odoo 16 to 17

Community only All changes in this step

Fields removed (1)

FieldTypeModuleNotes
l10n_in_journal_idmany2onel10n_in_purchase

Fields added (1)

FieldTypeModule
tax_calculation_rounding_methodselectionpurchase

Now also inherits product.catalog.mixin (fields from these parents are listed on their own pages).

Odoo 17 to 18

Community only All changes in this step

Fields removed (4)

FieldTypeModuleNotes
is_quantity_copyselectionpurchase_requisition
l10n_din5008_addressesbinaryl10n_din5008_purchase
l10n_din5008_document_titlecharl10n_din5008_purchase
l10n_din5008_template_databinaryl10n_din5008_purchase

Fields added (8)

FieldTypeModule
amount_total_ccmonetarypurchase
company_currency_idmany2onepurchase
company_price_includeselectionpurchase
mail_reception_declinedbooleanpurchase
partner_bill_countintegerpurchase
project_idmany2oneproject_purchase
repair_countintegerpurchase_repair
requisition_typeselectionpurchase_requisition

Odoo 18 to 19

Community + Enterprise All changes in this step

Renamed (1)

Odoo 18Odoo 19Confidence
notesnote likely (same type, matching name)

Fields removed (6)

FieldTypeModuleNotes
group_idmany2onepurchase_stock
has_alternativesbooleanpurchase_requisition
l10n_in_gst_treatmentselectionl10n_in_purchaseIts module (l10n_in_purchase) is not in Odoo 19: removed, renamed or merged into another module.
mail_reception_confirmedbooleanpurchase
mail_reception_declinedbooleanpurchase
mail_reminder_confirmedbooleanpurchase

Fields added (9)

FieldTypeModule
acknowledgedbooleanpurchase
duplicated_order_idsmany2manypurchase
has_sale_orderbooleansale_purchase
is_latebooleanpurchase
lock_confirmed_poselectionpurchase
lockedbooleanpurchase
purchase_warning_texttextpurchase
reference_idsmany2manypurchase_stock
show_comparisonbooleanpurchase

Now also inherits account.document.import.mixin (fields from these parents are listed on their own pages).

4 views of this model removed
  • account_budget.purchase_order_form_account_budget
  • l10n_in_purchase.view_purchase_order_form_inherit_l10n_in_purchase
  • purchase_requisition.purchase_order_kpis_tree_inherit_purchase_requisition
  • purchase_requisition.purchase_order_tree_inherit_purchase_requisition
1 actions on this model removed
  • purchase.action_purchase_batch_bills

Odoo 19 to 20

Community + Enterprise All changes in this step

Fields removed (1)

FieldTypeModuleNotes
report_gridsbooleanpurchase_product_matrix

Fields added (8)

FieldTypeModule
accrual_move_countintegerpurchase_accountant
accrual_move_idsmany2manypurchase_accountant
bill_matched_ratiofloatpurchase
date_promiseddatetimepurchase_stock
document_tax_modeselectionpurchase
quality_check_countintegerpurchase_quality_control
quality_ratefloatpurchase_quality_control
show_receive_buttonbooleanpurchase

Type changed (1)

FieldOdoo 19Odoo 20
tax_totals binaryjson
1 views of this model removed
  • purchase_requisition_stock.purchase_order_form_inherit_purchase_requisition_stock

All fields declared on purchase.order (99)

Fields this model declares itself in any version, with the versions they exist in. Inherited fields (mail.thread and other mixins) are on the parent model's page.

present not present not covered (Enterprise, Odoo 16 and 17)

Show all 99 fields
FieldTypeLabelModule1617181920
accrual_move_countintegerpurchase_accountantE
accrual_move_idsmany2many account.moveAccrual Entriespurchase_accountantE
acknowledgedbooleanAcknowledgedpurchase
alternative_po_idsone2many purchase.orderAlternative POspurchase_alternative
amount_taxmonetaryTaxespurchase
amount_totalmonetaryTotalpurchase
amount_total_ccmonetaryTotal in currencypurchase
amount_untaxedmonetaryUntaxed Amountpurchase
auto_generatedbooleanAuto Generated Purchase Ordersale_purchase_inter_company_rulesE
auto_sale_order_idmany2one sale.orderSource Sales Ordersale_purchase_inter_company_rulesE
bill_matched_ratiofloatBill Matched Ratiopurchase
company_currency_idmany2oneCompany Currencypurchase
company_idmany2one res.companyCompanypurchase
company_price_includeselectionpurchase
country_codecharCountry codepurchase
currency_idmany2one res.currencyCurrencypurchase
currency_ratefloatCurrency Ratepurchase
date_approvedatetimeOrder Datepurchase
date_calendar_startdatetimepurchase
date_orderdatetimeOrder Deadlinepurchase
date_planneddatetimeExpected Arrivalpurchase
date_planned_mpsdatetimeScheduled Datemrp_mpsE
date_promiseddatetimePromised Datepurchase_stock
default_location_dest_id_is_subcontracting_locbooleanmrp_subcontracting_dropshipping
default_location_dest_id_usageselectionDestination Location Typepurchase_stock
dest_address_idmany2one res.partnerDropship Addresspurchase
document_tax_modeselectionpurchase
dropship_picking_countintegerDropship Countstock_dropshipping
duplicated_order_idsmany2many purchase.orderpurchase
effective_datedatetimeArrivalpurchase_stock
fiscal_position_idmany2one account.fiscal.positionFiscal Positionpurchase
gridcharpurchase_product_matrix
grid_product_tmpl_idmany2one product.templatepurchase_product_matrix
grid_updatebooleanpurchase_product_matrix
group_idmany2one procurement.groupProcurement Grouppurchase_stock
has_alternativesbooleanHas Alternativespurchase_requisition
has_sale_orderbooleanTechnical field for whether the purchase order has associated sale orderssale_purchase
incoming_picking_countintegerIncoming Shipment countpurchase_stock
incoterm_idmany2one account.incotermsIncotermpurchase
incoterm_locationcharIncoterm Locationpurchase
invoice_commission_countintegerSource Invoicespartner_commissionE
invoice_countintegerBill Countpurchase
invoice_idsmany2many account.moveBillspurchase
invoice_statusselectionBilling Statuspurchase
is_above_budgetbooleanIs Above Budgetaccount_budget_purchaseE
is_analyticbooleanIs Analyticaccount_budget_purchaseE
is_latebooleanIs Latepurchase
is_quantity_copyselectionpurchase_requisition
is_shippedbooleanpurchase_stock
l10n_din5008_addressesbinaryl10n_din5008_purchase
l10n_din5008_document_titlecharl10n_din5008_purchase
l10n_din5008_template_databinaryl10n_din5008_purchase
l10n_in_gst_treatmentselectionGST Treatmentl10n_in_purchase
l10n_in_journal_idmany2one account.journalJournall10n_in_purchase
l10n_ke_customs_import_idsone2many l10n_ke_edi.customs.importl10n_ke_edi_oscu_stockE
lock_confirmed_poselectionpurchase
lockedbooleanpurchase
mail_reception_confirmedbooleanReception Confirmedpurchase
mail_reception_declinedbooleanReception Declinedpurchase
mail_reminder_confirmedbooleanReminder Confirmedpurchase
mrp_production_countintegerCount of MO Sourcepurchase_mrp
namecharOrder Referencepurchase
notehtmlTerms and Conditionspurchase
noteshtmlTerms and Conditionspurchase
on_time_ratefloatpurchase_stock
on_time_rate_percfloatOTDpurchase_alternative_stock
order_lineone2many purchase.order.lineOrder Linespurchase
origincharSourcepurchase
partner_bill_countintegerpurchase
partner_idmany2one res.partnerVendorpurchase
partner_refcharVendor Referencepurchase
payment_term_idmany2one account.payment.termPayment Termspurchase
picking_idsmany2many stock.pickingReceptionspurchase_stock
picking_type_idmany2one stock.picking.typeDeliver Topurchase_stock
priorityselectionPrioritypurchase
product_idmany2one product.productProductpurchase
project_idmany2one project.projectproject_purchase
purchase_group_idmany2one purchase.order.grouppurchase_alternative
purchase_typeselectionPurchase Typepartner_commissionE
purchase_warning_texttextPurchase Warningpurchase
quality_check_countintegerpurchase_quality_controlE
quality_ratefloatpurchase_quality_controlE
receipt_reminder_emailbooleanReceipt Reminderpurchase
receipt_statusselectionReceipt Statuspurchase
reference_idsmany2many stock.referenceReferencespurchase_stock
reminder_date_before_receiptintegerDays Before Receiptpurchase
repair_countintegerCount of source repairspurchase_repair
report_gridsbooleanPrint Variant Gridspurchase_product_matrix
requisition_idmany2one purchase.requisitionAgreementpurchase_requisition
requisition_typeselectionpurchase_requisition
sale_order_countintegerNumber of Source Salesale_purchase
show_comparisonbooleanShow Comparisonpurchase
show_receive_buttonbooleanpurchase
stateselectionStatuspurchase
subcontracting_resupply_picking_countintegerCount of Subcontracting Resupplymrp_subcontracting_purchase
tax_calculation_rounding_methodselectionTax calculation rounding methodpurchase
tax_country_idmany2one res.countrypurchase
tax_totalsjsonpurchase
user_idmany2one res.usersBuyerpurchase
Coverage. Odoo 16 to 17 and 17 to 18 compare Community modules only (the Enterprise 16 and 17 sources are not available to us). Odoo 18 to 19 and 19 to 20 include Community and Enterprise modules. Everything here comes from a static read of the Odoo source code: a field counts as removed only when no parent model, mixin or delegated model still provides it. Fields created dynamically at run time can be missed, and entries we could not confirm are marked as low confidence.