Skip to Content
Odoo model

product.template

Product. Defined in module product; exists in Odoo 16, 17, 18, 19, 20. Across the upgrade steps we tracked: 95 fields added, 41 removed, 1 renamed, 2 type changes.

The abstract base representation of a product. It defines the generic properties (name, category, price) that apply to all its variants. If a product has no variations (like size/color), this acts as the main product record.

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

Odoo 16 to 17

Community only All changes in this step

Fields removed (9)

FieldTypeModuleNotes
attachment_countintegerwebsite_sale_digitalIts module (website_sale_digital) is not in Odoo 17: removed, renamed or merged into another module.
days_to_prepare_mofloatmrp
l10n_ke_hsn_codecharl10n_ke_edi_tremol
l10n_ke_hsn_namecharl10n_ke_edi_tremol
pos_categ_idmany2onepoint_of_sale
produce_delayfloatmrp
quotation_descriptionhtmlsale_quotation_builderIts module (sale_quotation_builder) is not in Odoo 17: removed, renamed or merged into another module.
quotation_only_descriptionhtmlsale_quotation_builderIts module (sale_quotation_builder) is not in Odoo 17: removed, renamed or merged into another module.
visible_qty_configuratorbooleansale

Fields added (14)

FieldTypeModule
combo_idsmany2manypoint_of_sale
cpv_code_idmany2onel10n_ro_cpv_code
create_repairbooleanrepair
description_ecommercehtmlwebsite_sale
description_self_orderhtmlpos_self_order
fiscal_country_codescharaccount
l10n_hu_product_codecharl10n_hu_edi
l10n_hu_product_code_typeselectionl10n_hu_edi
l10n_my_edi_classification_codeselectionl10n_my_edi
pos_categ_idsmany2manypoint_of_sale
product_document_countintegerproduct
product_document_idsone2manyproduct
product_propertiespropertiesproduct
self_order_availablebooleanpos_self_order

Type changed (2)

FieldOdoo 16Odoo 17
compare_list_price floatmonetary
sale_delay floatinteger
5 views of this model removed
  • delivery.product_template_hs_code
  • l10n_ke_edi_tremol.l10n_ke_inherit_product_template_form_view
  • l10n_pl_jpk.product_template_form
  • purchase_price_diff.product_template_form_view
  • website_sale_digital.product_template_view_form_inherit_digital
1 actions on this model removed
  • product.report_product_template_label

Odoo 17 to 18

Community only All changes in this step

Renamed (1)

Odoo 17Odoo 18Confidence
detailed_typetype + is_storable confirmed

Fields removed (3)

FieldTypeModuleNotes
description_self_orderhtmlpos_self_order
l10n_in_hsn_descriptioncharl10n_in
priorityselectionproduct

Fields added (14)

FieldTypeModule
gelato_image_idsone2manysale_gelato
gelato_missing_imagesbooleansale_gelato
gelato_product_uidcharsale_gelato
gelato_template_refcharsale_gelato
is_favoritebooleanproduct
is_storablebooleanstock
l10n_gr_edi_preferred_classification_idsone2manyl10n_gr_edi
l10n_hr_kpd_category_idmany2onel10n_hr_edi
l10n_in_hsn_warningtextl10n_in
l10n_tr_ctsp_numbercharl10n_tr_nilvera_einvoice_extended
l10n_tr_default_sales_return_account_idmany2onel10n_tr
lot_valuatedbooleanstock_account
public_descriptionhtmlpoint_of_sale
uom_category_idmany2oneproduct

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

4 views of this model removed
  • mrp_subcontracting.mrp_subcontracting_product_template_search_view
  • point_of_sale.account_product_template_form_view
  • purchase.view_product_account_purchase_ok_form
  • sale_product_configurator.product_template_view_form

Odoo 18 to 19

Community + Enterprise All changes in this step

Fields removed (16)

