Skip to Content
Odoo model

pos.order.line

Point of Sale Order Line. Defined in module point_of_sale; exists in Odoo 16, 17, 18, 19, 20. Across the upgrade steps we tracked: 28 fields added, 10 removed, 0 renamed, 2 type changes.

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

Odoo 16 to 17

Community only All changes in this step

Fields removed (1)

FieldTypeModuleNotes
mp_skipbooleanpos_restaurant

Fields added (6)

FieldTypeModule
attribute_value_idsmany2manypoint_of_sale
combo_idmany2onepos_self_order
combo_line_idsone2manypoint_of_sale
combo_parent_idmany2onepoint_of_sale
custom_attribute_value_idsone2manypoint_of_sale
skip_changebooleanpoint_of_sale

Odoo 17 to 18

Community only All changes in this step

Fields added (7)

FieldTypeModule
combo_item_idmany2onepoint_of_sale
event_registration_idsone2manypos_event
event_ticket_idmany2onepos_event
is_editedbooleanpoint_of_sale
l10n_in_hsn_codecharl10n_in_pos
price_typeselectionpoint_of_sale
qty_deliveredfloatpos_sale

Type changed (2)

FieldOdoo 17Odoo 18
price_subtotal floatmonetary
price_subtotal_incl floatmonetary

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

Fields removed (2)

FieldTypeModuleNotes
skip_changebooleanpoint_of_sale
vat_letterselectionpos_blackbox_be

Fields added (9)

FieldTypeModule
blackbox_plucharpos_blackbox_be
course_idmany2onepos_restaurant
extra_tax_datajsonpoint_of_sale
l10n_be_vatsjsonl10n_be_pos_blackbox
preparation_timeintegerpos_enterprise
rewarded_product_idmany2onel10n_be_pos_blackbox_loyalty
service_timeintegerpos_enterprise
settled_invoice_idmany2onepos_settle_due
settled_order_idmany2onepos_settle_due

Odoo 19 to 20

Community + Enterprise All changes in this step

Fields removed (7)

FieldTypeModuleNotes
blackbox_plucharpos_blackbox_beIts module (pos_blackbox_be) is not in Odoo 20: removed, renamed or merged into another module.
coupon_idmany2onepos_loyalty
l10n_be_vatsjsonl10n_be_pos_blackboxIts module (l10n_be_pos_blackbox) is not in Odoo 20: removed, renamed or merged into another module.
reward_identifier_codecharpos_loyalty
rewarded_product_idmany2onel10n_be_pos_blackbox_loyaltyIts module (l10n_be_pos_blackbox_loyalty) is not in Odoo 20: removed, renamed or merged into another module.
settled_invoice_idmany2onepos_settle_due
settled_order_idmany2onepos_settle_due

Fields added (6)

FieldTypeModule
card_idmany2onepos_loyalty
gift_card_valsjsonpos_loyalty
has_default_productbooleanpos_sale
prep_line_idsone2manypoint_of_sale
sale_order_line_nametextpos_sale
urbanpiper_tax_liabilityselectionpos_urban_piper

Now also inherits res.currency.rate.consolidation.mixin (fields from these parents are listed on their own pages).

All fields declared on pos.order.line (65)

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 65 fields
FieldTypeLabelModule1617181920
attribute_value_idsmany2many product.template.attribute.valueSelected Attributespoint_of_sale
blackbox_plucharPLU hashpos_blackbox_beE
card_idmany2one loyalty.cardCardpos_loyalty
combo_idmany2one product.comboCombo Referencepos_self_order
combo_item_idmany2one product.combo.itemCombo Itempoint_of_sale
combo_line_idsone2many pos.order.lineCombo Linespoint_of_sale
combo_parent_idmany2one pos.order.lineCombo Parentpoint_of_sale
company_idmany2one res.companyCompanypoint_of_sale
coupon_idmany2one loyalty.cardCouponpos_loyalty
course_idmany2one restaurant.order.courseCourse Refpos_restaurant
currency_idmany2one res.currencypoint_of_sale
custom_attribute_value_idsone2many product.attribute.custom.valueCustom Valuespoint_of_sale
customer_notecharCustomer Notepoint_of_sale
discountfloatDiscount (%)point_of_sale
down_payment_detailstextDown Payment Detailspos_sale
event_registration_idsone2many event.registrationEvent Registrationspos_event
event_ticket_idmany2one event.event.ticketEvent Ticketpos_event
extra_tax_datajsonpoint_of_sale
full_product_namecharFull Product Namepoint_of_sale
gift_card_valsjsonpos_loyalty
has_default_productbooleanpos_sale
is_editedbooleanEditedpoint_of_sale
is_reward_linebooleanpos_loyalty
is_total_cost_computedbooleanpoint_of_sale
l10n_be_vatsjsonl10n_be VATs JSONl10n_be_pos_blackboxE
l10n_in_hsn_codecharHSN/SAC Codel10n_in_pos
marginmonetaryMarginpoint_of_sale
margin_percentfloatMargin (%)point_of_sale
mp_skipbooleanSkip line when sending ticket to kitchen printers.pos_restaurant
namecharLine Nopoint_of_sale
notecharProduct Notepoint_of_sale
noticecharDiscount Noticepoint_of_sale
order_idmany2one pos.orderOrder Refpoint_of_sale
pack_lot_idsone2many pos.pack.operation.lotLot/serial Numberpos_stock
points_costfloatpos_loyalty
prep_line_idsone2many pos.prep.linePreparation linespoint_of_sale
preparation_timeintegerPreparation Timepos_enterpriseE
price_extrafloatPrice extrapoint_of_sale
price_subtotalmonetaryTax Excl.point_of_sale
price_subtotal_inclmonetaryTax Incl.point_of_sale
price_typeselectionPrice Typepoint_of_sale
price_unitfloatUnit Pricepoint_of_sale
product_idmany2one product.productProductpoint_of_sale
product_uom_idmany2one uom.uomProduct Unitpoint_of_sale
qtyfloatQuantitypoint_of_sale
qty_deliveredfloatDelivery Quantitypos_sale
refund_orderline_idsone2many pos.order.lineRefund Order Linespoint_of_sale
refunded_orderline_idmany2one pos.order.lineRefunded Order Linepoint_of_sale
refunded_qtyfloatRefunded Quantitypoint_of_sale
reward_idmany2one loyalty.rewardRewardpos_loyalty
reward_identifier_codecharpos_loyalty
rewarded_product_idmany2one product.productRewarded Productl10n_be_pos_blackbox_loyaltyE
sale_order_line_idmany2one sale.order.lineSource Sale Order Linepos_sale
sale_order_line_nametextpos_sale
sale_order_origin_idmany2one sale.orderLinked Sale Orderpos_sale
service_timeintegerService Timepos_enterpriseE
settled_invoice_idmany2one account.moveSettled Invoicepos_settle_dueE
settled_order_idmany2one pos.orderSettled Orderpos_settle_dueE
skip_changebooleanSkip line when sending ticket to kitchen printers.point_of_sale
tax_idsmany2many account.taxTaxespoint_of_sale
tax_ids_after_fiscal_positionmany2many account.taxTaxes to Applypoint_of_sale
total_costfloatTotal costpoint_of_sale
urbanpiper_tax_liabilityselectionUrbanPiper Tax Liabilitypos_urban_piperE
uuidcharUuidpoint_of_sale
vat_letterselectionpos_blackbox_beE
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.