mirror of
https://github.com/odoo/documentation.git
synced 2025-12-14 00:19:05 +07:00
[ADD] ecommerce/b2b-b2c: create B2B/B2C page
task-3339294 closes odoo/documentation#15269 Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com> Signed-off-by: Larissa Manderfeld (lman) <lman@odoo.com>
This commit is contained in:
@@ -27,6 +27,7 @@ products and increase your average cart sizes.
|
|||||||
ecommerce/checkout
|
ecommerce/checkout
|
||||||
ecommerce/shipping
|
ecommerce/shipping
|
||||||
ecommerce/order_handling
|
ecommerce/order_handling
|
||||||
|
ecommerce/b2b_b2c
|
||||||
ecommerce/customer_accounts
|
ecommerce/customer_accounts
|
||||||
ecommerce/performance
|
ecommerce/performance
|
||||||
ecommerce/google_merchant_center
|
ecommerce/google_merchant_center
|
||||||
|
|||||||
125
content/applications/websites/ecommerce/b2b_b2c.rst
Normal file
125
content/applications/websites/ecommerce/b2b_b2c.rst
Normal file
@@ -0,0 +1,125 @@
|
|||||||
|
===========
|
||||||
|
B2B and B2C
|
||||||
|
===========
|
||||||
|
|
||||||
|
Odoo eCommerce is designed to fulfill the needs of both B2B and B2C companies. It allows you to
|
||||||
|
configure :doc:`prices <products/prices>`, manage :doc:`access <customer_accounts>` for specific
|
||||||
|
customers, and :ref:`customize the website <ecommerce/b2b_b2c/multiple-websites>` to support B2B,
|
||||||
|
B2C, or both business models.
|
||||||
|
|
||||||
|
.. _ecommerce/b2b_b2c/prices:
|
||||||
|
|
||||||
|
Prices
|
||||||
|
======
|
||||||
|
|
||||||
|
While B2C businesses sell directly to the end consumer with a :ref:`tax-included
|
||||||
|
<ecommerce-price-management-tax-display>` price, B2B businesses usually :ref:`exclude taxes
|
||||||
|
<ecommerce-price-management-tax-display>` and may even prefer to hide prices altogether, showcasing
|
||||||
|
only their products instead.
|
||||||
|
To configure a B2B-specific ecommerce shop, make sure the :ref:`Tax-Excluded
|
||||||
|
<ecommerce/prices/taxes>` option is enabled, and complete the configuration to :ref:`hide the
|
||||||
|
pricing <ecommerce/prices/hide-prices>`.
|
||||||
|
|
||||||
|
.. tip::
|
||||||
|
To make sure that only customers with an :ref:`account and granted access
|
||||||
|
<ecommerce/customer_accounts/account-creation>` can see the prices, go to
|
||||||
|
:menuselection:`Website --> eCommerce --> Customers`, click the :icon:`fa-caret-down`
|
||||||
|
:guilabel:`(dropdown)` icon from the search bar, and select the :guilabel:`Archived` filter.
|
||||||
|
Then click the :guilabel:`Public user` card, go to the :guilabel:`Sales & Purchase` tab, and
|
||||||
|
add the zero-priced pricelist configured to :ref:`cover all countries
|
||||||
|
<ecommerce/prices/country-groups>`. Keep the :guilabel:`Public User` contact :guilabel:`Archived`
|
||||||
|
at all times. Website visitors now see the products without prices, while only customers with an
|
||||||
|
:ref:`account invitation <ecommerce/customer_accounts/account-creation>` and an assigned
|
||||||
|
:ref:`pricelist <ecommerce/prices/pricelists>` can view the pricing in the customer portal.
|
||||||
|
|
||||||
|
.. seealso::
|
||||||
|
- :doc:`/applications/finance/accounting/taxes/B2B_B2C`
|
||||||
|
- :ref:`Discounts <ecommerce/prices/discounts>`
|
||||||
|
|
||||||
|
Access request
|
||||||
|
==============
|
||||||
|
|
||||||
|
When running a B2B business, you usually :ref:`hide the pricing <ecommerce/b2b_b2c/prices>` on the
|
||||||
|
web shop and make it available for :ref:`logged-in users <ecommerce/customer_accounts/shop-access>`
|
||||||
|
only. To prevent anyone from signing up freely, set the :ref:`Customer Account
|
||||||
|
<ecommerce/customer_accounts/account-creation>` setting option to :guilabel:`On invitation`.
|
||||||
|
To create a page where customers request access, open the :doc:`website editor
|
||||||
|
<../website/web_design>`, :ref:`create a form <website/building_blocks/form>`, customize it, and in
|
||||||
|
the :guilabel:`Action` field, select :guilabel:`Create a customer`.
|
||||||
|
|
||||||
|
.. tip::
|
||||||
|
You can assign tags created on a contact form under :menuselection:`Website --> Configuration
|
||||||
|
--> Customers` to identify what kind of customers have submitted the form. To do so, select
|
||||||
|
a field in the form while in :guilabel:`Edit` mode, click the :guilabel:`+ Field` button under
|
||||||
|
the :guilabel:`Customize` tab, and set the field's :guilabel:`Type` to :guilabel:`Tags`.
|
||||||
|
Toggle the tags that should be automatically assigned when a customer fills in the form and set
|
||||||
|
the field's :guilabel:`Visibility` to :guilabel:`Hidden`.
|
||||||
|
|
||||||
|
When a customer submits the form, a new contact is automatically created in the database. The
|
||||||
|
contact is assigned the first pricelist from the list of available pricelists, and, if applicable,
|
||||||
|
the specified tags.
|
||||||
|
|
||||||
|
Submitted requests can be found under the :menuselection:`Website --> eCommerce --> Customers`.
|
||||||
|
Select the customer you want to :ref:`grant portal access
|
||||||
|
<ecommerce/customer_accounts/grant-access>` to. Once done, the selected customer is able to
|
||||||
|
view the B2B prices and products. Make sure the correct pricelist is assigned to their
|
||||||
|
contact form.
|
||||||
|
|
||||||
|
.. tip::
|
||||||
|
- It is also possible to hide the entire shop from the public using the :ref:`Ecommerce Access
|
||||||
|
<ecommerce/customer_accounts/shop-access>` setting and only make it available for logged-in
|
||||||
|
customers.
|
||||||
|
- Configure the :ref:`checkout policy <ecommerce/customer_accounts/checkout-access>` to
|
||||||
|
allow/disallow guest checkout for B2C businesses.
|
||||||
|
- Enable the :ref:`Shared Customer Accounts <ecommerce/customer_accounts/multiple-websites>`
|
||||||
|
feature to allow customers to use the same account on :ref:`all
|
||||||
|
<ecommerce/b2b_b2c/multiple-websites>` your websites.
|
||||||
|
|
||||||
|
.. seealso::
|
||||||
|
:doc:`customer_accounts`
|
||||||
|
|
||||||
|
.. _ecommerce/b2b_b2c/multiple-websites:
|
||||||
|
|
||||||
|
Multiple websites
|
||||||
|
=================
|
||||||
|
|
||||||
|
Settings are website-specific, which means it is possible to configure different behaviors for
|
||||||
|
each website. For example, you can set up a B2C website that allows :ref:`guest checkout
|
||||||
|
<ecommerce/customer_accounts/checkout-access>` and displays :ref:`tax-included prices
|
||||||
|
<ecommerce-price-management-tax-display>`, and a B2B website that requires :ref:`sign-in
|
||||||
|
<ecommerce/customer_accounts/checkout-access>` and shows :ref:`tax-excluded prices
|
||||||
|
<ecommerce-price-management-tax-display>`. However, each :ref:`pricelist
|
||||||
|
<ecommerce/prices/pricelists>` can only be assigned to one website at a time. If you want to use
|
||||||
|
the same pricelist on several websites, duplicate the pricelist and assign each copy to its
|
||||||
|
corresponding website.
|
||||||
|
|
||||||
|
.. tip::
|
||||||
|
If you are running a B2B and B2C business, we *strongly* recommend to create two :doc:`separate
|
||||||
|
websites <../website/configuration/multi_website>` and assign a :ref:`zero-priced pricelist
|
||||||
|
<ecommerce/b2b_b2c/prices>` to the B2B website and a regular pricelist to the B2C website.
|
||||||
|
In case, you prefer using a single website, configure it using :ref:`country groups
|
||||||
|
<ecommerce/prices/country-groups>` and assigning :ref:`pricelists <ecommerce/prices/pricelists>`
|
||||||
|
to customers, and deactivate the :ref:`Selectable <ecommerce/prices/selectable-pricelists>`
|
||||||
|
option.
|
||||||
|
|
||||||
|
Additional features
|
||||||
|
===================
|
||||||
|
|
||||||
|
Invoice
|
||||||
|
-------
|
||||||
|
|
||||||
|
Depending on the type of business (B2B or B2C), you might want to issue an invoice. An invoice can
|
||||||
|
either be generated automatically (for B2B) or on demand of the customer (for B2C). This process
|
||||||
|
can be automated if (and when) the online payment is :ref:`confirmed <handling/sales>`.
|
||||||
|
To automate invoicing, enable the :ref:`Automatic Invoice <handling/legal>` setting. If this
|
||||||
|
feature has not been enabled, the customer only receives an order confirmation.
|
||||||
|
|
||||||
|
.. _ecommerce/b2b_b2c/b2b-fields:
|
||||||
|
|
||||||
|
B2B fields at checkout
|
||||||
|
----------------------
|
||||||
|
|
||||||
|
On the :guilabel:`Order summary` page, open the :doc:`website editor <../website/web_design>`, go to
|
||||||
|
the :guilabel:`Style` tab, and toggle the :guilabel:`Show B2B Fields` switch to display B2B-specific
|
||||||
|
additional fields like :guilabel:`VAT` or :guilabel:`Company Name` during the :ref:`delivery
|
||||||
|
<ecommerce/checkout/delivery>` step.
|
||||||
BIN
content/applications/websites/ecommerce/b2b_b2c/tags-field.png
Normal file
BIN
content/applications/websites/ecommerce/b2b_b2c/tags-field.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 6.8 KiB |
@@ -144,8 +144,8 @@ checkout options.
|
|||||||
|
|
||||||
.. tip::
|
.. tip::
|
||||||
Restrict access to the :ref:`shop <ecommerce/customer_accounts/shop-access>` and :ref:`checkout
|
Restrict access to the :ref:`shop <ecommerce/customer_accounts/shop-access>` and :ref:`checkout
|
||||||
<ecommerce/customer_accounts/checkout-access>` for specific customers, e.g., in a B2B business
|
<ecommerce/customer_accounts/checkout-access>` for specific customers, e.g., in a :doc:`B2B
|
||||||
setup.
|
<b2b_b2c>` business setup.
|
||||||
|
|
||||||
.. _ecommerce/checkout/review_order:
|
.. _ecommerce/checkout/review_order:
|
||||||
|
|
||||||
@@ -194,8 +194,7 @@ addresses are identical), and click :guilabel:`Confirm` to proceed to the next s
|
|||||||
|
|
||||||
.. tip::
|
.. tip::
|
||||||
- For B2B customers, you can also :ref:`enable <ecommerce/checkout/customize_steps>` optional
|
- For B2B customers, you can also :ref:`enable <ecommerce/checkout/customize_steps>` optional
|
||||||
:guilabel:`VAT` and :guilabel:`Company name` fields by toggling the :guilabel:`Show B2B Fields`
|
:ref:`B2B fields <ecommerce/b2b_b2c/b2b-fields>` in the website editor.
|
||||||
option in the website editor.
|
|
||||||
- You can add a checkbox for users without an account to sign up for a newsletter. To do so, go
|
- You can add a checkbox for users without an account to sign up for a newsletter. To do so, go
|
||||||
to :menuselection:`Website --> Configuration --> Settings`, scroll down to the
|
to :menuselection:`Website --> Configuration --> Settings`, scroll down to the
|
||||||
:guilabel:`eCommerce` section, enable the :guilabel:`Newsletter` feature, and select a
|
:guilabel:`eCommerce` section, enable the :guilabel:`Newsletter` feature, and select a
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ Using customer accounts for an ecommerce shop enables you to :ref:`manage custom
|
|||||||
<ecommerce/customer_accounts/account-creation>`, control access to the :ref:`shop
|
<ecommerce/customer_accounts/account-creation>`, control access to the :ref:`shop
|
||||||
<ecommerce/customer_accounts/shop-access>`, the :ref:`checkout
|
<ecommerce/customer_accounts/shop-access>`, the :ref:`checkout
|
||||||
<ecommerce/customer_accounts/checkout-access>`, or the :ref:`customer portal <portal/access>`,
|
<ecommerce/customer_accounts/checkout-access>`, or the :ref:`customer portal <portal/access>`,
|
||||||
and support both B2B and B2C operations.
|
and support both :doc:`B2B and B2C operations <b2b_b2c>`.
|
||||||
|
|
||||||
After logging in, customers can access their :doc:`customer portal <../../general/users/portal>`
|
After logging in, customers can access their :doc:`customer portal <../../general/users/portal>`
|
||||||
by clicking their username in the top-right corner of the screen and selecting :guilabel:`My
|
by clicking their username in the top-right corner of the screen and selecting :guilabel:`My
|
||||||
@@ -35,6 +35,8 @@ of the following options:
|
|||||||
- :guilabel:`Free sign up`: Every website visitor can create an account and sign in. They will
|
- :guilabel:`Free sign up`: Every website visitor can create an account and sign in. They will
|
||||||
get access to the :doc:`portal <../../general/users/portal>` by default.
|
get access to the :doc:`portal <../../general/users/portal>` by default.
|
||||||
|
|
||||||
|
.. _ecommerce/customer_accounts/grant-access:
|
||||||
|
|
||||||
To send an email invitation to a customer:
|
To send an email invitation to a customer:
|
||||||
|
|
||||||
- Go to :menuselection:`Website --> eCommerce --> Customers`.
|
- Go to :menuselection:`Website --> eCommerce --> Customers`.
|
||||||
@@ -56,9 +58,9 @@ instructions on setting a password and activating their account.
|
|||||||
.. note::
|
.. note::
|
||||||
- When selecting the :guilabel:`Free sign up`, a clickable :guilabel:`Don't have an account?`
|
- When selecting the :guilabel:`Free sign up`, a clickable :guilabel:`Don't have an account?`
|
||||||
link appears under the login form on the website.
|
link appears under the login form on the website.
|
||||||
- The :guilabel:`On invitation` option is especially useful for B2B businesses that prefer
|
- The :guilabel:`On invitation` option is especially useful for :ref:`B2B
|
||||||
to keep :ref:`prices hidden <ecommerce/prices/hide-prices>` on the website and grant access
|
<ecommerce/b2b_b2c/prices>` businesses that prefer to keep :ref:`prices hidden
|
||||||
only to invited customers.
|
<ecommerce/prices/hide-prices>` on the website and grant access only to invited customers.
|
||||||
|
|
||||||
.. tip::
|
.. tip::
|
||||||
It is possible to configure a website form with a :guilabel:`Create a Customer` :ref:`action
|
It is possible to configure a website form with a :guilabel:`Create a Customer` :ref:`action
|
||||||
@@ -119,6 +121,8 @@ available:
|
|||||||
- To use the :ref:`wishlist <ecommerce/products/wishlists>` feature, customers must
|
- To use the :ref:`wishlist <ecommerce/products/wishlists>` feature, customers must
|
||||||
create an account to save their favorite items for later.
|
create an account to save their favorite items for later.
|
||||||
|
|
||||||
|
.. _ecommerce/customer_accounts/multiple-websites:
|
||||||
|
|
||||||
Multi-website account
|
Multi-website account
|
||||||
=====================
|
=====================
|
||||||
|
|
||||||
@@ -128,5 +132,5 @@ websites, allowing each customer to use a single account. To do so, go to :menus
|
|||||||
Customer Accounts` option.
|
Customer Accounts` option.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
When operating both B2B and B2C online shops, it's recommended to use separate websites for each
|
When operating both :ref:`B2B and B2C online shops <ecommerce/b2b_b2c/multiple-websites>`, it is
|
||||||
business model.
|
recommended to use separate websites for each business model.
|
||||||
|
|||||||
@@ -104,9 +104,9 @@ Invoice and legal requirements
|
|||||||
==============================
|
==============================
|
||||||
|
|
||||||
The final step of an ecommerce order is to generate the invoice and send it to the customer.
|
The final step of an ecommerce order is to generate the invoice and send it to the customer.
|
||||||
Depending on the type of business (B2B or B2C), an invoice can either be generated automatically
|
Depending on your needs, an invoice can either be generated automatically or on demand of the
|
||||||
(B2B) or on demand of the customer (B2C). This process can be automated if (and when) the online
|
customer. This process can be automated if (and when) the online payment is :ref:`confirmed
|
||||||
payment is :ref:`confirmed <handling/sales>`.
|
<handling/sales>`.
|
||||||
|
|
||||||
To automate invoicing, go to :menuselection:`Website --> Configuration --> Settings` and in the
|
To automate invoicing, go to :menuselection:`Website --> Configuration --> Settings` and in the
|
||||||
:guilabel:`Invoicing` section, enable :guilabel:`Automatic Invoice`.
|
:guilabel:`Invoicing` section, enable :guilabel:`Automatic Invoice`.
|
||||||
|
|||||||
@@ -22,8 +22,8 @@ product form or use :doc:`fiscal positions
|
|||||||
.. _ecommerce-price-management-tax-display:
|
.. _ecommerce-price-management-tax-display:
|
||||||
|
|
||||||
Choosing the displayed price tax usually depends on a country's regulations or the type of customers
|
Choosing the displayed price tax usually depends on a country's regulations or the type of customers
|
||||||
(B2B vs. B2C). To select the type of price displayed, go to :menuselection:`Website -->
|
(:doc:`B2B vs. B2C <../b2b_b2c>`). To select the type of price displayed, go to
|
||||||
Configuration --> Settings`, select the website, scroll down to the
|
:menuselection:`Website --> Configuration --> Settings`, select the website, scroll down to the
|
||||||
:guilabel:`eCommerce` section, and under :guilabel:`Display Product Prices` select between:
|
: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
|
- :guilabel:`Tax Excluded`: the price displayed on the website is tax-excluded, and the tax is
|
||||||
@@ -35,9 +35,12 @@ Configuration --> Settings`, select the website, scroll down to the
|
|||||||
website in the database.
|
website in the database.
|
||||||
|
|
||||||
.. tip::
|
.. tip::
|
||||||
Switch the :ref:`Tax indication <ecommerce/products/product-presentation>` toggle on in the
|
- Switch the :ref:`Tax indication <ecommerce/products/product-presentation>` toggle on in the
|
||||||
website editor to explicitly indicate if the price is `Tax excluded` or `Tax included` on the
|
website editor to explicitly indicate if the price is `Tax excluded` or `Tax included` on the
|
||||||
product page.
|
product page.
|
||||||
|
- Enable specific :ref:`B2B fields <ecommerce/b2b_b2c/b2b-fields>` in the :ref:`delivery step
|
||||||
|
<ecommerce/checkout/delivery>` during the checkout using the :doc:`website editor
|
||||||
|
</applications/websites/website/web_design>`.
|
||||||
|
|
||||||
.. _ecommerce/prices/price-per-unit:
|
.. _ecommerce/prices/price-per-unit:
|
||||||
|
|
||||||
@@ -306,8 +309,8 @@ Price` configuration.
|
|||||||
Hide prices
|
Hide prices
|
||||||
===========
|
===========
|
||||||
|
|
||||||
Some businesses, such as B2B shops or companies that sell luxury or custom items, often prefer to
|
Some businesses, such as :ref:`B2B shops <ecommerce/b2b_b2c/prices>` or companies that sell luxury
|
||||||
showcase their products online without displaying their prices.
|
or custom items, often prefer to showcase their products online without displaying their prices.
|
||||||
|
|
||||||
To hide product prices on the ecommerce, go to :menuselection:`Website --> Configuration -->
|
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`
|
Settings`, enable :guilabel:`Prevent Sale of Zero Priced Product` in the :guilabel:`eCommerce`
|
||||||
|
|||||||
Reference in New Issue
Block a user