Product Harmonized System Codes

product_harmonized_system
REPOSITORY
REPOSITORYOCA/intrastat-extrastat
GIT
GIThttps://github.com/OCA/intrastat-extrastat.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/intrastat-extrastat/tree/19.0/product_harmonized_system
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYReporting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Noviat, Akretion, brain-tec AG
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Noviat, Akretion, brain-tec AG
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, alvaroGC-S73
WEBSITE
WEBSITEhttps://github.com/OCA/intrastat-extrastat
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:40:51
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
    - uom
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module contains the objects for Harmonised System Codes (H.S.
codes). The full nomenclature is available from the World Customs
Organisation \<http://www.wcoomd.org/\>. These codes are usually
required on the Proforma invoices that are attached to the packages that
are shipped abroad.

This module also handles the local/national extensions to the H.S.
codes. The import of the full nomenclature is not provided by this
module; it should be provided by localization modules.

You will also be able to configure the *country of origin* of a product,
which is often required on the proforma invoice for the customs.

This module should be usefull for all companies that export physical
goods abroad. This module is also used by the Intrastat modules for the
European Union, cf the *intrastat_product* module.

Code Analysis

Views touched (6)
XML IDNameModelTypeStatus
hs_code_view_form hs.code.form hs.code form New
hs_code_view_search hs.code.search hs.code search New
hs_code_view_tree hs.code.list hs.code list New
product_category_form_view hs_code.product.category.form product.category group Inherits product.product_category_form_view
product_template_form_view hs_code.product.template.form product.template group Inherits product.product_template_form_view
product_template_search_view product.template xpath Inherits product.product_template_search_view
Models touched (4)

New fields (10)
  • active Boolean
    default=True
  • company_id Many2one → res.company
    default=<expr> string='Company' args: 'res.company'
  • description Char
    help='Short text description of the H.S. Code' translate=True
  • hs_code Char
    compute='_compute_hs_code' help='Harmonized System code (6 digits). Full list is available from the World Customs Organisation, see http://www.wcoomd.org' precompute=True store=True string='H.S. Code'
  • local_code Char
    help='Code used for the national Import/Export declaration. The national code starts with the 6 digits of the H.S. and often has a few additional digits to extend the H.S. code.' required=True
  • long_description Text
    help='Detailed text description of the H.S. Code. This can be, for example, the official description of this code as defined in the Harmonized System nomenclature.' string='Detailed Description' translate=True
  • product_categ_count Integer
    compute='_compute_product_categ_count'
  • product_categ_ids One2many → product.category
    comodel_name='product.category' inverse_name='hs_code_id' readonly=True string='Product Categories'
  • product_tmpl_count Integer
    compute='_compute_product_tmpl_count'
  • product_tmpl_ids One2many → product.template
    comodel_name='product.template' inverse_name='hs_code_id' readonly=True string='Products'
Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
  • write(self, vals)

New fields (1)
  • hs_code_id Many2one → hs.code
    help='Harmonised System Code. If this code is not set on the product itself, it will be read here, on the related product category.' ondelete='restrict' string='H.S. Code' args: 'hs.code'
Public methods (1)
  • get_hs_code_recursively(self)

New fields (0)

No new fields.

Public methods (1)
  • get_hs_code_recursively(self)

New fields (2)
  • hs_code_id Many2one → hs.code
    help='Harmonised System Code. Nomenclature is available from the World Customs Organisation, see http://www.wcoomd.org/. You can leave this field empty and configure the H.S. code on the product category.' ondelete='restrict' string='H.S. Code' args: 'hs.code'
  • origin_country_id Many2one → res.country
    comodel_name='res.country' help="Country of origin of the product i.e. product 'made in ____'." string='Country of Origin'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/intrastat-extrastat
GIT
GIThttps://github.com/OCA/intrastat-extrastat.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/intrastat-extrastat/tree/18.0/product_harmonized_system
VERSION
VERSION 1.2.0
CATEGORY
CATEGORYReporting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Noviat, Akretion, brain-tec AG
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Noviat, Akretion, brain-tec AG
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, ArnauCForgeFlow, Olivier Nibart, Lukas Tran
WEBSITE
WEBSITEhttps://github.com/OCA/intrastat-extrastat
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:20
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
    - uom
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module contains the objects for Harmonised System Codes (H.S.
codes). The full nomenclature is available from the World Customs
Organisation \<http://www.wcoomd.org/\>. These codes are usually
required on the Proforma invoices that are attached to the packages that
are shipped abroad.

This module also handles the local/national extensions to the H.S.
codes. The import of the full nomenclature is not provided by this
module; it should be provided by localization modules.

You will also be able to configure the *country of origin* of a product,
which is often required on the proforma invoice for the customs.

This module should be usefull for all companies that export physical
goods abroad. This module is also used by the Intrastat modules for the
European Union, cf the *intrastat_product* module.