Show all 16
FieldTypeModuleNotes
create_repairbooleanrepair
l10n_br_customs_regime_idmany2onel10n_br_edi_fiscal_reform
l10n_br_transaction_usageselectionl10n_br_edi_fiscal_reform
l10n_br_uom_category_idmany2onel10n_br_edi_fiscal_reform
manufacturer_product_idchardelivery_fedex_certifiedIts module (delivery_fedex_certified) is not in Odoo 19: removed, renamed or merged into another module.
membershipbooleanmembershipIts module (membership) is not in Odoo 19: removed, renamed or merged into another module.
membership_date_fromdatemembershipIts module (membership) is not in Odoo 19: removed, renamed or merged into another module.
membership_date_todatemembershipIts module (membership) is not in Odoo 19: removed, renamed or merged into another module.
packaging_idsone2manyproduct
pricelist_item_countintegerproduct
product_subscription_pricing_idsone2manysale_subscription
property_account_creditor_price_differencemany2onepurchase_stock
purchase_line_warnselectionpurchase
sale_line_warnselectionsale
uom_category_idmany2oneproduct
uom_po_idmany2oneproduct

Fields added (31)

Show all 31
FieldTypeModule
account_fiscal_country_group_codesjsonaccount_intrastat
allow_one_time_salebooleansale_subscription
allow_prorated_pricebooleansale_subscription
grade_idmany2onepartnership
import_attribute_valuescharproduct
is_dynamically_createdbooleanproduct
l10n_br_operation_type_ecommerce_idmany2onel10n_br_website_sale_fiscal_reform
l10n_br_operation_type_pos_idmany2onel10n_br_edi_pos_fiscal_reform
l10n_br_operation_type_purchases_idmany2onel10n_br_edi_fiscal_reform
l10n_br_operation_type_sales_idmany2onel10n_br_edi_fiscal_reform
l10n_in_is_gst_registered_enabledbooleanl10n_in
l10n_mx_edi_can_use_customs_invoicingbooleanl10n_mx_edi_landing
l10n_mx_edi_use_customs_invoicingbooleanl10n_mx_edi_landing
l10n_my_tax_classification_codecharl10n_my
lot_sequence_idmany2onestock
next_serialcharstock
platform_order_availablebooleanpos_platform_order
pos_optional_product_idsmany2manypoint_of_sale
pos_sequenceintegerpoint_of_sale
pricelist_rule_idsone2manyproduct
property_price_difference_account_idmany2onestock_account
publish_datedatetimewebsite_sale
self_order_visiblebooleanpos_self_order
serial_prefix_formatcharstock
show_qty_update_buttonbooleanstock
subscription_rule_idsone2manysale_subscription
subscription_rule_ids_fixedone2manysale_subscription
task_template_idmany2onesale_project
uom_idsmany2manyproduct
urbanpiper_pos_platform_idsmany2manypos_urban_piper
variants_default_codecharwebsite_sale
14 views of this model removed
  • account.product_template_view_tree
  • account_accountant.product_template_form_view
  • account_intrastat_services.product_template_form_view_inherit_account_intrastat
  • delivery_fedex_certified.view_template_property_form
  • l10n_cz_reports_2025.view_product_template_form
  • membership.membership_product_search_form_view
  • membership.membership_products_form
  • membership.membership_products_kanban
  • membership.membership_products_tree
  • mrp_account_enterprise.product_template_inherit_form_view_cost_structure
  • pos_sale.product_template_form_view
  • purchase_stock.product_template_form_view
  • website_membership.product_template_view_form
  • website_membership.product_template_view_tree
1 actions on this model removed
  • membership.action_membership_products
1 menus opening this model removed
  • membership.menu_membership_products

Odoo 19 to 20

Community + Enterprise All changes in this step

Fields removed (13)

FieldTypeModuleNotes
allow_worksheetsbooleanindustry_fsm_sale_reportIts module (industry_fsm_sale_report) is not in Odoo 20: removed, renamed or merged into another module.
expense_policyselectionsale
extra_dailyfloatsale_renting
extra_hourlyfloatsale_renting
l10n_co_dian_mandate_contractbooleanl10n_co_edi_mandateIts module (l10n_co_edi_mandate) is not in Odoo 20: removed, renamed or merged into another module.
product_pricing_idsone2manysale_renting
property_price_difference_account_idmany2onestock_account
rent_okbooleansale_renting
service_to_purchasebooleansale_purchase
subscription_rule_ids_fixedone2manysale_subscription
urban_piper_status_idsone2manypos_urban_piper
urbanpiper_pos_config_idsmany2manypos_urban_piper
visible_expense_policybooleansale

Fields added (36)

