mirror of
https://github.com/odoo/documentation.git
synced 2025-12-12 07:29:27 +07:00
[ADD] ecommerce/b2b-b2c: create B2B/B2C page
task-3339294
closes odoo/documentation#15267
X-original-commit: 4c71c27db7
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
Signed-off-by: Larissa Manderfeld (lman) <lman@odoo.com>
This commit is contained in:
@@ -28,6 +28,7 @@ products and increase your average cart sizes.
|
||||
ecommerce/payments
|
||||
ecommerce/shipping
|
||||
ecommerce/order_handling
|
||||
ecommerce/b2b_b2c
|
||||
ecommerce/customer_accounts
|
||||
ecommerce/performance
|
||||
ecommerce/google_merchant_center
|
||||
|
||||
124
content/applications/websites/ecommerce/b2b_b2c.rst
Normal file
124
content/applications/websites/ecommerce/b2b_b2c.rst
Normal file
@@ -0,0 +1,124 @@
|
||||
===========
|
||||
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
|
||||
----------------------
|
||||
|
||||
Use the :guilabel:`Show B2B fields` toggle in the :doc:`website editor <../website/web_design>`
|
||||
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 |
@@ -146,8 +146,8 @@ checkout options.
|
||||
|
||||
.. tip::
|
||||
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
|
||||
setup.
|
||||
<ecommerce/customer_accounts/checkout-access>` for specific customers, e.g., in a :doc:`B2B
|
||||
<b2b_b2c>` business setup.
|
||||
|
||||
.. _ecommerce/checkout/review_order:
|
||||
|
||||
@@ -195,8 +195,7 @@ addresses are identical), and click :guilabel:`Confirm` to proceed to the next s
|
||||
|
||||
.. tip::
|
||||
- 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`
|
||||
option in the website editor.
|
||||
:ref:`B2B fields <ecommerce/b2b_b2c/b2b-fields>` in the website editor.
|
||||
- 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`. Under the :guilabel:`Shop -
|
||||
Checkout Process` 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/shop-access>`, the :ref:`checkout
|
||||
<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>`
|
||||
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
|
||||
get access to the :doc:`portal <../../general/users/portal>` by default.
|
||||
|
||||
.. _ecommerce/customer_accounts/grant-access:
|
||||
|
||||
To send an email invitation to a customer:
|
||||
|
||||
- Go to :menuselection:`Website --> eCommerce --> Customers`.
|
||||
@@ -56,9 +58,9 @@ instructions on setting a password and activating their account.
|
||||
.. note::
|
||||
- When selecting the :guilabel:`Free sign up`, a clickable :guilabel:`Don't have an account?`
|
||||
link appears under the login form on the website.
|
||||
- The :guilabel:`On invitation` option is especially useful for B2B businesses that prefer
|
||||
to keep :ref:`prices hidden <ecommerce/prices/hide-prices>` on the website and grant access
|
||||
only to invited customers.
|
||||
- The :guilabel:`On invitation` option is especially useful for :ref:`B2B
|
||||
<ecommerce/b2b_b2c/prices>` businesses that prefer to keep :ref:`prices hidden
|
||||
<ecommerce/prices/hide-prices>` on the website and grant access only to invited customers.
|
||||
|
||||
.. tip::
|
||||
It is possible to configure a website form with a :guilabel:`Create a Customer` :ref:`action
|
||||
@@ -119,14 +121,16 @@ following options are available:
|
||||
- To use the :ref:`wishlist <ecommerce/products/wishlists>` feature, customers must
|
||||
create an account to save their favorite items for later.
|
||||
|
||||
.. _ecommerce/customer_accounts/multiple-websites:
|
||||
|
||||
Multi-website account
|
||||
=====================
|
||||
|
||||
When managing multiple websites, it is possible to make customer accounts available across *all*
|
||||
websites, allowing each customer to use a single account. To do so, go to :menuselection:`Website
|
||||
--> Configuration --> Settings`, in the :guilabel:`Privacy` section, enable :guilabel:`Shared
|
||||
--> Configuration --> Settings`, in the :guilabel:`Privacy` section, enable the :guilabel:`Shared
|
||||
Customer Accounts` option.
|
||||
|
||||
.. note::
|
||||
When operating both B2B and B2C online shops, it's recommended to use separate websites for each
|
||||
business model.
|
||||
When operating both :ref:`B2B and B2C online shops <ecommerce/b2b_b2c/multiple-websites>`, it is
|
||||
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.
|
||||
Depending on the type of business (B2B or B2C), an invoice can either be generated automatically
|
||||
(B2B) or on demand of the customer (B2C). This process can be automated if (and when) the online
|
||||
payment is :ref:`confirmed <handling/sales>`.
|
||||
Depending on your needs, an invoice can either be generated automatically or on demand of the
|
||||
customer. This process can be automated if (and when) the online payment is :ref:`confirmed
|
||||
<handling/sales>`.
|
||||
|
||||
To automate invoicing, go to :menuselection:`Website --> Configuration --> Settings` and in the
|
||||
:guilabel:`Invoicing` section, enable :guilabel:`Automatic Invoice`.
|
||||
|
||||
@@ -22,8 +22,8 @@ To add a tax on a product, you can either set a tax in the :guilabel:`Customer T
|
||||
.. _ecommerce-price-management-tax-display:
|
||||
|
||||
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 -->
|
||||
Configuration --> Settings`, select the website, scroll down to the
|
||||
(:doc:`B2B vs. B2C <../b2b_b2c>`). To select the type of price displayed, go to
|
||||
:menuselection:`Website --> Configuration --> Settings`, select the website, scroll down to the
|
||||
:guilabel:`Shop - Products` 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
|
||||
@@ -35,9 +35,12 @@ Configuration --> Settings`, select the website, scroll down to the
|
||||
website in the database.
|
||||
|
||||
.. tip::
|
||||
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
|
||||
product page.
|
||||
- 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
|
||||
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:
|
||||
|
||||
@@ -305,8 +308,8 @@ Rules` configuration.
|
||||
Hide prices
|
||||
===========
|
||||
|
||||
Some businesses, such as B2B shops or companies that sell luxury or custom items, often prefer to
|
||||
showcase their products online without displaying their prices.
|
||||
Some businesses, such as :ref:`B2B shops <ecommerce/b2b_b2c/prices>` or companies that sell luxury
|
||||
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 -->
|
||||
Settings`, enable :guilabel:`Prevent Sale of Zero Priced Product` in the :guilabel:`Shop -
|
||||
|
||||
Reference in New Issue
Block a user