Code Analysis

Views touched (6)
XML IDNameModelTypeStatus
hs_code_view_form hs.code.form hs.code form New
hs_code_view_search hs.code.search hs.code search New
hs_code_view_tree hs.code.list hs.code list New
product_category_form_view hs_code.product.category.form product.category group Inherits product.product_category_form_view
product_template_form_view hs_code.product.template.form product.template group Inherits product.product_template_form_view
product_template_search_view product.template filter Inherits product.product_template_search_view
Models touched (4)

New fields (10)
  • active Boolean
    default=True
  • company_id Many2one → res.company
    default=<expr> string='Company' args: 'res.company'
  • description Char
    help='Short text description of the H.S. Code' translate=True
  • hs_code Char
    compute='_compute_hs_code' help='Harmonized System code (6 digits). Full list is available from the World Customs Organisation, see http://www.wcoomd.org' precompute=True store=True string='H.S. Code'
  • local_code Char
    help='Code used for the national Import/Export declaration. The national code starts with the 6 digits of the H.S. and often has a few additional digits to extend the H.S. code.' required=True
  • long_description Text
    help='Detailed text description of the H.S. Code. This can be, for example, the official description of this code as defined in the Harmonized System nomenclature.' string='Detailed Description' translate=True
  • product_categ_count Integer
    compute='_compute_product_categ_count'
  • product_categ_ids One2many → product.category
    comodel_name='product.category' inverse_name='hs_code_id' readonly=True string='Product Categories'
  • product_tmpl_count Integer
    compute='_compute_product_tmpl_count'
  • product_tmpl_ids One2many → product.template
    comodel_name='product.template' inverse_name='hs_code_id' readonly=True string='Products'
Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
  • write(self, vals)

New fields (1)
  • hs_code_id Many2one → hs.code
    help='Harmonised System Code. If this code is not set on the product itself, it will be read here, on the related product category.' ondelete='restrict' string='H.S. Code' args: 'hs.code'
Public methods (1)
  • get_hs_code_recursively(self)

New fields (0)

No new fields.

Public methods (1)
  • get_hs_code_recursively(self)

New fields (2)
  • hs_code_id Many2one → hs.code
    help='Harmonised System Code. Nomenclature is available from the World Customs Organisation, see http://www.wcoomd.org/. You can leave this field empty and configure the H.S. code on the product category.' ondelete='restrict' string='H.S. Code' args: 'hs.code'
  • origin_country_id Many2one → res.country
    comodel_name='res.country' help="Country of origin of the product i.e. product 'made in ____'." string='Country of Origin'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/intrastat-extrastat
GIT
GIThttps://github.com/OCA/intrastat-extrastat.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/intrastat-extrastat/tree/17.0/product_harmonized_system
VERSION
VERSION 1.2.0
CATEGORY
CATEGORYReporting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Noviat, Akretion, brain-tec AG
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Noviat, Akretion, brain-tec AG
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, Andreu Orensanz
WEBSITE
WEBSITEhttps://github.com/OCA/intrastat-extrastat
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:20:11
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module contains the objects for Harmonised System Codes (H.S.
codes). The full nomenclature is available from the World Customs
Organisation \<http://www.wcoomd.org/\>. These codes are usually
required on the Proforma invoices that are attached to the packages that
are shipped abroad.

This module also handles the local/national extensions to the H.S.
codes. The import of the full nomenclature is not provided by this
module; it should be provided by localization modules.

You will also be able to configure the *country of origin* of a product,
which is often required on the proforma invoice for the customs.

This module should be usefull for all companies that export physical
goods abroad. This module is also used by the Intrastat modules for the
European Union, cf the *intrastat_product* module.

Code Analysis

Views touched (6)
XML IDNameModelTypeStatus
hs_code_view_form hs.code.form hs.code form New
hs_code_view_search hs.code.search hs.code search New
hs_code_view_tree hs.code.tree hs.code tree New
product_category_form_view hs_code.product.category.form product.category group Inherits product.product_category_form_view
product_template_form_view hs_code.product.template.form product.template group Inherits product.product_template_form_view
product_template_search_view product.template filter Inherits product.product_template_search_view
Models touched (4)

New fields (9)
  • active Boolean
    default=True
  • company_id Many2one → res.company
    default=<expr> string='Company' args: 'res.company'
  • description Char
    help='Short text description of the H.S. category' translate=True
  • hs_code Char
    compute='_compute_hs_code' help='Harmonized System code (6 digits). Full list is available from the World Customs Organisation, see http://www.wcoomd.org' precompute=True store=True string='H.S. Code'
  • local_code Char
    help='Code used for the national Import/Export declaration. The national code starts with the 6 digits of the H.S. and often has a few additional digits to extend the H.S. code.' required=True
  • product_categ_count Integer
    compute='_compute_product_categ_count'
  • product_categ_ids One2many → product.category
    comodel_name='product.category' inverse_name='hs_code_id' readonly=True string='Product Categories'
  • product_tmpl_count Integer
    compute='_compute_product_tmpl_count'
  • product_tmpl_ids One2many → product.template
    comodel_name='product.template' inverse_name='hs_code_id' readonly=True string='Products'
Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
  • write(self, vals)

