Skip to Content
Odoo model

sale.order.line

Sales Order Line. Defined in module sale; exists in Odoo 16, 17, 18, 19, 20. Across the upgrade steps we tracked: 69 fields added, 13 removed, 2 renamed, 1 type changes.

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

Odoo 16 to 17

Community only All changes in this step

Fields removed (3)

FieldTypeModuleNotes
event_okbooleanevent_sale
price_reducefloatsale
website_descriptionhtmlsale_quotation_builderIts module (sale_quotation_builder) is not in Odoo 17: removed, renamed or merged into another module.

Fields added (3)

FieldTypeModule
registration_idsone2manyevent_sale
tax_calculation_rounding_methodselectionsale
tax_country_idmany2onesale

Odoo 17 to 18

Community only All changes in this step

Fields removed (1)

FieldTypeModuleNotes
option_line_idsone2manywebsite_sale

Fields added (15)

FieldTypeModule
amount_invoicedmonetarysale
amount_to_invoicemonetarysale
available_product_document_idsmany2manysale_pdf_quote_builder
combo_item_idmany2onesale
company_price_includeselectionsale
is_product_archivedbooleansale
is_storablebooleansale_stock
linked_line_idsone2manysale
linked_virtual_idcharsale
product_document_idsmany2manysale_pdf_quote_builder
selected_combo_itemscharsale
service_trackingselectionsale
technical_price_unitfloatsale
translated_product_nametextsale
virtual_idcharsale

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

Odoo 18 to 19

Community + Enterprise All changes in this step

Renamed (2)

Odoo 18Odoo 19Confidence
product_uomproduct_uom_id possible (same type, name extended)
tax_idtax_ids likely (same type, matching name)

Fields removed (6)

FieldTypeModuleNotes
is_event_boothbooleanevent_booth_sale
product_packaging_idmany2onesale
product_packaging_qtyfloatsale
product_uom_category_idmany2onesale
route_idmany2onesale_stock
sale_order_option_idsone2manysale_management

Fields added (29)

Show all 29
FieldTypeModule
allowed_uom_idsmany2manysale
amount_to_invoice_at_datefloatsale
categ_idmany2onesale
collapse_compositionbooleansale
collapse_pricesbooleansale
country_idmany2onesale_renting
deferred_revenuebooleansale_account_accountant
event_slot_idmany2oneevent_sale
expense_idsone2manysale_expense
extra_tax_datajsonsale
invoice_to_be_issuedbooleansale_account_accountant
is_latebooleansale_renting
is_multi_slotsbooleanevent_sale
is_optionalbooleansale_management
is_repair_linebooleanpos_repair
l10n_br_goods_operation_type_idmany2onel10n_br_avatax_sale
l10n_mx_edi_can_use_customs_invoicingbooleanl10n_mx_edi_landing
lazada_order_item_idsone2manysale_lazada
order_is_rentalbooleansale_renting
parent_idmany2onesale
product_invoice_policyselectionsale_account_accountant
qty_delivered_at_datefloatsale
qty_invoiced_at_datefloatsale
rental_colorintegersale_renting
rental_statusselectionsale_renting
route_idsmany2manysale_stock
sale_line_warn_msgtextsale
team_idmany2onesale_renting
use_expiration_datebooleansale_stock_product_expiry

Odoo 19 to 20

Community + Enterprise All changes in this step

Fields removed (3)

FieldTypeModuleNotes
product_invoice_policyselectionsale_account_accountant
shop_warningcharwebsite_sale
translated_product_nametextsale

Fields added (22)

Show all 22
FieldTypeModule
accrual_move_idsmany2manysale
allow_lot_updatebooleanplanning_field_service_stock_subscription
auto_purchase_order_line_idone2manysale_purchase_inter_company_rules
document_tax_modeselectionsale
edi_customer_product_refcharsale_edi_ubl
invoice_policyselectionsale
is_donationbooleanwebsite_sale
l10n_br_item_numbercharl10n_br_avatax_sale
l10n_br_tax_detailstextl10n_br_edi_sale
l10n_ph_original_tax_idsmany2manyl10n_ph_sale
labeltextsale
lot_idsmany2manyplanning_field_service_stock_subscription
mandatory_productbooleansale
planning_slot_idmany2oneplanning_field_service_sale_timesheet
qty_delivered_percentfloatsale
qty_overagefloatsale
repair_service_line_idmany2onerepair
resource_idmany2onepos_sale_planning
section_qtyfloatsale
section_uom_idmany2onesale
total_costfloatsale_account_accountant
unit_costfloatsale_account_accountant