Show all 36
FieldTypeModule
allowed_delivery_provider_idsmany2manypos_urban_piper
avatax_parameter_value_idsone2manyaccount_avatax
dropzone_above_pricehtmlwebsite_sale
dropzone_above_specificationhtmlwebsite_sale
fixed_pricelist_rule_idsone2manyproduct
free_qtyfloatproduct
l10n_co_edi_mandate_contractbooleanl10n_co_edi
l10n_gr_edi_cpv_codecharl10n_gr_edi
l10n_pk_edi_filter_sro_item_idsone2manyl10n_pk_edi
l10n_pk_edi_sale_typeselectionl10n_pk_edi
l10n_pk_edi_sro_idmany2onel10n_pk_edi
l10n_pk_edi_sro_item_idmany2onel10n_pk_edi
l10n_pk_edi_uom_codeselectionl10n_pk_edi
l10n_pk_is_fbr_3rd_schedulebooleanl10n_pk_edi_pos
l10n_tr_customer_line_codecharl10n_tr_nilvera_einvoice
l10n_tr_seller_line_codecharl10n_tr_nilvera_einvoice
l10n_uy_edi_is_non_billablebooleanl10n_uy_edi
landed_cost_on_product_idsmany2manystock_landed_costs
manufacturer_product_idchardelivery_fedex_certified
minimum_quantityintegerwebsite_sale
pickup_timefloatsale_renting
property_account_expense_activebooleanaccount
property_account_income_activebooleanaccount
reinvoice_policyselectionsale
rent_periodicityselectionsale_renting
return_timefloatsale_renting
salary_rule_idsmany2manyhr_payroll_expense
show_sales_price_pagebooleanproduct
store_byselectionstock
suggest_accessory_productsbooleanwebsite_sale
suggest_alternative_productsbooleanwebsite_sale
suggest_optional_productsbooleanwebsite_sale
suggested_products_last_updatedatetimewebsite_sale
urbanpiper_store_idsmany2manypos_urban_piper
version_countintegermrp_plm
visible_reinvoice_policybooleansale

Now also inherits ai.preview.card.mixin, website.structured_data.mixin (fields from these parents are listed on their own pages).

20 views of this model removed
  • industry_fsm_sale_report.view_product_timesheet_form_inherit
  • l10n_br_edi_fiscal_reform.product_template_view_form
  • l10n_br_edi_pos_fiscal_reform.product_template_view_form
  • l10n_br_website_sale_fiscal_reform.product_template_view_form
  • l10n_co_edi_mandate.product_template_form_inherit_l10n_co_edi_mandate
  • l10n_ro_cpv_code.product_template_form_inherit
  • l10n_tr_nilvera_einvoice_extended.product_template_only_form_view_inherit_l10n_tr_nilvera_extended
  • mrp_plm.product_template_form_view
  • point_of_sale.product_template_tree_view
  • sale_project.product_template_form_view_inherit_sale_project
  • sale_project_forecast.product_template_form_view_invoice_policy_inherit_sale_project_forecast
  • sale_purchase.product_template_form_view_inherit
  • sale_subscription_stock.product_template_form_view
  • stock.view_template_property_form
  • stock_account.view_template_property_form_stock_account
  • website_sale.product_pages_kanban_view
  • website_sale.product_pages_tree_view
  • website_sale_renting.product_template_form_view
  • website_sale_stock.product_pages_tree_view
  • website_sale_stock.product_template_form_view_inherit_website_sale_stock
7 actions on this model removed
  • industry_fsm_sale.product_action_fsm
  • product.report_product_template_label_2x7
  • product.report_product_template_label_4x12
  • product.report_product_template_label_4x12_noprice
  • product.report_product_template_label_4x7
  • product.report_product_template_label_dymo
  • website_sale.action_product_pages_list
3 menus opening this model removed
  • industry_fsm_sale.fsm_menu_settings_product
  • sale_renting.menu_rental_products
  • website_sale.menu_product_pages