New fields (1)
  • hs_code_id Many2one → hs.code
    help='Harmonised System Code. If this code is not set on the product itself, it will be read here, on the related product category.' ondelete='restrict' string='H.S. Code' args: 'hs.code'
Public methods (1)
  • get_hs_code_recursively(self)

New fields (0)

No new fields.

Public methods (1)
  • get_hs_code_recursively(self)

New fields (2)
  • hs_code_id Many2one → hs.code
    help='Harmonised System Code. Nomenclature is available from the World Customs Organisation, see http://www.wcoomd.org/. You can leave this field empty and configure the H.S. code on the product category.' ondelete='restrict' string='H.S. Code' args: 'hs.code'
  • origin_country_id Many2one → res.country
    comodel_name='res.country' help="Country of origin of the product i.e. product 'made in ____'." string='Country of Origin'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/intrastat-extrastat
GIT
GIThttps://github.com/OCA/intrastat-extrastat.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/intrastat-extrastat/tree/16.0/product_harmonized_system
VERSION
VERSION 2.0.1
CATEGORY
CATEGORYReporting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Noviat, Akretion, brain-tec AG
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Noviat, Akretion, brain-tec AG
COMMITTERS
COMMITTERSAlexis de Lattre, Víctor Martínez, Weblate, OCA-git-bot, oca-ci, juancarlosonate-tecnativa
WEBSITE
WEBSITEhttps://github.com/OCA/intrastat-extrastat
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:54:00
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (6)
XML IDNameModelTypeStatus
hs_code_view_form hs.code.form hs.code form New
hs_code_view_search hs.code.search hs.code search New
hs_code_view_tree hs.code.tree hs.code tree New
product_category_form_view hs_code.product.category.form product.category group Inherits product.product_category_form_view
product_template_form_view hs_code.product.template.form product.template group Inherits product.product_template_form_view
product_template_search_view product.template filter Inherits product.product_template_search_view
Models touched (4)

New fields (8)
  • active Boolean
    default=True
  • description Char
    help='Short text description of the H.S. category' translate=True
  • hs_code Char
    compute='_compute_hs_code' help='Harmonized System code (6 digits). Full list is available from the World Customs Organisation, see http://www.wcoomd.org' precompute=True store=True string='H.S. Code'
  • local_code Char
    help='Code used for the national Import/Export declaration. The national code starts with the 6 digits of the H.S. and often has a few additional digits to extend the H.S. code.' required=True
  • product_categ_count Integer
    compute='_compute_product_categ_count'
  • product_categ_ids One2many → product.category
    comodel_name='product.category' inverse_name='hs_code_id' readonly=True string='Product Categories'
  • product_tmpl_count Integer
    compute='_compute_product_tmpl_count'
  • product_tmpl_ids One2many → product.template
    comodel_name='product.template' inverse_name='hs_code_id' readonly=True string='Products'
Public methods (3)
  • create(self, vals_list)
    @api.model_create_multi
  • name_get(self)
    @api.depends('local_code', 'description')
  • write(self, vals)

New fields (1)
  • hs_code_id Many2one → hs.code
    help='Harmonised System Code. If this code is not set on the product itself, it will be read here, on the related product category.' ondelete='restrict' string='H.S. Code' args: 'hs.code'
Public methods (1)
  • get_hs_code_recursively(self)

New fields (0)

No new fields.

Public methods (1)
  • get_hs_code_recursively(self)

New fields (2)
  • hs_code_id Many2one → hs.code
    help='Harmonised System Code. Nomenclature is available from the World Customs Organisation, see http://www.wcoomd.org/. You can leave this field empty and configure the H.S. code on the product category.' ondelete='restrict' string='H.S. Code' args: 'hs.code'
  • origin_country_id Many2one → res.country
    comodel_name='res.country' help="Country of origin of the product i.e. product 'made in ____'." string='Country of Origin'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/intrastat-extrastat
GIT
GIThttps://github.com/OCA/intrastat-extrastat.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/intrastat-extrastat/tree/15.0/product_harmonized_system
VERSION
VERSION 1.1.0
CATEGORY
CATEGORYReporting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Noviat, Akretion, brain-tec AG
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Noviat, Akretion, brain-tec AG
COMMITTERS
COMMITTERSVíctor Martínez, Weblate, OCA-git-bot, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/intrastat-extrastat
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:46:43
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (6)
XML IDNameModelTypeStatus
hs_code_view_form hs.code.form hs.code form New
hs_code_view_search hs.code.search hs.code search New
hs_code_view_tree hs.code.tree hs.code tree New
product_category_form_view hs_code.product.category.form product.category xpath Inherits product.product_category_form_view
product_template_form_view hs_code.product.template.form product.template field Inherits product.product_template_form_view
product_template_search_view product.template filter Inherits product.product_template_search_view
Models touched (4)

