eCommerce product assortment

website_sale_product_assortment
REPOSITORY
REPOSITORYOCA/e-commerce
GIT
GIThttps://github.com/OCA/e-commerce.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/e-commerce/tree/18.0/website_sale_product_assortment
VERSION
VERSION 1.1.0
CATEGORY
CATEGORYWebsite
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSOCA-git-bot, oca-ci, CarlosRoca13
WEBSITE
WEBSITEhttps://github.com/OCA/e-commerce
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:09
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/product-attribute:
    - product_assortment
odoo/odoo:
    - base
    - product
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
    - uom
    - website_sale
    - website
    - digest
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
    - social_media
    - google_recaptcha
    - utm
    - sale
    - sales_team
    - account_payment
    - account
    - onboarding
    - analytic
    - payment
    - website_payment
    - website_mail
    - portal_rating
    - rating
    - delivery
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES geoip2
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module allows to set e-commerce restrictions on product
assortments.

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
product product ir.ui.view qweb Inherits website_sale.product
product_assortment_view_form ir.filters xpath Inherits product_assortment.product_assortment_view_form
Models touched (2)

New fields (6)
  • all_product_ids Many2many → product.product
    comodel_name='product.product' compute='_compute_all_product_ids' relation='assortment_all_products'
  • apply_on_public_user Boolean
  • assortment_information Html
  • message_unavailable Char
    help="Message showed when some product is not available and the option\n 'Avoid selling not available products' is selected.\n " string='Message when unavailable'
  • website_availability Selection
    default='no_restriction' help="\n Each point is used to:\n\n \t- Don't apply restriction: Show all products available for sale on website.\n\n \t- Avoid to show non available products: Show only products available for sale\n on website.\n\n \t- Avoid selling not available products: Show all products, but avoid\n purchase on website.\n\n " required=True selection=[('no_restriction', "Don't apply restriction"), ('no_show', 'Avoid to show non available products'), ('no_purchase', 'Avoid selling not available products')] string='Availability on Website'
  • website_ids Many2many → website
    comodel_name='website' ondelete='cascade' string='Websites'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • get_product_assortment_restriction_info(self, product_ids)
    @api.model
REPOSITORY
REPOSITORYOCA/e-commerce
GIT
GIThttps://github.com/OCA/e-commerce.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/e-commerce/tree/16.0/website_sale_product_assortment
VERSION
VERSION 1.1.2
CATEGORY
CATEGORYWebsite
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSOCA-git-bot, Simone Rubino, oca-ci, pilarvargas-tecnativa, Pablo Calvo Espinar, Kimkhoi3010
WEBSITE
WEBSITEhttps://github.com/OCA/e-commerce
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:42
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/product-attribute:
    - product_assortment
odoo/odoo:
    - base
    - product
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - website_sale
    - website
    - digest
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
    - social_media
    - google_recaptcha
    - utm
    - sale
    - sales_team
    - account_payment
    - account
    - analytic
    - payment
    - website_payment
    - website_mail
    - portal_rating
    - rating
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
product product ir.ui.view qweb Inherits website_sale.product
product_assortment_view_form ir.filters xpath Inherits product_assortment.product_assortment_view_form
Models touched (2)

New fields (6)
  • all_product_ids Many2many → product.product
    comodel_name='product.product' compute='_compute_all_product_ids' relation='assortment_all_products'
  • apply_on_public_user Boolean
  • assortment_information Html
  • message_unavailable Char
    help="Message showed when some product is not available and the option\n 'Avoid selling not available products' is selected.\n " string='Message when unavailable'
  • website_availability Selection
    default='no_restriction' help="\n Each point is used to:\n\n \t- Don't apply restriction: Show all products available for sale on website.\n\n \t- Avoid to show non available products: Show only products available for sale\n on website.\n\n \t- Avoid selling not available products: Show all products, but avoid\n purchase on website.\n\n " required=True selection=[('no_restriction', "Don't apply restriction"), ('no_show', 'Avoid to show non available products'), ('no_purchase', 'Avoid selling not available products')] string='Availability on Website'
  • website_ids Many2many → website
    comodel_name='website' ondelete='cascade' string='Websites'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • get_product_assortment_restriction_info(self, product_ids)
    @api.model
REPOSITORY
REPOSITORYOCA/e-commerce
GIT
GIThttps://github.com/OCA/e-commerce.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/e-commerce/tree/15.0/website_sale_product_assortment
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYWebsite
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, Stefan
WEBSITE
WEBSITEhttps://github.com/OCA/e-commerce
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:46:31
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/product-attribute:
    - product_assortment
odoo/odoo:
    - base
    - product
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - website_sale
    - website
    - digest
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
    - social_media
    - google_recaptcha
    - utm
    - sale
    - sales_team
    - payment
    - account
    - analytic
    - website_payment
    - website_mail
    - portal_rating
    - rating
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
product product ir.ui.view qweb Inherits website_sale.product
product_assortment_view_form ir.filters xpath Inherits product_assortment.product_assortment_view_form
Models touched (2)

