[IMP] sales: pricelists ecommerce
closes odoo/documentation#12838
X-original-commit: f49388d3c8
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Jessica Rogers (jero) <jero@odoo.com>
Co-authored-by: auva-odoo <128469033+auva-odoo@users.noreply.github.com>
Co-authored-by: auva-odoo <128469033+auva-odoo@users.noreply.github.com>
@@ -65,6 +65,8 @@ to all companies in the database.
|
||||
If working in a multinational company, select the countries where this pricelist will apply under
|
||||
the :guilabel:`Country Groups` column.
|
||||
|
||||
.. _sales/products/price-rules:
|
||||
|
||||
Price Rules tab
|
||||
---------------
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
Price management
|
||||
================
|
||||
|
||||
Odoo offers multiple options to select the price displayed on your website, as well as
|
||||
Odoo offers multiple options to select the prices displayed on a website, as well as
|
||||
condition-specific prices based on set criteria.
|
||||
|
||||
Taxes
|
||||
@@ -12,8 +12,8 @@ Tax configuration
|
||||
-----------------
|
||||
|
||||
To add a tax on a product, you can either set a tax in the :guilabel:`Customer Taxes` field of the
|
||||
**product template** or use
|
||||
:doc:`fiscal positions </applications/finance/accounting/taxes/fiscal_positions>`.
|
||||
**product template** or use :doc:`fiscal positions
|
||||
</applications/finance/accounting/taxes/fiscal_positions>`.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`/applications/finance/accounting/taxes`
|
||||
@@ -35,18 +35,15 @@ Configuration --> Settings`, scroll down to the :guilabel:`Shop - Products` cate
|
||||
- :guilabel:`Tax Included`: the price displayed on the website is **tax-included**.
|
||||
|
||||
.. note::
|
||||
This setting is **global**, and the tax-display type is the same for (all of) your website(s). It
|
||||
is, therefore, not possible to select different tax displays for different websites. This may be
|
||||
a significant point of consideration when implementing a database with multiple ecommerce
|
||||
websites aimed at varying customer types (i.e., B2B and B2C).
|
||||
This setting is website specific, and therefore can be altered for each website within a
|
||||
database.
|
||||
|
||||
You can choose to display the type of pricing next to the product price by going to
|
||||
:menuselection:`Website --> Site --> Homepage --> Shop`, selecting a product, and then
|
||||
:menuselection:`Edit --> Customize tab` and enabling :guilabel:`Tax Indication`.
|
||||
To display the type of pricing next to the product price, navigate to :menuselection:`Website -->
|
||||
Site --> Homepage --> Shop`, select a product, then click :guilabel:`Edit` and, in the
|
||||
:guilabel:`Customize` tab, enable :guilabel:`Tax Indication`.
|
||||
|
||||
.. image:: price_management/price-tax-display-type.png
|
||||
:align: center
|
||||
:alt: Tax type displayed on the product page
|
||||
:alt: Tax type displayed on the product page.
|
||||
|
||||
.. seealso::
|
||||
:doc:`/applications/finance/accounting/taxes/B2B_B2C`
|
||||
@@ -58,19 +55,17 @@ It is possible to display a :doc:`price per unit
|
||||
<../../../inventory_and_mrp/inventory/product_management/configure/uom>` on the product page. To do
|
||||
that, go to :menuselection:`Website --> Configuration --> Settings` and enable :guilabel:`Product
|
||||
Reference Price` under the :guilabel:`Shop - Products` section. When enabled, ensure an amount is
|
||||
set in the :guilabel:`Base Unit Count` field of the **product template**, and in the
|
||||
:guilabel:`Sales Price`.
|
||||
set in the :guilabel:`Base Unit Count` field of the product template, and in the :guilabel:`Sales
|
||||
Price` field.
|
||||
|
||||
.. image:: price_management/price-cost-per-unit.png
|
||||
:align: center
|
||||
:alt: Cost per unit pricing on the product template
|
||||
:alt: Cost per unit pricing on the product template.
|
||||
|
||||
The price per unit of measure can be found above the :guilabel:`Add to Cart` button on the product
|
||||
page.
|
||||
|
||||
.. image:: price_management/price-cost-per-unit-page.png
|
||||
:align: center
|
||||
:alt: Cost per unit pricing on the product page
|
||||
:alt: Cost per unit pricing on the product page.
|
||||
|
||||
.. note::
|
||||
Pay attention that having the price per unit may be **mandatory** in some countries.
|
||||
@@ -80,59 +75,127 @@ page.
|
||||
|
||||
.. _ecommerce/pricelists:
|
||||
|
||||
Price configuration: pricelists
|
||||
-------------------------------
|
||||
Pricelists
|
||||
==========
|
||||
|
||||
Pricelists are the primary tool to manage prices on your eCommerce. They allow you to define
|
||||
website-specific prices - different from the price on the product template - based on the **country
|
||||
group**, **currency**, **minimum quantity**, **period**, or **variant**. You can create as many
|
||||
pricelists as needed, but it is mandatory to have at least one pricelist configured per website. If
|
||||
no custom pricelists are added, Odoo defaults to the **Public Pricelist** for all websites.
|
||||
Pricelists are the primary tool to manage prices on an eCommerce website. They make it possible to
|
||||
define website-specific prices - different from the price on the product template - based on the
|
||||
country group, currency, minimum quantity, period, or variant.
|
||||
|
||||
.. seealso::
|
||||
:doc:`/applications/sales/sales/products_prices/prices/pricing`
|
||||
|
||||
Configuration
|
||||
~~~~~~~~~~~~~
|
||||
Understanding default pricelists
|
||||
--------------------------------
|
||||
|
||||
Pricelists can be found under :menuselection:`Website --> eCommerce --> Pricelists`, but must first
|
||||
be activated. For that, head to :menuselection:`Website --> Configuration --> Settings` and scroll
|
||||
down to the :guilabel:`Shop - Products` section. There, you can find two options:
|
||||
The concept of a default pricelist in Odoo depends on the application being used. In the **Sales**
|
||||
app, a customer's default pricelist is determined by their contact profile. If a pricelist is
|
||||
manually assigned to a contact, the pricelist becomes their default. If no pricelist is assigned,
|
||||
the default is the first pricelist listed.
|
||||
|
||||
- :guilabel:`Multiple prices per product`;
|
||||
- :guilabel:`Advanced price rules (discounts, formulas)`.
|
||||
In the **eCommerce** app,the default pricelist is assigned at the website level. However, it is
|
||||
influenced by the user's login status and country group settings.
|
||||
|
||||
The **first** option allows you to set different prices per customer *segment*, i.e., registered
|
||||
customers, gold customers, regular customers, etc. The **second** option allows you to set *price
|
||||
change* rules such as **discounts**, **margins**, **roundings**, etc.
|
||||
How pricelists are applied in eCommerce
|
||||
---------------------------------------
|
||||
|
||||
If a portal user has a specific pricelist assigned to their contact profile, that pricelist is
|
||||
applied to their purchase. However, if that pricelist is **not** assigned to the website they are
|
||||
visiting, the user sees the website's default pricelist.
|
||||
|
||||
.. note::
|
||||
The default website pricelist is the first available pricelist assigned to a website, without the
|
||||
country group setting configured.
|
||||
|
||||
Public, non-logged in users, see the website's default pricelist.
|
||||
|
||||
If a pricelist includes a country group, Odoo checks the visitor's IP address and applies the
|
||||
corresponding pricelist. If a visitor has a pricelist assigned in their contact profile, that
|
||||
pricelist takes precedence over the country-based pricelist, unless the assigned pricelist has a
|
||||
different country group.
|
||||
|
||||
.. example::
|
||||
A customer from the United States visits the website. They do not have a portal account. The
|
||||
: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 record. This assignment takes precedence over the country
|
||||
group assignation, so the :guilabel:`Loyal Customer Discount` is applied.
|
||||
|
||||
.. image:: price_management/pricelists-example.png
|
||||
:alt: An example of various pricelists assigned to a website.
|
||||
|
||||
Pricelist configuration
|
||||
-----------------------
|
||||
|
||||
To activate pricelists, navigate to :menuselection:`Website --> Configuration --> Settings`, scroll
|
||||
down to the :guilabel:`Shop - Products` section, enable the :guilabel:`Pricelist` feature, then
|
||||
click :guilabel:`Save`. Once pricelists have been activated, go to :menuselection:`Website -->
|
||||
eCommerce --> Pricelists` to configure them.
|
||||
|
||||
Preventing sales if price is zero
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The :guilabel:`Prevent Sale of Zero Priced Product` feature prevents customers from purchasing a
|
||||
product if the sales price is listed as `0`. When this feature is enabled, instead of seeing
|
||||
:guilabel:`Add to Cart` when attempting to purchase a product, they see :guilabel:`Contact Us`. This
|
||||
feature is useful for companies that want to hide the prices of their products.
|
||||
|
||||
To utilize this feature, first navigate to :menuselection:`Website --> Configuration --> Settings`
|
||||
and tick the :guilabel:`Prevent Sale of Zero Priced Product` checkbox, then click :guilabel:`Save`.
|
||||
|
||||
Next, create a pricelist that sets all product prices to `0`. Ensure the pricelist is assigned to
|
||||
the correct website and is listed first among the website's pricelists.
|
||||
|
||||
Selectable pricelists
|
||||
~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
*Selectable pricelists* appear in the shop page's pricelist drop-down menu. When a pricelist is
|
||||
designated as :guilabel:`Selectable`, it allows the customer to choose between available pricelists.
|
||||
|
||||
.. important::
|
||||
If a pricelist is designated as :guilabel:`Selectable`, and is not assigned to a specific
|
||||
website, then the pricelist is selectable on **all** websites.
|
||||
|
||||
If a pricelist is designated as :guilabel:`Selectable`, it appears in the drop-down menu next to the
|
||||
search bar. However, if a pricelist does *not* appear in the drop-down menu, it may be for one of
|
||||
the following reasons:
|
||||
|
||||
- If there is only one selectable pricelist, and the contact is assigned a pricelist, the drop-down
|
||||
may not appear.
|
||||
- If multiple selectable pricelists exist and match a visitor's country group, only those pricelists
|
||||
are shown in the drop-down.
|
||||
|
||||
Foreign currency
|
||||
~~~~~~~~~~~~~~~~
|
||||
----------------
|
||||
|
||||
If you are selling in **multiple currencies** and have pricelists in foreign currencies, customers
|
||||
can select their corresponding pricelist anywhere on the :guilabel:`Shop` page from the drop-down
|
||||
menu next to the **search bar**.
|
||||
menu next to the search bar.
|
||||
|
||||
.. image:: price_management/price-pricelists.png
|
||||
:align: center
|
||||
:alt: Pricelists selection
|
||||
:alt: Pricelists selection.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`/applications/sales/sales/products_prices/prices/pricing`
|
||||
- :doc:`/applications/sales/sales/products_prices/prices/currencies`
|
||||
|
||||
Permanent discount
|
||||
------------------
|
||||
==================
|
||||
|
||||
If you have permanently reduced the price of a product, a popular means to attract customers is the
|
||||
**strikethrough** strategy. The strategy consists in displaying the previous price crossed out and
|
||||
the **new discounted price** next to it.
|
||||
|
||||
.. image:: price_management/price-strikethrough.png
|
||||
:align: center
|
||||
:alt: Price strikethrough
|
||||
:alt: Price strikethrough.
|
||||
|
||||
To display a 'striked' price, enable the :guilabel:`Comparison Price` option under
|
||||
:menuselection:`Website --> Configuration --> Settings --> Shop - Products category`. Then, head to
|
||||
the product's template (:menuselection:`Website --> eCommerce --> Products`), and in the
|
||||
:guilabel:`Compare to Price` field, enter the **new** price.
|
||||
|
||||
.. note::
|
||||
If a pricelist contains a :ref:`Discount <sales/products/price-rules>` price type, the striked
|
||||
price is visible to applicable customers. This is true even if the :guilabel:`Comparison Price`
|
||||
feature has not been enabled.
|
||||
|
||||
|
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 5.9 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 10 KiB |