New fields (9)
  • active Boolean
    default=True
  • company_id Many2one → res.company
    default=<expr> string='Company' args: 'res.company'
  • description Char
    help='Short text description of the H.S. category' translate=True
  • hs_code Char
    compute='_compute_hs_code' help='Harmonized System code (6 digits). Full list is available from the World Customs Organisation, see http://www.wcoomd.org' readonly=True string='H.S. Code'
  • local_code Char
    help='Code used for the national Import/Export declaration. The national code starts with the 6 digits of the H.S. and often has a few additional digits to extend the H.S. code.' required=True
  • product_categ_count Integer
    compute='_compute_product_categ_count'
  • product_categ_ids One2many → product.category
    comodel_name='product.category' inverse_name='hs_code_id' readonly=True string='Product Categories'
  • product_tmpl_count Integer
    compute='_compute_product_tmpl_count'
  • product_tmpl_ids One2many → product.template
    comodel_name='product.template' inverse_name='hs_code_id' readonly=True string='Products'
Public methods (3)
  • create(self, vals)
    @api.model
  • name_get(self)
    @api.depends('local_code', 'description')
  • write(self, vals)

New fields (1)
  • hs_code_id Many2one → hs.code
    help='Harmonised System Code. If this code is not set on the product itself, it will be read here, on the related product category.' ondelete='restrict' string='H.S. Code' args: 'hs.code'
Public methods (1)
  • get_hs_code_recursively(self)

New fields (0)

No new fields.

Public methods (1)
  • get_hs_code_recursively(self)

New fields (3)
  • hs_code_id Many2one → hs.code
    help='Harmonised System Code. Nomenclature is available from the World Customs Organisation, see http://www.wcoomd.org/. You can leave this field empty and configure the H.S. code on the product category.' ondelete='restrict' string='H.S. Code' args: 'hs.code'
  • origin_country_id Many2one → res.country
    comodel_name='res.country' help="Country of origin of the product i.e. product 'made in ____'." string='Country of Origin'
  • origin_state_id Many2one → res.country.state
    comodel_name='res.country.state' domain="[('country_id', '=?', origin_country_id)]" help="Country State of origin of the product.\nThis field is used for the Intrastat declaration, selecting one of the Northern Ireland counties will set the code 'XI' for products from the United Kingdom whereas code 'XU' will be used for the other UK counties." string='Country State of Origin'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/intrastat-extrastat
GIT
GIThttps://github.com/OCA/intrastat-extrastat.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/intrastat-extrastat/tree/14.0/product_harmonized_system
VERSION
VERSION 2.3.0
CATEGORY
CATEGORYReporting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Noviat, Akretion, brain-tec AG
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Noviat, Akretion, brain-tec AG
COMMITTERS
COMMITTERSAlexis de Lattre, Luc De Meyer, OCA Transbot, oca-travis, Weblate, OCA-git-bot, oca-ci, Yu Weng, Hai Lang
WEBSITE
WEBSITEhttps://github.com/OCA/intrastat-extrastat
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:41:12
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (6)
XML IDNameModelTypeStatus
hs_code_view_form hs.code.form hs.code form New
hs_code_view_search hs.code.search hs.code search New
hs_code_view_tree hs.code.tree hs.code tree New
product_category_form_view hs_code.product.category.form product.category xpath Inherits product.product_category_form_view
product_template_form_view hs_code.product.template.form product.template field Inherits product.product_template_form_view
product_template_search_view product.template filter Inherits product.product_template_search_view
Models touched (4)

New fields (9)
  • active Boolean
    default=True
  • company_id Many2one → res.company
    default=<expr> string='Company' args: 'res.company'
  • description Char
    help='Short text description of the H.S. category' translate=True
  • hs_code Char
    compute='_compute_hs_code' help='Harmonized System code (6 digits). Full list is available from the World Customs Organisation, see http://www.wcoomd.org' readonly=True string='H.S. Code'
  • local_code Char
    help='Code used for the national Import/Export declaration. The national code starts with the 6 digits of the H.S. and often has a few additional digits to extend the H.S. code.' required=True
  • product_categ_count Integer
    compute='_compute_product_categ_count'
  • product_categ_ids One2many → product.category
    comodel_name='product.category' inverse_name='hs_code_id' readonly=True string='Product Categories'
  • product_tmpl_count Integer
    compute='_compute_product_tmpl_count'
  • product_tmpl_ids One2many → product.template
    comodel_name='product.template' inverse_name='hs_code_id' readonly=True string='Products'