Type changed (1)

FieldOdoo 19Odoo 20
customer_lead floatinteger

Now also inherits l10n_ph.discount.privilege.line.mixin, product.catalog.line.mixin, res.currency.rate.consolidation.mixin, website.checkout.alert.mixin (fields from these parents are listed on their own pages).

All fields declared on sale.order.line (200)

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 200 fields
FieldTypeLabelModule1617181920
accrual_move_idsmany2many account.moveAccrual Entriessale
allow_lot_updatebooleanplanning_field_service_stock_subscriptionE
allowed_uom_idsmany2many uom.uomsale
amazon_item_refcharsale_amazonE
amazon_offer_idmany2one amazon.offerAmazon Offersale_amazonE
amount_invoicedmonetaryInvoiced Amountsale
amount_to_invoicemonetaryUn-invoiced Balancesale
amount_to_invoice_at_datefloatAmountsale
analytic_line_idsone2many account.analytic.lineAnalytic linessale
auto_purchase_order_line_idone2many purchase.order.lineIntercompany Purchase Order Linesale_purchase_inter_company_rulesE
available_product_document_idsmany2many product.documentAvailable Product Documentssale_pdf_quote_builder
available_reserved_lotsbooleansale_stock_rentingE
calendar_booking_idsone2many calendar.bookingBookingswebsite_appointment_saleE
calendar_event_idmany2one calendar.eventMeetingwebsite_appointment_saleE
categ_idmany2onesale
collapse_compositionbooleanCollapse Compositionsale
collapse_pricesbooleanCollapse Pricessale
colorintegerColorhelpdesk_sale_timesheetE
combo_item_idmany2one product.combo.itemsale
company_idmany2onesale
company_price_includeselectionsale
country_idmany2onesale_rentingE
coupon_idmany2one loyalty.cardsale_loyalty
currency_idmany2onesale
customer_leadintegerLead Timesale
deferred_revenuebooleanDeferred Revenuesale
delivered_price_subtotalmonetaryDelivered Subtotalplanning_field_service_sale_timesheetE
delivered_price_taxfloatDelivered Total Taxplanning_field_service_sale_timesheetE
delivered_price_totalmonetaryDelivered Totalplanning_field_service_sale_timesheetE
discountfloatDiscount (%)sale
display_qty_widgetbooleansale
display_typeselectionsale
document_tax_modeselectionsale
edi_customer_product_refcharsale_edi_ubl
event_booth_category_idmany2one event.booth.categoryBooths Categoryevent_booth_sale
event_booth_idsone2many event.boothConfirmed Boothsevent_booth_sale
event_booth_pending_idsmany2many event.boothPending Boothsevent_booth_sale
event_booth_registration_idsone2many event.booth.registrationConfirmed Registrationevent_booth_sale
event_idmany2one event.eventEventevent_sale
event_okbooleanevent_sale
event_slot_idmany2one event.slotSlotevent_sale
event_ticket_idmany2one event.event.ticketTicket Typeevent_sale
expense_idmany2one hr.expenseExpensesale_expense_margin
expense_idsone2many hr.expenseExpensessale_expense
extra_tax_datajsonsale
forecast_expected_datedatetimesale_stock
free_qty_todayfloatsale_stock
fsm_lot_idmany2one stock.lotplanning_field_service_sale_stockE
has_displayed_warning_upsellbooleanHas Displayed Warning Upsellsale_timesheet
invoice_linesmany2many account.move.lineInvoice Linessale
invoice_policyselectionInvoicing Policysale
invoice_statusselectionInvoice Statussale
invoice_to_be_issuedbooleanInvoice to be Issuedsale
is_configurable_productbooleanIs the product configurable?sale
is_deliverybooleanIs a Deliverydelivery
is_donationbooleanwebsite_sale
is_downpaymentbooleanIs a down paymentsale
is_event_boothbooleanevent_booth_sale
is_expensebooleanIs expensesale
is_latebooleansale_rentingE
is_mtobooleansale_stock
is_multi_slotsbooleanevent_sale
is_optionalbooleanOptional Linesale_management
is_product_archivedbooleansale
is_product_rentablebooleansale_rentingE
is_rentalbooleansale_rentingE
is_repair_linebooleanIs linked to repairpos_repair
is_reward_linebooleanIs a program reward linesale_loyalty
is_servicebooleanIs a Servicesale_service
is_storablebooleansale
l10n_br_goods_operation_type_idmany2one l10n_br.operation.typeOverride Operation Typel10n_br_avatax_saleE
l10n_br_item_numbercharItem Numberl10n_br_avatax_saleE
l10n_br_tax_detailstextTax Detailsl10n_br_edi_saleE
l10n_mx_edi_can_use_customs_invoicingbooleanl10n_mx_edi_landingE
l10n_ph_original_tax_idsmany2manyl10n_ph_sale
labeltextLabelsale
last_invoiced_datedatesale_subscriptionE
lazada_order_item_idsone2many lazada.order.itemLazada Order Itemssale_lazadaE
linked_line_idmany2one sale.order.lineLinked Order Linesale
linked_line_idsone2many sale.order.lineLinked Order Linessale
linked_virtual_idcharsale
lot_idsmany2many stock.lotEquipment Maintainedplanning_field_service_stock_subscriptionE
mandatory_productbooleanIs Product Mandatorysale
marginfloatMarginsale_margin
margin_percentfloatMargin (%)sale_margin
move_idsone2many stock.moveStock Movessale_stock
nametextDescriptionsale
name_shortcharwebsite_sale
next_invoice_datedatesale_subscriptionE
option_line_idsone2many sale.order.lineOptions Linkedwebsite_sale
order_idmany2one sale.orderOrder Referencesale
order_is_rentalbooleansale_rentingE
order_partner_idmany2oneCustomersale
parent_idmany2one sale.order.lineParent Section Linesale
parent_line_idmany2one sale.order.linesale_subscriptionE
pickedup_lot_idsmany2many stock.lotsale_stock_rentingE
planning_hours_plannedfloatsale_planningE
planning_hours_to_planfloatsale_planningE
planning_slot_idmany2one planning.slotInterventionplanning_field_service_sale_timesheetE
planning_slot_idsone2many planning.slotsale_planningE
points_costfloatsale_loyalty
pos_order_line_idsone2many pos.order.lineOrder lines Transfered to Point of Salepos_sale
price_reducefloatPrice Reducesale
price_reduce_taxexclmonetaryPrice Reduce Tax exclsale
price_reduce_taxincmonetaryPrice Reduce Tax inclsale
price_subtotalmonetarySubtotalsale
price_taxfloatTotal Taxsale
price_totalmonetaryTotalsale
price_unitfloatUnit Pricesale
pricelist_idmany2onesale_subscriptionE
pricelist_item_idmany2one product.pricelist.itemsale
product_add_modeselectionsale_product_matrix
product_custom_attribute_value_idsone2many product.attribute.custom.valueCustom Valuessale
product_document_idsmany2many product.documentProduct Documentssale_pdf_quote_builder
product_idmany2one product.productProductsale
product_invoice_policyselectionsale_account_accountantE
product_no_variant_attribute_value_idsmany2many product.template.attribute.valueExtra Valuessale
product_packaging_idmany2one product.packagingPackagingsale
product_packaging_qtyfloatPackaging Quantitysale
product_qtyfloatProduct Qtydelivery
product_template_attribute_value_idsmany2manysale
product_template_idmany2one product.templateProduct Templatesale
product_template_variant_value_idsmany2manysale_subscriptionE
product_typeselectionsale
product_uommany2one uom.uomUnit of Measuresale
product_uom_category_idmany2onesale
product_uom_idmany2one uom.uomUnitsale
product_uom_qtyfloatQuantitysale
product_uom_readonlybooleansale
product_updatablebooleanCan Edit Productsale
project_idmany2one project.projectGenerated Projectsale_project
purchase_line_countintegerNumber of generated purchase itemssale_purchase
purchase_line_idsone2many purchase.order.lineGenerated Purchase Linessale_purchase
purchase_pricefloatUnit Costsale_margin
qty_available_todayfloatsale
qty_deliveredfloatDelivery Quantitysale
qty_delivered_at_datefloatDeliveredsale
qty_delivered_methodselectionMethod to update delivered qtysale
qty_delivered_percentfloatDelivered (%)sale
qty_invoicedfloatInvoiced Quantitysale
qty_invoiced_at_datefloatInvoicedsale
qty_invoiced_postedfloatInvoiced Quantity (posted)sale
qty_overagefloatsale
qty_returnedfloatReturnedsale_rentingE
qty_to_deliverfloatsale_stock
qty_to_invoicefloatQuantity To Invoicesale
reached_milestones_idsone2many project.milestoneReached Milestonessale_project
recompute_delivery_pricebooleandelivery
recurring_invoicebooleansale_subscriptionE
recurring_monthlymonetaryMonthly Recurring Revenuesale_subscriptionE
registration_idsone2many event.registrationRegistrationsevent_sale
remaining_hoursfloatTime Remaining on SOsale_timesheet
remaining_hours_availablebooleansale_timesheet
rental_colorintegersale_rentingE
rental_statusselectionsale_rentingE
repair_service_line_idmany2one repair.service.linerepair
reservation_begindatetimePickup date - padding timesale_rentingE
reserved_lot_idsmany2many stock.lotReserved Lotssale_stock_rentingE
resource_idmany2one resource.resourceResourcepos_sale_planningE
return_datedatetimesale_rentingE
returned_lot_idsmany2many stock.lotsale_stock_rentingE
reward_idmany2one loyalty.rewardsale_loyalty
reward_identifier_codecharsale_loyalty
route_idmany2one stock.routeRoutesale_stock
route_idsmany2many stock.routeRoutessale_stock
sale_line_warn_msgtextsale
sale_order_option_idsone2many sale.order.optionOptional Products Linessale_management
salesman_idmany2oneSalespersonsale
scheduled_datedatetimeDelivery Datesale
section_qtyfloatSection Quantitysale
section_uom_idmany2one uom.uomSection Unit of Measuresale
selected_combo_itemscharsale
sequenceintegerSequencesale
service_trackingselectionsale
shop_warningcharWarningwebsite_sale
start_datedatetimesale_rentingE
stateselectionOrder Statussale
subscription_end_datedatesale_subscriptionE
subscription_plan_idmany2onesale_subscriptionE
subscription_start_datedatesale_subscriptionE
task_idmany2one project.taskGenerated Tasksale_project
tax_calculation_rounding_methodselectionTax calculation rounding methodsale
tax_country_idmany2onesale
tax_idmany2many account.taxTaxessale
tax_idsmany2many account.taxTaxessale
team_idmany2onesale_rentingE
technical_price_unitfloatsale
timesheet_idsone2many account.analytic.lineTimesheetssale_timesheet
total_costfloatTotal Costsale_account_accountantE
trackingselectionsale_stock_rentingE
translated_product_nametextsale
unavailable_lot_idsmany2many stock.lotsale_stock_rentingE
unit_costfloatCost by Unitsale_account_accountantE
untaxed_amount_invoicedmonetaryUntaxed Invoiced Amountsale
untaxed_amount_to_invoicemonetaryUntaxed Amount To Invoicesale
use_expiration_datebooleansale_stock_product_expiry
virtual_available_at_datefloatsale
virtual_idcharsale
warehouse_idmany2one stock.warehousesale_stock
website_descriptionhtmlWebsite Descriptionsale_quotation_builder
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.