All fields declared on product.template (325)

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 325 fields
FieldTypeLabelModule1617181920
accessory_product_idsmany2many product.productAccessory Productswebsite_sale
account_fiscal_country_group_codesjsonaccount_intrastatE
account_tag_idsmany2many account.account.tagAccount Tagsaccount
activebooleanActiveproduct
alert_timeintegerAlert Dateproduct_expiry
allow_one_time_salebooleanAccept One-Timesale_subscriptionE
allow_out_of_stock_orderbooleanSell when Out-of-Stockwebsite_sale
allow_prorated_pricebooleanProrated Pricesale_subscriptionE
allow_worksheetsbooleanindustry_fsm_sale_reportE
allowed_delivery_provider_idsmany2manyAllowed Delivery Aggregatorspos_urban_piperE
alternative_product_idsmany2many product.templateAlternative Productswebsite_sale
attachment_countintegerFilewebsite_sale_digital
attribute_line_idsone2many product.template.attribute.lineProduct Attributesproduct
available_in_posbooleanAvailable in POSpoint_of_sale
available_thresholdfloatShow Thresholdwebsite_sale
avatax_category_idmany2one product.avatax.categoryaccount_avataxE
avatax_parameter_value_idsone2many avatax.parameter.valueAvatax Parametersaccount_avataxE
barcodecharBarcodeproduct
base_unit_countfloatReference Unitproduct
base_unit_idmany2one product.base.unitCustom Unit of Measureproduct
base_unit_namecharproduct
base_unit_pricemonetaryPrice Per Unitproduct
bom_countinteger# Bill of Materialmrp
bom_idsone2many mrp.bomBill of Materialsmrp
bom_line_idsone2many mrp.bom.lineBoM Componentsmrp
can_be_expensedbooleanExpenseshr_expense
can_image_1024_be_zoomedbooleanCan Image 1024 be zoomedproduct
categ_idmany2one product.categoryProduct Categoryproduct
colorintegerColor Indexproduct
combo_idsmany2many product.comboCombo Choicesproduct
company_idmany2one res.companyCompanyproduct
compare_list_pricemonetaryCompare to Pricewebsite_sale
cost_currency_idmany2one res.currencyCost Currencyproduct
cost_methodselectionCost Methodaccount
country_of_originmany2one res.countryOrigin of Goodsstock_delivery
cpv_code_idmany2one l10n_ro.cpv.codeCPV Codel10n_ro_edi
create_repairbooleanCreate Repairrepair
currency_idmany2one res.currencyCurrencyproduct
days_to_prepare_mofloatDays to prepare Manufacturing Ordermrp
default_codecharInternal Referenceproduct
descriptionhtmlDescriptionproduct
description_ecommercehtmleCommerce Descriptionwebsite_sale
description_pickingtextDescription on Pickingstock
description_pickingintextDescription on Receptionsstock
description_pickingouttextDescription on Delivery Ordersstock
description_purchasetextPurchase Descriptionproduct
description_saletextSales Descriptionproduct
description_self_orderhtmlProduct Description for Self Orderpos_self_order
detailed_typeselectionProduct Typeproduct
display_pricecharRental pricesale_rentingE
display_subscription_pricingcharDisplay Pricesale_subscriptionE
dropzone_above_pricehtmlDrop Zone Above Pricewebsite_sale
dropzone_above_specificationhtmlDrop Zone Above Specificationwebsite_sale
eco_countinteger# ECOsmrp_plmE
eco_idsone2many mrp.ecoECOsmrp_plmE
email_template_idmany2one mail.templateProduct Email Templateproduct_email_template
expense_policyselectionRe-Invoice Costssale
expense_policy_tooltipcharsale_expense
expiration_timeintegerExpiration Dateproduct_expiry
extra_dailyfloatDaily Finesale_rentingE
extra_hourlyfloatHourly Finesale_rentingE
fiscal_country_codescharaccount
fixed_pricelist_rule_idsone2many product.pricelist.itemproduct
free_qtyfloatFree To Useproduct
gelato_image_idsone2many product.documentGelato Print Imagessale_gelato
gelato_missing_imagesbooleanMissing Print Imagessale_gelato
gelato_product_uidcharGelato Product UIDsale_gelato
gelato_template_refcharGelato Template Referencesale_gelato
grade_idmany2one res.partner.gradeAssigned Levelpartnership
has_available_route_idsbooleanRoutes can be selected on this productstock
has_configurable_attributesbooleanIs a configurable productproduct
hs_codecharHS Codestock_delivery
import_attribute_valuescharProduct Valuesproduct
incoming_qtyfloatIncomingproduct
intrastat_code_domaincharaccount_intrastatE
intrastat_code_idmany2one account.intrastat.codeCommodity Codeaccount_intrastatE
intrastat_origin_country_idmany2one res.countryCountry of Originaccount_intrastatE
intrastat_supplementary_unitselectionaccount_intrastatE
intrastat_supplementary_unit_amountfloataccount_intrastatE
invoice_policyselectionInvoicing Policysale
is_alcoholic_on_urbanpiperbooleanIs Alcoholicpos_urban_piperE
is_dynamically_createdbooleanIs Dynamically Createdproduct
is_favoritebooleanFavoriteproduct
is_kitsbooleanmrp
is_product_variantbooleanIs a product variantproduct
is_publishedbooleanwebsite_sale
is_storablebooleanTrack Inventoryproduct
l10n_ar_ncm_codecharNCM Codel10n_ar_ediE
l10n_br_cest_codecharCEST Codel10n_br_avataxE
l10n_br_company_city_idmany2one res.cityl10n_br_avataxE
l10n_br_customs_regime_idmany2one l10n_br.customs.regimeSpecial Customs Regimel10n_br_edi_fiscal_reformE
l10n_br_laborbooleanLabor Assignmentl10n_br_avataxE
l10n_br_nbs_idmany2one l10n_br.nbs.codeNBS Codel10n_br_ediE
l10n_br_ncm_code_idmany2one l10n_br.ncm.codeMercosul NCM Codel10n_br_avataxE
l10n_br_operation_type_ecommerce_idmany2one l10n_br.operation.typeeCommerce Operation Typel10n_br_edi_website_saleE
l10n_br_operation_type_pos_idmany2one l10n_br.operation.typePOS Operation Typel10n_br_edi_posE
l10n_br_operation_type_purchases_idmany2one l10n_br.operation.typePurchases Operation Typel10n_br_ediE
l10n_br_operation_type_sales_idmany2one l10n_br.operation.typeSales Operation Typel10n_br_ediE
l10n_br_pos_warningtextBrazilian POS Warningl10n_br_edi_posE
l10n_br_property_service_code_origin_idmany2one l10n_br.service.codeService Code Originl10n_br_avataxE
l10n_br_service_code_idsmany2many l10n_br.service.codeService Codesl10n_br_avataxE
l10n_br_source_originselectionSource of Originl10n_br_avataxE
l10n_br_sped_typeselectionSPED Fiscal Product Typel10n_br_avataxE
l10n_br_taxable_isbooleanIS taxablel10n_br_ediE
l10n_br_transaction_usageselectionl10n_br_edi_fiscal_reformE
l10n_br_transport_cost_typeselectionAdditional Cost Typel10n_br_avataxE
l10n_br_uom_category_idmany2onel10n_br_edi_fiscal_reformE
l10n_br_use_typeselectionPurpose of Usel10n_br_avataxE
l10n_co_dian_mandate_contractbooleanMandate Contractl10n_co_edi_mandateE
l10n_co_edi_brandcharBrandl10n_co_ediE
l10n_co_edi_customs_codecharCustoms Codel10n_co_ediE
l10n_co_edi_mandate_contractbooleanMandate Contractl10n_co_ediE
l10n_co_edi_ref_nominal_taxfloatSpecific Component Nominal Taxesl10n_co_ediE
l10n_cz_supplies_codeselectionCode of Supplyl10n_cz_reportsE
l10n_cz_transaction_codeselectionTransaction codel10n_cz_reportsE
l10n_ec_auxiliary_codecharAuxiliary Codel10n_ec_ediE
l10n_ec_withhold_tax_idmany2one account.taxProfit Withholdl10n_ec_ediE
l10n_eg_eta_codecharItem codel10n_eg_edi_eta
l10n_gr_edi_cpv_codecharItem CPV Codel10n_gr_edi
l10n_gr_edi_preferred_classification_idsone2many l10n_gr_edi.preferred_classificationPreferred myDATA Classificationl10n_gr_edi
l10n_hr_kpd_category_idmany2one l10n_hr.kpd.categoryKPD categoryl10n_hr_edi
l10n_hu_product_codecharProduct Code Valuel10n_hu_edi
l10n_hu_product_code_typeselectionProduct Code Typel10n_hu_edi
l10n_id_product_codemany2one l10n_id_efaktur_coretax.product.codeProduct Codel10n_id_efaktur_coretax
l10n_in_hsn_codecharHSN/SAC Codel10n_in
l10n_in_hsn_descriptioncharHSN/SAC Descriptionl10n_in
l10n_in_hsn_warningtextHSC/SAC warningl10n_in
l10n_in_is_gst_registered_enabledbooleanl10n_in
l10n_ke_hsn_codecharKRA Item Codel10n_ke_edi_tremol
l10n_ke_hsn_namecharKRA Item Descriptionl10n_ke_edi_tremol
l10n_ke_is_insurance_applicablebooleanInsurance Applicablel10n_ke_edi_oscuE
l10n_ke_item_codecharKRA Item Codel10n_ke_edi_oscuE
l10n_ke_origin_country_idmany2one res.countryOrigin Countryl10n_ke_edi_oscuE
l10n_ke_packaging_quantityfloatPackage Quantityl10n_ke_edi_oscuE
l10n_ke_packaging_unit_idmany2one l10n_ke_edi_oscu.codePackaging Unitl10n_ke_edi_oscuE
l10n_ke_product_type_codeselectioneTIMS Product Typel10n_ke_edi_oscuE
l10n_ke_validation_messagecharl10n_ke_edi_oscu_posE
l10n_mx_edi_can_use_customs_invoicingbooleanCustoms invoicingl10n_mx_edi_landingE
l10n_mx_edi_hazard_package_typeselectionPackaging type for hazardous materiall10n_mx_edi_stockE
l10n_mx_edi_hazardous_materialselectionl10n_mx_edi_stockE
l10n_mx_edi_hazardous_material_code_idmany2one l10n_mx_edi.hazardous.materialHazardous Material Designation Codel10n_mx_edi_stockE
l10n_mx_edi_material_descriptioncharMaterial Descriptionl10n_mx_edi_stockE
l10n_mx_edi_material_typeselectionMaterial Typel10n_mx_edi_stockE
l10n_mx_edi_predial_accountcharCuenta prediall10n_mx_ediE
l10n_mx_edi_tariff_fraction_idmany2one l10n_mx_edi.tariff.fractionTariff Fractionl10n_mx_edi_extendedE
l10n_mx_edi_umt_aduana_idmany2one uom.uomUMT Aduanal10n_mx_edi_extendedE
l10n_mx_edi_use_customs_invoicingbooleanl10n_mx_edi_landingE
l10n_my_edi_classification_codeselectionMalaysian classification codel10n_my_edi
l10n_my_tax_classification_codecharMalaysian Customs Tariff Codel10n_my
l10n_pe_edi_tariff_fractionselectionTariff Fraction (PE)l10n_pe_edi_stockE
l10n_pe_type_of_existenceselectionType of Existencel10n_pe_reports_stockE
l10n_pe_withhold_codeselectionWithhold codel10n_pe_ediE
l10n_pe_withhold_percentagefloatWithhold Percentagel10n_pe_ediE
l10n_pk_edi_filter_sro_item_idsone2manyl10n_pk_edi
l10n_pk_edi_sale_typeselectionSale Typel10n_pk_edi
l10n_pk_edi_sro_idmany2one l10n_pk_edi.sroStatutory Regulatory Order Schedulel10n_pk_edi
l10n_pk_edi_sro_item_idmany2one l10n_pk_edi.sro.itemStatutory Regulatory Order Iteml10n_pk_edi
l10n_pk_edi_uom_codeselectionl10n_pk_edi
l10n_pk_is_fbr_3rd_schedulebooleanIs FBR 3rd Schedule Productl10n_pk_edi_pos
l10n_pl_vat_gtuselectionGTU Codesl10n_pl
l10n_tr_ctsp_numbercharCTSP Numberl10n_tr_nilvera_einvoiceE
l10n_tr_customer_line_codecharCustomer Line Codel10n_tr_nilvera_einvoiceE
l10n_tr_default_sales_return_account_idmany2one account.accountl10n_tr
l10n_tr_seller_line_codecharSeller Line Codel10n_tr_nilvera_einvoiceE
l10n_uy_edi_is_non_billablebooleanNon-Billablel10n_uy_ediE
landed_cost_okbooleanIs a Landed Coststock_landed_costs
landed_cost_on_product_idsmany2many product.productApply Landed Cost Onstock_landed_costs
list_pricefloatSales Priceproduct
location_idmany2one stock.locationLocationstock
lot_sequence_idmany2one ir.sequenceSerial/Lot Numbers Sequencestock
lot_valuatedbooleanValuation by Lot/Serialstock_account
manufacturer_product_idcharNS-PIDdelivery_fedex_certifiedE
membershipbooleanmembership
membership_date_fromdateMembership Start Datemembership
membership_date_todateMembership End Datemembership
minimum_quantityintegerMinimum Quantitywebsite_sale
mrp_product_qtyfloatManufacturedmrp
namecharNameproduct
nbr_moves_inintegerstock
nbr_moves_outintegerstock
nbr_reordering_rulesintegerReordering Rulesstock
next_serialcharstock
offer_countintegersale_amazonE
optional_product_idsmany2many product.templateOptional Productssale
out_of_stock_messagehtmlOut-of-Stock Messagewebsite_sale
outgoing_qtyfloatOutgoingproduct
packaging_idsone2many product.packagingProduct Packagesproduct
pickup_timefloatsale_rentingE
planning_enabledbooleanPlan Servicessale_planningE
planning_role_idmany2one planning.rolesale_planningE
platform_order_availablebooleanAvailable for Platform Orderspos_platform_orderE
pos_categ_idmany2one pos.categoryPoint of Sale Categorypoint_of_sale
pos_categ_idsmany2many pos.categoryPoint of Sale Categorypoint_of_sale
pos_optional_product_idsmany2many product.templatePOS Optional Productspoint_of_sale
pos_sequenceintegerPOS Sequencepoint_of_sale
preparation_timefloatPadding Timesale_stock_rentingE
pricelist_item_countintegerNumber of price rulesproduct
pricelist_rule_idsone2many product.pricelist.itemPricelist Rulesproduct
priorityselectionFavoriteproduct
produce_delayfloatManufacturing Lead Timemrp
product_add_modeselectionVariant Selectionsale_product_matrix
product_document_countintegerDocuments Countproduct
product_document_idsone2many product.documentDocumentsproduct
product_pricing_idsone2many product.pricingCustom Pricingssale_rentingE
product_propertiespropertiesPropertiesproduct
product_subscription_pricing_idsone2many sale.subscription.pricingCustom Subscription Pricingssale_subscriptionE
product_tag_idsmany2many product.tagTagsproduct
product_template_image_idsone2many product.imageExtra Product Mediawebsite_sale
product_tooltipcharproduct
product_variant_countinteger# Product Variantsproduct
product_variant_idmany2one product.productProductproduct
product_variant_idsone2many product.productProductsproduct
project_idmany2one project.projectProjectsale_project
project_template_idmany2one project.projectProject Templatesale_project
property_account_creditor_price_differencemany2one account.accountPrice Difference Accountpurchase_stock
property_account_expense_activebooleanExpense Account Activeaccount
property_account_expense_idmany2one account.accountExpense Accountaccount
property_account_income_activebooleanIncome Account Activeaccount
property_account_income_idmany2one account.accountIncome Accountaccount
property_price_difference_account_idmany2one account.accountPrice Difference Accountstock_account
property_stock_inventorymany2one stock.locationInventory Adjustmentstock
property_stock_productionmany2one stock.locationProductionstock
public_categ_idsmany2many product.public.categoryWebsite Product Categorywebsite_sale
public_descriptionhtmlProduct Descriptionpoint_of_sale
publish_datedatetimePublish Datewebsite_sale
purchase_line_warnselectionPurchase Order Line Warningpurchase
purchase_line_warn_msgtextMessage for Purchase Order Linepurchase
purchase_methodselectionControl Policypurchase
purchase_okbooleanPurchaseproduct
purchased_product_qtyfloatPurchasedpurchase
qty_availablefloatQuantity On Handproduct
qty_in_rentfloatQuantity currently in rentsale_rentingE
quality_control_point_qtyintegerquality_controlE
quality_fail_qtyintegerquality_controlE
quality_pass_qtyintegerquality_controlE
quotation_descriptionhtmlQuotation Descriptionsale_quotation_builder
quotation_only_descriptionhtmlQuotation Only Descriptionsale_quotation_builder
recurring_invoicebooleanSubscription Productsale_subscriptionE
reinvoice_policyselectionRe-Invoice Costssale
removal_timeintegerRemoval Dateproduct_expiry
rent_okbooleanRentalsale_rentingE
rent_periodicityselectionRental Periodicitysale_rentingE
reordering_max_qtyfloatstock
reordering_min_qtyfloatstock
responsible_idmany2one res.usersResponsiblestock
return_timefloatsale_rentingE
route_from_categ_idsmany2manyCategory Routesstock
route_idsmany2many stock.routeRoutesstock
salary_rule_idsmany2many hr.salary.ruleSalary Ruleshr_payroll_expenseE
sale_delayintegerDelivery Timesale
sale_line_warnselectionSales Order Linesale
sale_line_warn_msgtextSales Order Line Warningsale
sale_okbooleanSalesproduct
sales_countfloatSoldsale
schedule_countintegerSchedulesmrp_mpsE
self_order_availablebooleanAvailable in Self Orderpos_self_order
self_order_visiblebooleanpos_self_order
seller_idsone2many product.supplierinfoVendorsproduct
sequenceintegerSequenceproduct
serial_prefix_formatcharCustom Lot/Serialstock
service_policyselectionService Invoicing Policysale_project
service_to_purchasebooleanSubcontract Servicesale_purchase
service_trackingselectionCreate on Orderproduct
service_typeselectionTrack Servicesale
service_upsell_thresholdfloatThresholdsale_timesheet
service_upsell_threshold_ratiocharsale_timesheet
show_availabilitybooleanShow availability Qtywebsite_sale
show_forecasted_qty_status_buttonbooleanstock
show_on_hand_qty_status_buttonbooleanstock
show_qty_update_buttonbooleanproduct
show_sales_price_pagebooleanproduct
split_method_landed_costselectionDefault Split Methodstock_landed_costs
standard_pricefloatCostproduct
store_byselectionTrackingstock
subscription_rule_idsone2many product.pricelist.itemSubscription Pricingssale_subscriptionE
subscription_rule_ids_fixedone2many product.pricelist.itemFixed Subscription Pricingssale_subscriptionE
suggest_accessory_productsbooleanSuggest Accessory Productswebsite_sale
suggest_alternative_productsbooleanSuggest Alternative Productswebsite_sale
suggest_optional_productsbooleanSuggest Optional Productswebsite_sale
suggested_products_last_updatedatetimeLast update of suggested productswebsite_sale
supplier_taxes_idmany2many account.taxPurchase Taxesaccount
task_template_idmany2one project.taskTask Templatesale_project
tax_stringcharaccount
taxes_idmany2many account.taxSales Taxesaccount
to_weightbooleanTo Weighpoint_of_sale
trackingselectionTracking Methodstock
typeselectionProduct Typeproduct
unspsc_code_idmany2one product.unspsc.codeUNSPSC Categoryproduct_unspscE
uom_category_idmany2one uom.categoryUoM Categoryproduct
uom_idmany2one uom.uomUnitproduct
uom_idsmany2many uom.uomPackagingsproduct
uom_namecharUnit Nameproduct
uom_po_idmany2one uom.uomPurchase Unitproduct
urban_piper_status_idsone2many product.urban.piper.statusStorespos_urban_piperE
urbanpiper_meal_typeselectionMeal Typepos_urban_piperE
urbanpiper_pos_config_idsmany2many pos.configAvailable on Food Deliverypos_urban_piperE
urbanpiper_pos_platform_idsmany2many pos.delivery.providerAggregatorspos_urban_piperE
urbanpiper_store_idsmany2many pos.urbanpiper.storeUrbanPiper Storespos_urban_piperE
use_expiration_datebooleanUse Expiration Dateproduct_expiry
use_timeintegerBest Before Dateproduct_expiry
used_in_bom_countinteger# of BoM Where is Usedmrp
valid_intrastat_code_idsmany2many account.intrastat.codeIntrastat Code IDsaccount_intrastatE
valid_product_template_attribute_line_idsmany2many product.template.attribute.lineValid Product Attribute Linesproduct
valuationselectionValuationaccount
variant_seller_idsone2many product.supplierinfoproduct
variants_default_codecharwebsite_sale
versionintegerVersionmrp_plmE
version_countinteger# Versionsmrp_plmE
virtual_availablefloatForecasted Quantityproduct
visible_expense_policybooleanRe-Invoice Policy visiblesale
visible_qty_configuratorbooleanQuantity visible in configuratorsale
visible_reinvoice_policybooleanRe-Invoice Policy visiblesale
volumefloatVolumeproduct
volume_uom_namecharVolume unit of measure labelproduct
warehouse_idmany2one stock.warehouseWarehousestock
website_descriptionhtmlDescription for the websitewebsite_sale
website_ribbon_idmany2one product.ribbonRibbonwebsite_sale
website_sequenceintegerWebsite Sequencewebsite_sale
website_size_xintegerSize Xwebsite_sale
website_size_yintegerSize Ywebsite_sale
weightfloatWeightproduct
weight_uom_namecharWeight unit of measure labelproduct
worksheet_template_idmany2one worksheet.templateWorksheetplanning_field_service_sale_worksheetE
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.