Public methods (3)
  • create(self, vals)
    @api.model
  • name_get(self)
    @api.depends('local_code', 'description')
  • write(self, vals)

New fields (1)
  • hs_code_id Many2one → hs.code
    company_dependent=False help='Harmonised System Code. If this code is not set on the product itself, it will be read here, on the related product category.' ondelete='restrict' string='H.S. Code' args: 'hs.code'
Public methods (1)
  • get_hs_code_recursively(self)

New fields (0)

No new fields.

Public methods (1)
  • get_hs_code_recursively(self)

New fields (3)
  • hs_code_id Many2one → hs.code
    company_dependent=False help='Harmonised System Code. Nomenclature is available from the World Customs Organisation, see http://www.wcoomd.org/. You can leave this field empty and configure the H.S. code on the product category.' ondelete='restrict' string='H.S. Code' args: 'hs.code'
  • origin_country_id Many2one → res.country
    comodel_name='res.country' help="Country of origin of the product i.e. product 'made in ____'." string='Country of Origin'
  • origin_state_id Many2one → res.country.state
    comodel_name='res.country.state' domain="[('country_id', '=?', origin_country_id)]" help="Country State of origin of the product.\nThis field is used for the Intrastat declaration, selecting one of the Northern Ireland counties will set the code 'XI' for products from the United Kingdom whereas code 'XU' will be used for the other UK counties." string='Country State of Origin'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/intrastat-extrastat
GIT
GIThttps://github.com/OCA/intrastat-extrastat.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/intrastat-extrastat/tree/13.0/product_harmonized_system
VERSION
VERSION 2.0.0
CATEGORY
CATEGORYReporting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Noviat, Akretion, brain-tec AG
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Noviat, Akretion, brain-tec AG
COMMITTERS
COMMITTERSAlexis de Lattre, Pedro M. Baeza, Luc De Meyer, OCA Transbot, Víctor Martínez, oca-travis, OCA-git-bot, Adrià Gil Sorribes, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/intrastat-extrastat
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:34:20
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
hs_code_view_form hs.code.form hs.code form New
hs_code_view_search hs.code.search hs.code search New
hs_code_view_tree hs.code.tree hs.code tree New
product_category_form_view hs_code.product.category.form product.category xpath Inherits product.product_category_form_view
product_template_form_view hs_code.product.template.form product.template field Inherits product.product_template_form_view
Models touched (4)

New fields (9)
  • active Boolean
    default=True
  • company_id Many2one → res.company
    default=<expr> string='Company' args: 'res.company'
  • description Char
    help='Short text description of the H.S. category' translate=True
  • hs_code Char
    compute='_compute_hs_code' help='Harmonized System code (6 digits). Full list is available from the World Customs Organisation, see http://www.wcoomd.org' readonly=True string='H.S. Code'
  • local_code Char
    help='Code used for the national Import/Export declaration. The national code starts with the 6 digits of the H.S. and often has a few additional digits to extend the H.S. code.' required=True
  • product_categ_count Integer
    compute='_compute_product_categ_count'
  • product_categ_ids One2many → product.category
    comodel_name='product.category' inverse_name='hs_code_id' readonly=True string='Product Categories'
  • product_tmpl_count Integer
    compute='_compute_product_tmpl_count'
  • product_tmpl_ids One2many → product.template
    comodel_name='product.template' inverse_name='hs_code_id' readonly=True string='Products'
Public methods (3)
  • create(self, vals)
    @api.model
  • name_get(self)
    @api.depends('local_code', 'description')
  • write(self, vals)

New fields (1)
  • hs_code_id Many2one → hs.code
    company_dependent=True help='Harmonised System Code. If this code is not set on the product itself, it will be read here, on the related product category.' ondelete='restrict' string='H.S. Code' args: 'hs.code'
Public methods (1)
  • get_hs_code_recursively(self)

New fields (0)

No new fields.

Public methods (1)
  • get_hs_code_recursively(self)

New fields (3)
  • hs_code_id Many2one → hs.code
    company_dependent=True help='Harmonised System Code. Nomenclature is available from the World Customs Organisation, see http://www.wcoomd.org/. You can leave this field empty and configure the H.S. code on the product category.' ondelete='restrict' string='H.S. Code' args: 'hs.code'
  • origin_country_id Many2one → res.country
    comodel_name='res.country' help="Country of origin of the product i.e. product 'made in ____'." string='Country of Origin'
  • origin_state_id Many2one → res.country.state
    comodel_name='res.country.state' domain="[('country_id', '=?', origin_country_id)]" help="Country State of origin of the product.\nThis field is used for the Intrastat declaration, selecting one of the Northern Ireland counties will set the code 'XI' for products from the United Kingdom whereas code 'XU' will be used for the other UK counties." string='Country State of Origin'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/intrastat-extrastat