New fields (6)
  • all_product_ids Many2many → product.product
    comodel_name='product.product' compute='_compute_all_product_ids' relation='assortment_all_products'
  • apply_on_public_user Boolean
  • assortment_information Html
  • message_unavailable Char
    help="Message showed when some product is not available and the option\n 'Avoid selling not available products' is selected.\n " string='Message when unavailable'
  • website_availability Selection
    default='no_restriction' help="\n Each point is used to:\n\n \t- Don't apply restriction: Show all products available for sale on website.\n\n \t- Avoid to show non available products: Show only products available for sale\n on website.\n\n \t- Avoid selling not available products: Show all products, but avoid\n purchase on website.\n\n " required=True selection=[('no_restriction', "Don't apply restriction"), ('no_show', 'Avoid to show non available products'), ('no_purchase', 'Avoid selling not available products')] string='Availability on Website'
  • website_ids Many2many → website
    comodel_name='website' ondelete='cascade' string='Websites'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • get_product_assortment_restriction_info(self, product_ids)
    @api.model
REPOSITORY
REPOSITORYOCA/e-commerce
GIT
GIThttps://github.com/OCA/e-commerce.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/e-commerce/tree/14.0/website_sale_product_assortment
VERSION
VERSION 1.0.2
CATEGORY
CATEGORYWebsite
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSOCA Transbot, oca-travis, Weblate, OCA-git-bot, Alessandro Uffreduzzi, Ashish Hirpara, Alessio Renda
WEBSITE
WEBSITEhttps://github.com/OCA/e-commerce
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:40:52
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/product-attribute:
    - product_assortment
odoo/odoo:
    - base
    - product
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - website_sale
    - website
    - digest
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
    - social_media
    - sale
    - sales_team
    - payment
    - account
    - analytic
    - utm
    - website_payment
    - website_mail
    - website_form
    - google_recaptcha
    - portal_rating
    - rating
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
assets_frontend assets_frontend ir.ui.view qweb Inherits website.assets_frontend
assets_tests assets_tests ir.ui.view qweb Inherits website.assets_tests
product product ir.ui.view qweb Inherits website_sale.product
product_assortment_view_form ir.filters xpath Inherits product_assortment.product_assortment_view_form
Models touched (2)

New fields (6)
  • all_product_ids Many2many → product.product
    comodel_name='product.product' compute='_compute_all_product_ids' relation='assortment_all_products'
  • apply_on_public_user Boolean
  • assortment_information Html
  • message_unavailable Char
    help="Message showed when some product is not available and the option\n 'Avoid selling not available products' is selected.\n " string='Message when unavailable'
  • website_availability Selection
    default='no_restriction' help="\n Each point is used to:\n\n \t- Don't apply restriction: Show all products available for sale on website.\n\n \t- Avoid to show non available products: Show only products available for sale\n on website.\n\n \t- Avoid selling not available products: Show all products, but avoid\n purchase on website.\n\n " required=True selection=[('no_restriction', "Don't apply restriction"), ('no_show', 'Avoid to show non available products'), ('no_purchase', 'Avoid selling not available products')] string='Availability on Website'
  • website_ids Many2many → website
    comodel_name='website' ondelete='cascade' string='Websites'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • get_product_assortment_restriction_info(self, product_ids)
    @api.model
REPOSITORY
REPOSITORYOCA/e-commerce
GIT
GIThttps://github.com/OCA/e-commerce.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/e-commerce/tree/13.0/website_sale_product_assortment
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYWebsite
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, CarlosRoca13
WEBSITE
WEBSITEhttps://github.com/OCA/e-commerce
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:34:10
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/product-attribute:
    - product_assortment
odoo/odoo:
    - base
    - product
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - website_sale
    - website
    - web_editor
    - http_routing
    - portal
    - auth_signup
    - social_media
    - sale
    - sales_team
    - payment
    - account
    - analytic
    - digest
    - resource
    - utm
    - website_payment
    - website_mail
    - website_form
    - website_rating
    - rating
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
assets_frontend assets_frontend ir.ui.view qweb Inherits website.assets_frontend
assets_tests assets_tests ir.ui.view qweb Inherits website.assets_tests
product product ir.ui.view qweb Inherits website_sale.product
product_assortment_view_form ir.filters xpath Inherits product_assortment.product_assortment_view_form
Models touched (2)

New fields (6)
  • all_product_ids Many2many → product.product
    comodel_name='product.product' compute='_compute_all_product_ids' relation='assortment_all_products'
  • apply_on_public_user Boolean
  • assortment_information Html
  • message_unavailable Char
    help="Message showed when some product is not available and the option\n 'Avoid selling not available products' is selected.\n " string='Message when unavailable'
  • website_availability Selection
    default='no_restriction' help="\n Each point is used to:\n\n \t- Don't apply restriction: Show all products available for sale on website.\n\n \t- Avoid to show non available products: Show only products available for sale\n on website.\n\n \t- Avoid selling not available products: Show all products, but avoid\n purchase on website.\n\n " required=True selection=[('no_restriction', "Don't apply restriction"), ('no_show', 'Avoid to show non available products'), ('no_purchase', 'Avoid selling not available products')] string='Availability on Website'
  • website_ids Many2many → website
    comodel_name='website' ondelete='cascade' string='Websites'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • get_product_assortment_restriction_info(self, product_ids)
    @api.model
STATUS
STATUSOpen migration PR - not merged yet for this version
REPOSITORY
REPOSITORYOCA/e-commerce
PULL REQUEST
PULL REQUEST[MIG] [17.0] Migration: website_sale_product_assortment (#1171)