From 04650fe76bafbd705f79a38f405ce3d3d07fd226 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?meval1006=E2=80=8B?= Date: Mon, 15 Dec 2025 15:48:18 -0800 Subject: [PATCH] [IMP] ecommerce: prevent sales by category --- .../websites/ecommerce/products/prices.rst | 169 +++++++++++------- .../prices/price-tax-display-type.png | Bin 13333 -> 0 bytes .../prices/specific-categories-setting.png | Bin 0 -> 7391 bytes 3 files changed, 100 insertions(+), 69 deletions(-) delete mode 100644 content/applications/websites/ecommerce/products/prices/price-tax-display-type.png create mode 100644 content/applications/websites/ecommerce/products/prices/specific-categories-setting.png diff --git a/content/applications/websites/ecommerce/products/prices.rst b/content/applications/websites/ecommerce/products/prices.rst index 0a8317c8ab..a4ee9c0947 100644 --- a/content/applications/websites/ecommerce/products/prices.rst +++ b/content/applications/websites/ecommerce/products/prices.rst @@ -26,13 +26,13 @@ Choosing the displayed price tax usually depends on a country's regulations or t :menuselection:`Website --> Configuration --> Settings`, select the website, scroll down to the :guilabel:`eCommerce` section, and under :guilabel:`Display Product Prices` select between: -- :guilabel:`Tax Excluded`: the price displayed on the website is tax-excluded, and the tax is - computed at the :ref:`order summary ` step; -- :guilabel:`Tax Included`: the price displayed on the website is tax-included. +- :guilabel:`Tax Excluded`: The price displayed on the website is tax-excluded, and the tax is + computed at the :ref:`order summary ` step. +- :guilabel:`Tax Included`: The price displayed on the website is tax-included. .. note:: - This setting is website-specific and can therefore be configured independently for every - website in the database. + This setting is website-specific and can therefore be configured independently for every website + in the database. .. tip:: - Switch the :ref:`Tax indication ` toggle on in the @@ -51,12 +51,12 @@ To display a :doc:`price per unit ` alongside the sales price on the product page, follow these steps: -#. Go to :menuselection:`Website --> Configuration --> Settings`, scroll to the - :guilabel:`eCommerce` section, and enable :guilabel:`Product Reference Price`. +#. Go to :menuselection:`Website --> Configuration --> Settings`. +#. Check the :guilabel:`Product Reference Price` checkbox in the :guilabel:`eCommerce` section. #. :ref:`Navigate to the product form `. #. Set the product's :guilabel:`Sales Price` and select the unit (e.g., :guilabel:`Units`). -#. In the :guilabel:`Base Unit Count` field, enter the number of units in the product, then - select the relevant unit from the dropdown list. +#. In the :guilabel:`Base Unit Count` field, enter the number of units in the product. +#. Select the relevant unit from the drop-down list. .. example:: Imagine you want to sell a 2-liter bucket of paint for $60, i.e., $30 per liter. @@ -64,8 +64,8 @@ price on the product page, follow these steps: .. image:: prices/prices-per-unit.png :alt: Cost per unit pricing on the product form. - The price per units, in this case per liter, is shown next to the sales price on the - product page. + The price per units, in this case per liter, is shown next to the sales price on the product + page. .. image:: prices/price-cost-per-unit-page.png :alt: Unit pricing on the product page. @@ -84,6 +84,7 @@ Pricelists Pricelists in Odoo allow to manage flexible pricing rules and to offer different prices and discounts based on currencies, time periods, purchase volumes, :ref:`customers' location `, and/or customer type. + To enable pricelists for eCommerce, go to :menuselection:`Website --> Configuration --> Settings`, scroll down to the :guilabel:`eCommerce` section, enable :guilabel:`Pricelists`, and :guilabel:`Save`. Then, click :guilabel:`Pricelists` or go to :menuselection:`Website --> eCommerce @@ -97,8 +98,8 @@ In the :guilabel:`Ecommerce` tab, configure options specific to online sales, su .. tip:: - If you are using several websites and you want to use the same pricelist on several of them, - you need to duplicate the pricelist for each website. If you do not assign any - website, the pricelist will not be used, unless it is :ref:`selectable + you need to duplicate the pricelist for each website. If you do not assign any website, the + pricelist will not be used, unless it is :ref:`selectable `. - Pricelists can also be :ref:`assigned to a specific customer `. @@ -106,8 +107,8 @@ In the :guilabel:`Ecommerce` tab, configure options specific to online sales, su .. note:: - When pricelists are enabled in the Sales app, they are automatically enabled in the eCommerce app, and vice versa. - - In the list of pricelists, order the pricelists by priority: the first takes - precedence over the second, the second over the third, and so on. + - In the list of pricelists, order the pricelists by priority: the first takes precedence over + the second, the second over the third, and so on. - It is also possible to create specific pricelists for :ref:`variants `. @@ -120,8 +121,8 @@ Selectable pricelists --------------------- Selectable pricelists are useful, for example, when selling products in :doc:`multiple currencies -` and allow customers to -choose a pricelist using the catalog's pricelist selector located next to the :ref:`search bar +` and allow customers to choose a +pricelist using the catalog's pricelist selector located next to the :ref:`search bar `. .. image:: prices/pricelist-selector.png @@ -159,9 +160,9 @@ the appropriate :guilabel:`Country Groups`. Create or edit as many pricelists fo as needed. For instance, select :guilabel:`European Union` to apply the pricelist to all EU member states. -To create a new country group, click :guilabel:`Search more` in the dropdown list, then -:guilabel:`New`. Add a :guilabel:`Group Name` and select the relevant :guilabel:`Countries`. -Use :ref:`Custom filters ` if needed. +To create a new country group, click :guilabel:`Search more` in the drop-down list, then +:guilabel:`New`. Add a :guilabel:`Group Name` and select the relevant :guilabel:`Countries`. Use +:ref:`Custom filters ` if needed. .. note:: Each country group must contain at least one country. @@ -190,24 +191,24 @@ Use :ref:`Custom filters ` if needed. - `EU prices with discounts` with the `EU` country group assigned - `US prices` with the `US` country group assigned - If the :guilabel:`Selectable` option is enabled for `EU regular prices` and - `US prices`, and the customer is from the European Union, only the pricelists - `EU regular prices` and `EU prices with discounts` will be available. However, since the - `EU prices with discount` list is not selectable, it will disappear once the customer selects - the `EU regular prices` list and prices will be displayed based on the `EU regular prices` - pricelist on the catalog. + If the :guilabel:`Selectable` option is enabled for `EU regular prices` and `US prices`, and + the customer is from the European Union, only the pricelists `EU regular prices` and `EU + prices with discounts` will be available. However, since the `EU prices with discount` list + is not selectable, it will disappear once the customer selects the `EU regular prices` list + and prices will be displayed based on the `EU regular prices` pricelist on the catalog. Pricelist application --------------------- On the ecommerce, the *default* pricelist is automatically selected for public, non-logged in users when no country group is assigned. If :ref:`GeoIP and country groups ` are -used, public users see the pricelist of their country group by default. :ref:`Logged-in users -` with -:ref:`assigned pricelists ` see the assigned -pricelist by default **if it is assigned to the website** they are visiting. If not, the website's -default pricelist is applied (i.e., the first available pricelist assigned to the website and -without a country group, following the sequence order). +used, public users see the pricelist of their country group by default. + +:ref:`Logged-in users ` with :ref:`assigned pricelists +` see the assigned pricelist by default **if it is +assigned to the website** they are visiting. If not, the website's default pricelist is applied +(i.e., the first available pricelist assigned to the website and without a country group, following +the sequence order). Assigned pricelists take precedence over country-based pricelists, when applicable, unless the assigned pricelist is linked to a different country group. @@ -217,8 +218,8 @@ assigned pricelist is linked to a different country group. :guilabel:`United States` pricelist is applied. A different visitor, also from the United States, has the :guilabel:`Loyal Customer Discount` - pricelist assigned in their contact form. This assignment takes precedence over the country - group assignation, so the :guilabel:`Loyal Customer Discount` is applied. + pricelist assigned in their contact form. This assignment takes precedence over the country group + assignation, so the :guilabel:`Loyal Customer Discount` is applied. .. image:: prices/pricelists-example.png :alt: An example of various pricelists assigned to a website. @@ -232,10 +233,9 @@ Discounts Discounts programs ------------------ -To enable :doc:`discount programs ` -for your ecommerce, go to :menuselection:`Website --> Configuration --> Settings`, scroll -down to the :guilabel:`eCommerce` section, and enable the :guilabel:`Discounts, Loyalty & Gift -Card` feature. +To enable :doc:`discount programs ` for +your ecommerce, go to :menuselection:`Website --> Configuration --> Settings`, scroll down to the +:guilabel:`eCommerce` section, and enable the :guilabel:`Discounts, Loyalty & Gift Card` feature. :ref:`Configure ` the discount program, make sure the :guilabel:`Website` option is enabled, and add the relevant :ref:`Pricelist @@ -253,12 +253,11 @@ alongside it. .. image:: prices/price-strikethrough.png :alt: Price strikethrough. -To display a permanently discounted price, navigate to :menuselection:`Website --> Configuration ---> Settings`, scroll down to the :guilabel:`eCommerce`, enable the :guilabel:`Comparison -Price` option, and :guilabel:`Save`. Then, :ref:`go to the product form -`, enter the new (discounted) price in the -:guilabel:`Sales Price` field and the original one (strikethrough) in the -:guilabel:`Compare to Price` field. +To display a permanently discounted price, navigate to :menuselection:`Website --> Configuration --> +Settings`, scroll down to the :guilabel:`eCommerce`, enable the :guilabel:`Comparison Price` option, +and :guilabel:`Save`. Then, :ref:`go to the product form `, +enter the new (discounted) price in the :guilabel:`Sales Price` field and the original one +(strikethrough) in the :guilabel:`Compare to Price` field. .. note:: The :guilabel:`Compare to Price` field must contain a price that is higher than the @@ -272,9 +271,9 @@ Price` option, and :guilabel:`Save`. Then, :ref:`go to the product form Discounted pricelists --------------------- -It is also possible to create :ref:`pricelists with discounts `. -To do so, :ref:`create a pricelist ` and -:ref:`configure the discount `. +It is also possible to create :ref:`pricelists with discounts `. To do +so, :ref:`create a pricelist ` and :ref:`configure the +discount `. If a :ref:`pricelist ` contains a :ref:`Discount ` price type, the price is striked through for applicable customers, @@ -291,36 +290,61 @@ E-commerce promotional code --------------------------- To offer a discounted pricelist for customers with a specific discount code, access the relevant -:ref:`pricelist form `, go to the :guilabel:`Ecommerce` tab, and add -an :guilabel:`E-commerce Promotional Code`, e.g., `SUMMERSALE10%`. Then, go to the :guilabel:`Sales -Price` tab, click :guilabel:`Add a line`, and :ref:`configure the discount -`. When a customer inserts the code during the :ref:`checkout process -`, this discount is granted according to the :guilabel:`Sales -Price` configuration. +:ref:`pricelist form `, go to the :guilabel:`Ecommerce` tab, and add an +:guilabel:`E-commerce Promotional Code`, e.g., `SUMMERSALE10%`. + +Then, go to the :guilabel:`Sales Price` tab, click :guilabel:`Add a line`, and :ref:`configure the +discount `. When a customer inserts the code during the :ref:`checkout +process `, this discount is granted according to the +:guilabel:`Sales Price` configuration. .. note:: - Make sure that the :ref:`Promo Code ` option - in the website editor is enabled and, if using :ref:`country groups - `, that the discounted pricelist has the same country group - assigned as the non-discounted pricelist. + Make sure that the :ref:`Promo Code ` option in the website + editor is enabled and, if using :ref:`country groups `, that the + discounted pricelist has the same country group assigned as the non-discounted pricelist. .. _ecommerce/prices/hide-prices: -Hide prices -=========== +Limiting sales +============== + +Many :ref:`B2B `, luxury, and custom companies showcase their products +online but restrict direct purchases and hide pricing. + +The :guilabel:`Hide Add To Cart` drop-down option offers two configurations to control price +visibility and online sales using. Navigate to :menuselection:`Website --> Configuration --> +Settings`, check the :guilabel:`Hide Add To Cart` checkbox in the :guilabel:`eCommerce` section. -Some businesses, such as :ref:`B2B shops ` or companies that sell luxury -or custom items, often prefer to showcase their products online without displaying their prices. +Select one of the drop-down options: -To hide product prices on the ecommerce, go to :menuselection:`Website --> Configuration --> -Settings`, enable :guilabel:`Prevent Sale of Zero Priced Product` in the :guilabel:`eCommerce` -section, and enter a redirect URL in the :guilabel:`Button URL` field. The -:guilabel:`Add to Cart` button on the product page is then replaced by a :guilabel:`Contact us` -button, which can be :ref:`customized ` if needed. +- :guilabel:`0 price products`: Products with a price of `0` have their prices hidden and **cannot** + be purchased from the wesite. +- :guilabel:`Specific categories`: Products belonging to selected categories cannot be purchased + directly from the website, and the prices are displayed only if the product price is greater than + `0`. -After enabling this feature, either set the price to `0` for all desired products or create a -:ref:`pricelist ` with all product prices set to `0`. Ensure the -pricelist is assigned to the correct website and is listed first among the website's pricelists. +If choosing the :guilabel:`Specific categories` option, the :guilabel:`Categories` submenu appears. +Select **at least one** product category from the drop-down menu. + +Enter a redirect URL in the :guilabel:`Link URL` field. The :guilabel:`Add to Cart` button on the +product page is then replaced by a :guilabel:`Contact us` button, which can be :ref:`customized +` if needed. + +.. example:: + A jewelry company wants to direct customers to a custom order form for its most expensive rings. + Instead of an :guilabel:`Add to cart` option, the product pages display only the prices and a + link to the specialized order form. + + .. image:: prices/specific-categories-setting.png + :alt: Example of the Specific categories option configuration for the Hide Add To Cart + setting. + +0 price products option +----------------------- + +After choosing :guilabel:`0 price products`, either set the price to `0` for all desired products or +create a :ref:`pricelist ` with all product prices set to `0`. Ensure +the pricelist is assigned to the correct website and is listed first among the website's pricelists. .. tip:: - Ensure no pricelist used on the ecommerce has been marked as :guilabel:`Selectable` to prevent @@ -330,5 +354,12 @@ pricelist is assigned to the correct website and is listed first among the websi ` a regular pricelist (with actual prices) to customers with :ref:`portal access `. +Specific categories option +-------------------------- + +After enabling this option, navigate to :menuselection:`Website app --> eCommerce --> Products` and +modify all the desired products to the chosen :ref:`product category +`. + .. seealso:: :doc:`../customer_accounts` diff --git a/content/applications/websites/ecommerce/products/prices/price-tax-display-type.png b/content/applications/websites/ecommerce/products/prices/price-tax-display-type.png deleted file mode 100644 index ed60847fcd62d83f43220f56e36b4d688bf07a9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13333 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 diff --git a/content/applications/websites/ecommerce/products/prices/specific-categories-setting.png b/content/applications/websites/ecommerce/products/prices/specific-categories-setting.png new file mode 100644 index 0000000000000000000000000000000000000000..4f929d8fc847c63570c4d7800f56095be0bb7857 GIT binary patch literal 7391 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 KUn~0|