GIT
GIThttps://github.com/OCA/intrastat-extrastat.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/intrastat-extrastat/tree/12.0/product_harmonized_system
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYReporting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Noviat, Akretion, brain-tec AG
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Noviat, Akretion, brain-tec AG
COMMITTERS
COMMITTERSAlexis de Lattre, Stéphane Bidoul (ACSONE), Luc De Meyer, OCA Transbot, oca-travis, Weblate, OCA-git-bot
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:29:25
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - product
    - base
    - decimal_precision
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
hs_code_view_form hs.code.form hs.code form New
hs_code_view_search hs.code.search hs.code search New
hs_code_view_tree hs.code.tree hs.code tree New
product_category_form_view hs_code.product.category.form product.category xpath Inherits product.product_category_form_view
product_template_form_view hs_code.product.template.form product.template field Inherits product.product_template_form_view
Models touched (4)

New fields (9)
  • active Boolean
    default=True
  • company_id Many2one → res.company
    default=<expr> readonly=True required=True string='Company' args: 'res.company'
  • description Char
    help='Short text description of the H.S. category' translate=True
  • hs_code Char
    compute='_compute_hs_code' help='Harmonized System code (6 digits). Full list is available from the World Customs Organisation, see http://www.wcoomd.org' readonly=True string='H.S. Code'
  • local_code Char
    help='Code used for the national Import/Export declaration. The national code starts with the 6 digits of the H.S. and often has a few additional digits to extend the H.S. code.' required=True
  • product_categ_count Integer
    compute='_compute_product_categ_count'
  • product_categ_ids One2many → product.category
    comodel_name='product.category' inverse_name='hs_code_id' readonly=True string='Product Categories'
  • product_tmpl_count Integer
    compute='_compute_product_tmpl_count'
  • product_tmpl_ids One2many → product.template
    comodel_name='product.template' inverse_name='hs_code_id' readonly=True string='Products'
Public methods (3)
  • create(self, vals)
    @api.model
  • name_get(self)
    @api.depends('local_code', 'description')
  • write(self, vals)

New fields (1)
  • hs_code_id Many2one → hs.code
    company_dependent=True help='Harmonised System Code. If this code is not set on the product itself, it will be read here, on the related product category.' ondelete='restrict' string='H.S. Code' args: 'hs.code'
Public methods (1)
  • get_hs_code_recursively(self)

New fields (0)

No new fields.

Public methods (1)
  • get_hs_code_recursively(self)

New fields (2)
  • hs_code_id Many2one → hs.code
    company_dependent=True help='Harmonised System Code. Nomenclature is available from the World Customs Organisation, see http://www.wcoomd.org/. You can leave this field empty and configure the H.S. code on the product category.' ondelete='restrict' string='H.S. Code' args: 'hs.code'
  • origin_country_id Many2one → res.country
    help="Country of origin of the product i.e. product 'made in ____'." string='Country of Origin' args: 'res.country'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/intrastat-extrastat
GIT
GIThttps://github.com/OCA/intrastat-extrastat.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/intrastat-extrastat/tree/11.0/product_harmonized_system
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYReporting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Noviat, Akretion, brain-tec AG
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Noviat, Akretion, brain-tec AG
COMMITTERS
COMMITTERSPedro M. Baeza, oca-travis, OCA-git-bot, Kumar Aberer
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:24:02
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - product
    - base
    - decimal_precision
    - mail
    - base_setup
    - web
    - bus
    - web_tour
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
hs_code_view_form hs.code.form hs.code form New
hs_code_view_search hs.code.search hs.code search New
hs_code_view_tree hs.code.tree hs.code tree New
product_category_form_view hs_code.product.category.form product.category xpath Inherits product.product_category_form_view
product_template_form_view hs_code.product.template.form product.template field Inherits product.product_template_form_view
Models touched (4)

New fields (8)
  • active Boolean
    default=True
  • company_id Many2one → res.company
    default=<expr> readonly=True required=True string='Company' args: 'res.company'
  • description Char
    help='Short text description of the H.S. category' translate=True
  • display_name Char
    compute='_compute_display_name_field' readonly=True store=True
  • hs_code Char
    compute='_compute_hs_code' help='Harmonized System code (6 digits). Full list is available from the World Customs Organisation, see http://www.wcoomd.org' readonly=True string='H.S. Code'
  • local_code Char
    help='Code used for the national Import/Export declaration. The national code starts with the 6 digits of the H.S. and often has a few additional digits to extend the H.S. code.' required=True
  • product_categ_ids One2many → product.category
    comodel_name='product.category' inverse_name='hs_code_id' readonly=True string='Product Categories'
  • product_tmpl_ids One2many → product.template
    comodel_name='product.template' inverse_name='hs_code_id' readonly=True string='Products'
Public methods (2)
  • create(self, vals)
    @api.model
  • write(self, vals)
    @api.multi

