Skip to Content
Odoo model

product.category

Product Category. Defined in module product; exists in Odoo 16, 17, 18, 19, 20. Across the upgrade steps we tracked: 20 fields added, 4 removed, 0 renamed.

  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 added (3)

FieldTypeModule
filter_for_stock_putaway_rulebooleanstock
product_properties_definitionproperties_definitionproduct
property_stock_account_production_cost_idmany2onemrp_account
1 views of this model removed
  • purchase_price_diff.view_category_property_form

Odoo 17 to 18

Community only All changes in this step

Fields added (2)

FieldTypeModule
parent_route_idsmany2manystock
property_account_downpayment_categ_idmany2onesale

Now also inherits mail.thread, 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 (4)

Fields added (3)

FieldTypeModule
account_stock_variation_idmany2onestock_account
anglo_saxon_accountingbooleanstock_account
property_price_difference_account_idmany2onestock_account
3 views of this model removed
  • mrp_account.view_category_property_form
  • purchase_stock.view_category_property_form
  • sale.view_category_property_form

Odoo 19 to 20

Community + Enterprise All changes in this step

Fields added (12)

2 views of this model removed
  • stock_account.view_category_property_form
  • stock_account.view_category_property_form_stock
1 menus opening this model removed
  • sale.menu_product_categories

All fields declared on product.category (41)

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 41 fields
FieldTypeLabelModule1617181920
account_stock_variation_activebooleanStock Variation Account Activeaccount
account_stock_variation_idmany2one account.accountStock Variation Accountaccount
anglo_saxon_accountingbooleanUse Anglo-Saxon Accountingstock_account
avatax_category_idmany2one product.avatax.categoryaccount_avataxE
child_idone2many product.categoryChild Categoriesproduct
company_idmany2one res.companyproduct
complete_namecharComplete Nameproduct
filter_for_stock_putaway_rulebooleanstock.putaway.rulestock
namecharNameproduct
packaging_reserve_methodselectionReserve Packagingsstock
parent_idmany2one product.categoryParent Categoryproduct
parent_pathcharproduct
parent_route_idsmany2many stock.routeParent Routesstock
product_countinteger# Productsproduct
product_properties_definitionproperties_definitionProduct Propertiesproduct
property_account_billed_not_received_activebooleanBilled Not Received Account Activepurchase
property_account_billed_not_received_idmany2one account.accountBilled Not Received Accountpurchase
property_account_bills_to_receive_activebooleanBills to Receive Account Activepurchase
property_account_bills_to_receive_idmany2one account.accountBills to Receive Accountpurchase
property_account_creditor_price_difference_categmany2one account.accountPrice Difference Accountpurchase_stock
property_account_downpayment_categ_idmany2one account.accountDownpayment Accountsale
property_account_expense_categ_idmany2one account.accountExpense Accountaccount
property_account_income_categ_idmany2one account.accountIncome Accountaccount
property_account_invoiced_not_delivered_activebooleanInvoiced Not Delivered Account Activesale
property_account_invoiced_not_delivered_idmany2one account.accountInvoiced Not Delivered Accountsale
property_account_invoices_to_issue_activebooleanInvoices to be Issued Account Activesale
property_account_invoices_to_issue_idmany2one account.accountInvoices to be Issued Accountsale
property_cost_methodselectionCosting Methodaccount
property_price_difference_account_activebooleanPrice Difference Account Activeaccount
property_price_difference_account_idmany2one account.accountPrice Difference Accountaccount
property_stock_account_input_categ_idmany2one account.accountStock Input Accountstock_account
property_stock_account_output_categ_idmany2one account.accountStock Output Accountstock_account
property_stock_account_production_cost_idmany2one account.accountProduction Accountmrp_account
property_stock_journalmany2one account.journalStock Journalaccount
property_stock_valuation_account_activebooleanStock Valuation Account Activeaccount
property_stock_valuation_account_idmany2one account.accountStock Valuation Accountaccount
property_valuationselectionInventory Valuationaccount
putaway_rule_idsone2many stock.putaway.rulePutaway Rulesstock
removal_strategy_idmany2one product.removalForce Removal Strategystock
route_idsmany2many stock.routeRoutesstock
total_route_idsmany2many stock.routeTotal routesstock
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.