Website Sale Product Pack

website_sale_product_pack
REPOSITORY
REPOSITORYOCA/product-pack
GIT
GIThttps://github.com/OCA/product-pack.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/product-pack/tree/17.0/website_sale_product_pack
VERSION
VERSION 2.0.1
CATEGORY
CATEGORYE-Commerce
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSBruno Zanotti, Weblate, OCA-git-bot, Abraham Anes, oca-ci, augusto-weiss
WEBSITE
WEBSITEhttps://github.com/OCA/product-pack
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:20:10
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/product-pack:
    - sale_product_pack
    - product_pack
odoo/odoo:
    - website_sale
    - website
    - digest
    - mail
    - base
    - base_setup
    - web
    - bus
    - web_tour
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
    - social_media
    - google_recaptcha
    - utm
    - sale
    - sales_team
    - account_payment
    - account
    - onboarding
    - product
    - uom
    - 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 introduces compatibility of product packs with e-commerce:

- In the cart summary, the components aren't editable and are shown
  hanging from the main pack reference.
- When we remove a pack from the cart, their components are removed as
  well.
- The cart popup summary only shows the main pack line and discards the
  sublines in the units count.
- The cart summary shows the component lines hanging from the main one
  as well.
- It's ensured the the prices are shown correctly for the whole pack and
  that they're correctly summarized depending on the pack type.

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
cart_lines cart_lines ir.ui.view qweb Inherits website_sale.cart_lines
checkout_layout checkout_layout ir.ui.view qweb Inherits website_sale.checkout_layout
product_price product_price ir.ui.view qweb Inherits website_sale.product
Models touched (5)

New fields (0)

No new fields.

Public methods (1)
  • check_website_published(self)
    @api.constrains('pack_line_ids')

New fields (0)

No new fields.

Public methods (1)
  • check_website_published(self)
    @api.constrains('is_published')
    For keep the consistent and prevent bugs within the e-commerce, we force that all childs of a parent pack stay publish when the parent is published. Also if any of the childs of the parent pack became unpublish, we unpublish the parent.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • unlink(self)
    The website calls this method specifically. We want to get rid of the children lines so the user doesn't have to

New fields (0)

No new fields.

Public methods (1)
  • sale_get_order(self, force_create=False, update_pricelist=False)
    Communicate with product pack expansion method to check if it's necessary to expand the product pack lines or not via context
REPOSITORY
REPOSITORYOCA/product-pack
GIT
GIThttps://github.com/OCA/product-pack.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/product-pack/tree/16.0/website_sale_product_pack
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYE-Commerce
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, alvaro, docker-odoo
WEBSITE
WEBSITEhttps://github.com/OCA/product-pack
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:56
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/product-pack:
    - sale_product_pack
    - product_pack
odoo/odoo:
    - website_sale
    - website
    - digest
    - mail
    - base
    - base_setup
    - web
    - bus
    - web_tour
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
    - social_media
    - google_recaptcha
    - utm
    - sale
    - sales_team
    - account_payment
    - account
    - product
    - uom
    - 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 (4)
XML IDNameModelTypeStatus
cart_lines cart_lines ir.ui.view qweb Inherits website_sale.cart_lines
cart_popover cart_popover ir.ui.view qweb Inherits website_sale.cart_popover
cart_summary cart_summary ir.ui.view qweb Inherits website_sale.cart_summary
product_price product_price ir.ui.view qweb Inherits website_sale.product
Models touched (5)

New fields (0)

No new fields.

Public methods (1)
  • check_website_published(self)
    @api.constrains('pack_line_ids')

New fields (0)

No new fields.

Public methods (2)
  • check_website_published(self)
    @api.constrains('is_published')
    For keep the consistent and prevent bugs within the e-commerce, we force that all childs of a parent pack stay publish when the parent is published. Also if any of the childs of the parent pack became unpublish, we unpublish the parent.
  • price_compute(self, price_type, uom=False, currency=False, company=False, date=False)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • unlink(self)
    The website calls this method specifically. We want to get rid of the children lines so the user doesn't have to

New fields (0)

No new fields.

Public methods (1)
  • sale_get_order(self, force_create=False, update_pricelist=False)
    Communicate with product pack expansion method to check if it's necessary to expand the product pack lines or not via context
REPOSITORY
REPOSITORYOCA/product-pack
GIT
GIThttps://github.com/OCA/product-pack.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/product-pack/tree/13.0/website_sale_product_pack
VERSION
VERSION 1.0.3
CATEGORY
CATEGORYE-Commerce
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSPedro M. Baeza, david, nicolas, oca-travis, Weblate, OCA-git-bot, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/product-pack
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:34:19
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/product-pack:
    - sale_product_pack
    - product_pack
odoo/odoo:
    - website_sale
    - website
    - web
    - base
    - web_editor
    - http_routing
    - portal
    - mail
    - base_setup
    - bus
    - web_tour
    - auth_signup
    - social_media
    - sale
    - sales_team
    - payment
    - account
    - product
    - uom
    - 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 (6)
XML IDNameModelTypeStatus
assets_tests assets_tests ir.ui.view qweb Inherits web.assets_tests
cart_lines cart_lines ir.ui.view qweb Inherits website_sale.cart_lines
cart_popover cart_popover ir.ui.view qweb Inherits website_sale.cart_popover
cart_summary cart_summary ir.ui.view qweb Inherits website_sale.cart_summary
product_price product_price ir.ui.view qweb Inherits website_sale.product
products_item products_item ir.ui.view qweb Inherits website_sale.products_item
Models touched (5)

New fields (0)

No new fields.

Public methods (1)
  • check_website_published(self)
    @api.constrains('pack_line_ids')

New fields (0)

No new fields.

Public methods (1)
  • check_website_published(self)
    @api.constrains('is_published')
    For keep the consistent and prevent bugs within the e-commerce, we force that all childs of a parent pack stay publish when the parent is published. Also if any of the childs of the parent pack became unpublish, we unpublish the parent.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • unlink(self)
    The website calls this method specifically. We want to get rid of the children lines so the user doesn't have to

New fields (0)

No new fields.

Public methods (1)
  • sale_get_order(self, force_create=False, code=None, update_pricelist=False, force_pricelist=False)
    Communicate with product pack expansion method to check if it's necessary to expand the product pack lines or not via context
STATUS
STATUSOpen migration PR - not merged yet for this version
REPOSITORY
REPOSITORYOCA/product-pack
PULL REQUEST
PULL REQUEST[18.0][MIG] website_sale_product_pack: Migration to 18.0 (#194)
STATUS
STATUSOpen migration PR - not merged yet for this version
REPOSITORY
REPOSITORYOCA/product-pack
PULL REQUEST
PULL REQUEST[19.0][MIG] website_sale_product_pack: Migration to 19.0 (#229)