New fields (1)
  • hs_code_id Many2one → hs.code
    company_dependent=True help='Harmonised System Code. If this code is not set on the product itself, it will be read here, on the related product category.' ondelete='restrict' string='H.S. Code' args: 'hs.code'
Public methods (1)
  • get_hs_code_recursively(self)
    @api.multi

New fields (0)

No new fields.

Public methods (1)
  • get_hs_code_recursively(self)
    @api.multi

New fields (2)
  • hs_code_id Many2one → hs.code
    company_dependent=True help='Harmonised System Code. Nomenclature is available from the World Customs Organisation, see http://www.wcoomd.org/. You can leave this field empty and configure the H.S. code on the product category.' ondelete='restrict' string='H.S. Code' args: 'hs.code'
  • origin_country_id Many2one → res.country
    help="Country of origin of the product i.e. product 'made in ____'." string='Country of Origin' args: 'res.country'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/intrastat-extrastat
GIT
GIThttps://github.com/OCA/intrastat-extrastat.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/intrastat-extrastat/tree/10.0/product_harmonized_system
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYReporting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Noviat, Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Noviat, Akretion
COMMITTERS
COMMITTERSGitHub, Stéphane Bidoul (ACSONE), Luc De Meyer, OCA Transbot, David Beal, oca-travis, OCA-git-bot, Pierrick Brun, luc.demeyer@noviat.com
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:20:03
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - product
    - base
    - decimal_precision
    - mail
    - base_setup
    - web_kanban
    - web
    - bus
    - web_tour
    - report
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
hs_code_view_form hs.code.form hs.code form New
hs_code_view_search hs.code.search hs.code search New
hs_code_view_tree hs.code.tree hs.code tree New
product_category_form_view hs_code.product.category.form product.category xpath Inherits product.product_category_form_view
product_template_form_view hs_code.product.template.form product.template field Inherits product.product_template_form_view
Models touched (4)

New fields (8)
  • active Boolean
    default=True
  • company_id Many2one → res.company
    default=<expr> string='Company' args: 'res.company'
  • description Char
    help='Short text description of the H.S. category' translate=True args: 'Description'
  • display_name Char
    compute='_compute_display_name_field' readonly=True store=True string='Display Name'
  • hs_code Char
    compute='_compute_hs_code' help='Harmonized System code (6 digits). Full list is available from the World Customs Organisation, see http://www.wcoomd.org' readonly=True string='H.S. Code'
  • local_code Char
    help='Code used for the national Import/Export declaration. The national code starts with the 6 digits of the H.S. and often has a few additional digits to extend the H.S. code.' required=True string='Local Code'
  • product_categ_ids One2many → product.category
    comodel_name='product.category' inverse_name='hs_code_id' readonly=True string='Product Categories'
  • product_tmpl_ids One2many → product.template
    comodel_name='product.template' inverse_name='hs_code_id' readonly=True string='Products'
Public methods (2)
  • create(self, vals)
    @api.model
  • write(self, vals)
    @api.multi

New fields (1)
  • hs_code_id Many2one → hs.code
    company_dependent=True help='Harmonised System Code. If this code is not set on the product itself, it will be read here, on the related product category.' ondelete='restrict' string='H.S. Code' args: 'hs.code'
Public methods (1)
  • get_hs_code_recursively(self)
    @api.multi

New fields (0)

No new fields.

Public methods (1)
  • get_hs_code_recursively(self)
    @api.multi

New fields (2)
  • hs_code_id Many2one → hs.code
    company_dependent=True help='Harmonised System Code. Nomenclature is available from the World Customs Organisation, see http://www.wcoomd.org/. You can leave this field empty and configure the H.S. code on the product category.' ondelete='restrict' string='H.S. Code' args: 'hs.code'
  • origin_country_id Many2one → res.country
    help="Country of origin of the product i.e. product 'made in ____'." string='Country of Origin' args: 'res.country'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/intrastat-extrastat
GIT
GIThttps://github.com/OCA/intrastat-extrastat.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/intrastat-extrastat/tree/9.0/product_harmonized_system
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYReporting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Noviat, Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Noviat, Akretion
COMMITTERS
COMMITTERSAlexis de Lattre, Holger Brunn, Stéphane Bidoul (ACSONE), oca-travis, OCA-git-bot
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:15:25
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - product
    - base
    - decimal_precision
    - mail
    - base_setup
    - web_kanban
    - web
    - bus
    - report
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
hs_code_view_form hs.code.form hs.code form New
hs_code_view_search hs.code.search hs.code search New
hs_code_view_tree hs.code.tree hs.code tree New
product_category_form_view hs_code.product.category.form product.category xpath Inherits product.product_category_form_view
product_template_form_view hs_code.product.template.form product.template field Inherits product.product_template_form_view
Models touched (3)

New fields (8)
  • active Boolean
    default=True
  • company_id Many2one → res.company
    default=<expr> readonly=True required=True string='Company' args: 'res.company'
  • description Char
    help='Short text description of the H.S. category' translate=True args: 'Description'
  • display_name Char
    compute='_compute_display_name_field' readonly=True store=True string='Display Name'
  • hs_code Char
    compute='_compute_hs_code' help='Harmonized System code (6 digits). Full list is available from the World Customs Organisation, see http://www.wcoomd.org' readonly=True string='H.S. Code'
  • local_code Char
    help='Code used for the national Import/Export declaration. The national code starts with the 6 digits of the H.S. and often has a few additional digits to extend the H.S. code.' required=True string='Local Code'
  • product_categ_ids One2many → product.category
    string='Product Categories' args: 'product.category', 'hs_code_id'
  • product_tmpl_ids One2many → product.template
    string='Products' args: 'product.template', 'hs_code_id'
Public methods (2)
  • create(self, vals)
    @api.model
  • write(self, vals)
    @api.multi

New fields (1)
  • hs_code_id Many2one → hs.code
    company_dependent=True help='Harmonised System Code. If this code is not set on the product itself, it will be read here, on the related product category.' ondelete='restrict' string='H.S. Code' args: 'hs.code'
Public methods (1)
  • get_hs_code_recursively(self)
    @api.multi

New fields (2)
  • hs_code_id Many2one → hs.code
    company_dependent=True help='Harmonised System Code. Nomenclature is available from the World Customs Organisation, see http://www.wcoomd.org/. You can leave this field empty and configure the H.S. code on the product category.' ondelete='restrict' string='H.S. Code' args: 'hs.code'
  • origin_country_id Many2one → res.country
    help="Country of origin of the product i.e. product 'made in ____'." string='Country of Origin' args: 'res.country'
Public methods (1)
  • get_hs_code_recursively(self)
    @api.multi
REPOSITORY
REPOSITORYOCA/intrastat-extrastat
GIT
GIThttps://github.com/OCA/intrastat-extrastat.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/intrastat-extrastat/tree/8.0/product_harmonized_system
VERSION
VERSION 0.2.0
CATEGORY
CATEGORYReporting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Noviat, Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Noviat, Akretion
COMMITTERS
COMMITTERSAlexis de Lattre, Stéphane Bidoul (ACSONE), Sébastien BEAU, oca-travis, OCA-git-bot, Pierrick Brun
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:11:27
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - product
    - base
    - decimal_precision
    - mail
    - base_setup
    - web_kanban
    - web
    - report
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
hs_code_view_form hs.code.form hs.code form New
hs_code_view_search hs.code.search hs.code search New
hs_code_view_tree hs.code.tree hs.code tree New
product_category_form_view hs_code.product.category.form product.category xpath Inherits product.product_category_form_view
product_template_form_view hs_code.product.template.form product.template field Inherits product.product_template_form_view
Models touched (4)

New fields (8)
  • active Boolean
    default=True
  • company_id Many2one → res.company
    default=<expr> string='Company' args: 'res.company'
  • description Char
    help='Short text description of the H.S. category' translate=True args: 'Description'
  • display_name Char
    compute='_compute_display_name' readonly=True store=True string='Display Name'
  • hs_code Char
    compute='_compute_hs_code' help='Harmonized System code (6 digits). Full list is available from the World Customs Organisation, see http://www.wcoomd.org' readonly=True string='H.S. Code'
  • local_code Char
    help='Code used for the national Import/Export declaration. The national code starts with the 6 digits of the H.S. and often has a few additional digits to extend the H.S. code.' required=True string='Local Code'
  • product_categ_ids One2many → product.category
    string='Product Categories' args: 'product.category', 'hs_code_id'
  • product_tmpl_ids One2many → product.template
    string='Products' args: 'product.template', 'hs_code_id'
Public methods (2)
  • create(self, vals)
    @api.model
  • write(self, vals)
    @api.multi

New fields (1)
  • hs_code_id Many2one → hs.code
    company_dependent=True help='Harmonised System Code. If this code is not set on the product itself, it will be read here, on the related product category.' ondelete='restrict' string='H.S. Code' args: 'hs.code'
Public methods (1)
  • get_hs_code_recursively(self)
    @api.multi

New fields (0)

No new fields.

Public methods (1)
  • get_hs_code_recursively(self)
    @api.multi

New fields (2)
  • hs_code_id Many2one → hs.code
    company_dependent=True help='Harmonised System Code. Nomenclature is available from the World Customs Organisation, see http://www.wcoomd.org/. You can leave this field empty and configure the H.S. code on the product category.' ondelete='restrict' string='H.S. Code' args: 'hs.code'
  • origin_country_id Many2one → res.country
    help="Country of origin of the product i.e. product 'made in ____'." string='Country of Origin' args: 'res.country'
Public methods (0)

No public methods.