Skip to content

Commit 7f7e2bb

Browse files
committed
[ADD] ecommerce/b2b-b2c: create B2B/B2C page
task-3339294 closes #15304 X-original-commit: 5df8dc7 Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com> Signed-off-by: Larissa Manderfeld (lman) <lman@odoo.com>
1 parent e1863c3 commit 7f7e2bb

File tree

7 files changed

+152
-20
lines changed

7 files changed

+152
-20
lines changed

content/applications/websites/ecommerce.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ products and increase your average cart sizes.
2727
ecommerce/checkout
2828
ecommerce/shipping
2929
ecommerce/order_handling
30+
ecommerce/b2b_b2c
3031
ecommerce/customer_accounts
3132
ecommerce/performance
3233
ecommerce/google_merchant_center
Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
===========
2+
B2B and B2C
3+
===========
4+
5+
Odoo eCommerce is designed to fulfill the needs of both B2B and B2C companies. It allows you to
6+
configure :doc:`prices <products/prices>`, manage :doc:`access <customer_accounts>` for specific
7+
customers, and :ref:`customize the website <ecommerce/b2b_b2c/multiple-websites>` to support B2B,
8+
B2C, or both business models.
9+
10+
.. _ecommerce/b2b_b2c/prices:
11+
12+
Prices
13+
======
14+
15+
While B2C businesses sell directly to the end consumer with a :ref:`tax-included
16+
<ecommerce-price-management-tax-display>` price, B2B businesses usually :ref:`exclude taxes
17+
<ecommerce-price-management-tax-display>` and may even prefer to hide prices altogether, showcasing
18+
only their products instead.
19+
To configure a B2B-specific ecommerce shop, make sure the :ref:`Tax-Excluded
20+
<ecommerce/prices/taxes>` option is enabled, and complete the configuration to :ref:`hide the
21+
pricing <ecommerce/prices/hide-prices>`.
22+
23+
.. tip::
24+
To make sure that only customers with an :ref:`account and granted access
25+
<ecommerce/customer_accounts/account-creation>` can see the prices, go to
26+
:menuselection:`Website --> eCommerce --> Customers`, click the :icon:`fa-caret-down`
27+
:guilabel:`(dropdown)` icon from the search bar, and select the :guilabel:`Archived` filter.
28+
Then click the :guilabel:`Public user` card, go to the :guilabel:`Sales & Purchase` tab, and
29+
add the zero-priced pricelist configured to :ref:`cover all countries
30+
<ecommerce/prices/country-groups>`. Keep the :guilabel:`Public User` contact :guilabel:`Archived`
31+
at all times. Website visitors now see the products without prices, while only customers with an
32+
:ref:`account invitation <ecommerce/customer_accounts/account-creation>` and an assigned
33+
:ref:`pricelist <ecommerce/prices/pricelists>` can view the pricing in the customer portal.
34+
35+
.. seealso::
36+
- :doc:`/applications/finance/accounting/taxes/B2B_B2C`
37+
- :ref:`Discounts <ecommerce/prices/discounts>`
38+
39+
Access request
40+
==============
41+
42+
When running a B2B business, you usually :ref:`hide the pricing <ecommerce/b2b_b2c/prices>` on the
43+
web shop and make it available for :ref:`logged-in users <ecommerce/customer_accounts/shop-access>`
44+
only. To prevent anyone from signing up freely, set the :ref:`Customer Account
45+
<ecommerce/customer_accounts/account-creation>` setting option to :guilabel:`On invitation`.
46+
To create a page where customers request access, open the :doc:`website editor
47+
<../website/web_design>`, :ref:`create a form <website/building_blocks/form>`, customize it, and in
48+
the :guilabel:`Action` field, select :guilabel:`Create a customer`.
49+
50+
.. tip::
51+
You can assign tags created on a contact form under :menuselection:`Website --> Configuration
52+
--> Customers` to identify what kind of customers have submitted the form. To do so, select
53+
a field in the form while in :guilabel:`Edit` mode, click the :guilabel:`+ Field` button under
54+
the :guilabel:`Customize` tab, and set the field's :guilabel:`Type` to :guilabel:`Tags`.
55+
Toggle the tags that should be automatically assigned when a customer fills in the form and set
56+
the field's :guilabel:`Visibility` to :guilabel:`Hidden`.
57+
58+
When a customer submits the form, a new contact is automatically created in the database. The
59+
contact is assigned the first pricelist from the list of available pricelists, and, if applicable,
60+
the specified tags.
61+
62+
Submitted requests can be found under the :menuselection:`Website --> eCommerce --> Customers`.
63+
Select the customer you want to :ref:`grant portal access
64+
<ecommerce/customer_accounts/grant-access>` to. Once done, the selected customer is able to
65+
view the B2B prices and products. Make sure the correct pricelist is assigned to their
66+
contact form.
67+
68+
.. tip::
69+
- It is also possible to hide the entire shop from the public using the :ref:`Ecommerce Access
70+
<ecommerce/customer_accounts/shop-access>` setting and only make it available for logged-in
71+
customers.
72+
- Configure the :ref:`checkout policy <ecommerce/customer_accounts/checkout-access>` to
73+
allow/disallow guest checkout for B2C businesses.
74+
- Enable the :ref:`Shared Customer Accounts <ecommerce/customer_accounts/multiple-websites>`
75+
feature to allow customers to use the same account on :ref:`all
76+
<ecommerce/b2b_b2c/multiple-websites>` your websites.
77+
78+
.. seealso::
79+
:doc:`customer_accounts`
80+
81+
.. _ecommerce/b2b_b2c/multiple-websites:
82+
83+
Multiple websites
84+
=================
85+
86+
Settings are website-specific, which means it is possible to configure different behaviors for
87+
each website. For example, you can set up a B2C website that allows :ref:`guest checkout
88+
<ecommerce/customer_accounts/checkout-access>` and displays :ref:`tax-included prices
89+
<ecommerce-price-management-tax-display>`, and a B2B website that requires :ref:`sign-in
90+
<ecommerce/customer_accounts/checkout-access>` and shows :ref:`tax-excluded prices
91+
<ecommerce-price-management-tax-display>`. However, each :ref:`pricelist
92+
<ecommerce/prices/pricelists>` can only be assigned to one website at a time. If you want to use
93+
the same pricelist on several websites, duplicate the pricelist and assign each copy to its
94+
corresponding website.
95+
96+
.. tip::
97+
If you are running a B2B and B2C business, we *strongly* recommend to create two :doc:`separate
98+
websites <../website/configuration/multi_website>` and assign a :ref:`zero-priced pricelist
99+
<ecommerce/b2b_b2c/prices>` to the B2B website and a regular pricelist to the B2C website.
100+
In case, you prefer using a single website, configure it using :ref:`country groups
101+
<ecommerce/prices/country-groups>` and assigning :ref:`pricelists <ecommerce/prices/pricelists>`
102+
to customers, and deactivate the :ref:`Selectable <ecommerce/prices/selectable-pricelists>`
103+
option.
104+
105+
Additional features
106+
===================
107+
108+
Invoice
109+
-------
110+
111+
Depending on the type of business (B2B or B2C), you might want to issue an invoice. An invoice can
112+
either be generated automatically (for B2B) or on demand of the customer (for B2C). This process
113+
can be automated if (and when) the online payment is :ref:`confirmed <handling/sales>`.
114+
To automate invoicing, enable the :ref:`Automatic Invoice <handling/legal>` setting. If this
115+
feature has not been enabled, the customer only receives an order confirmation.
116+
117+
.. _ecommerce/b2b_b2c/b2b-fields:
118+
119+
B2B fields at checkout
120+
----------------------
121+
122+
On the :guilabel:`Order summary` page, open the :doc:`website editor <../website/web_design>`, go to
123+
the :guilabel:`Style` tab, and toggle the :guilabel:`Show B2B Fields` switch to display B2B-specific
124+
additional fields like :guilabel:`VAT` or :guilabel:`Company Name` during the :ref:`delivery
125+
<ecommerce/checkout/delivery>` step.
6.78 KB
Loading

content/applications/websites/ecommerce/checkout.rst

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -144,8 +144,8 @@ checkout options.
144144

145145
.. tip::
146146
Restrict access to the :ref:`shop <ecommerce/customer_accounts/shop-access>` and :ref:`checkout
147-
<ecommerce/customer_accounts/checkout-access>` for specific customers, e.g., in a B2B business
148-
setup.
147+
<ecommerce/customer_accounts/checkout-access>` for specific customers, e.g., in a :doc:`B2B
148+
<b2b_b2c>` business setup.
149149

150150
.. _ecommerce/checkout/review_order:
151151

@@ -194,8 +194,7 @@ addresses are identical), and click :guilabel:`Confirm` to proceed to the next s
194194

195195
.. tip::
196196
- For B2B customers, you can also :ref:`enable <ecommerce/checkout/customize_steps>` optional
197-
:guilabel:`VAT` and :guilabel:`Company name` fields by toggling the :guilabel:`Show B2B Fields`
198-
option in the website editor.
197+
:ref:`B2B fields <ecommerce/b2b_b2c/b2b-fields>` in the website editor.
199198
- You can add a checkbox for users without an account to sign up for a newsletter. To do so, go
200199
to :menuselection:`Website --> Configuration --> Settings`, scroll down to the
201200
:guilabel:`eCommerce` section, enable the :guilabel:`Newsletter` feature, and select a

content/applications/websites/ecommerce/customer_accounts.rst

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Using customer accounts for an ecommerce shop enables you to :ref:`manage custom
66
<ecommerce/customer_accounts/account-creation>`, control access to the :ref:`shop
77
<ecommerce/customer_accounts/shop-access>`, the :ref:`checkout
88
<ecommerce/customer_accounts/checkout-access>`, or the :ref:`customer portal <portal/access>`,
9-
and support both B2B and B2C operations.
9+
and support both :doc:`B2B and B2C operations <b2b_b2c>`.
1010

1111
After logging in, customers can access their :doc:`customer portal <../../general/users/portal>`
1212
by clicking their username in the top-right corner of the screen and selecting :guilabel:`My
@@ -35,6 +35,8 @@ of the following options:
3535
- :guilabel:`Free sign up`: Every website visitor can create an account and sign in. They will
3636
get access to the :doc:`portal <../../general/users/portal>` by default.
3737

38+
.. _ecommerce/customer_accounts/grant-access:
39+
3840
To send an email invitation to a customer:
3941

4042
- Go to :menuselection:`Website --> eCommerce --> Customers`.
@@ -56,9 +58,9 @@ instructions on setting a password and activating their account.
5658
.. note::
5759
- When selecting the :guilabel:`Free sign up`, a clickable :guilabel:`Don't have an account?`
5860
link appears under the login form on the website.
59-
- The :guilabel:`On invitation` option is especially useful for B2B businesses that prefer
60-
to keep :ref:`prices hidden <ecommerce/prices/hide-prices>` on the website and grant access
61-
only to invited customers.
61+
- The :guilabel:`On invitation` option is especially useful for :ref:`B2B
62+
<ecommerce/b2b_b2c/prices>` businesses that prefer to keep :ref:`prices hidden
63+
<ecommerce/prices/hide-prices>` on the website and grant access only to invited customers.
6264

6365
.. tip::
6466
It is possible to configure a website form with a :guilabel:`Create a Customer` :ref:`action
@@ -119,6 +121,8 @@ available:
119121
- To use the :ref:`wishlist <ecommerce/products/wishlists>` feature, customers must
120122
create an account to save their favorite items for later.
121123

124+
.. _ecommerce/customer_accounts/multiple-websites:
125+
122126
Multi-website account
123127
=====================
124128

@@ -128,5 +132,5 @@ websites, allowing each customer to use a single account. To do so, go to :menus
128132
Customer Accounts` option.
129133

130134
.. note::
131-
When operating both B2B and B2C online shops, it's recommended to use separate websites for each
132-
business model.
135+
When operating both :ref:`B2B and B2C online shops <ecommerce/b2b_b2c/multiple-websites>`, it is
136+
recommended to use separate websites for each business model.

content/applications/websites/ecommerce/order_handling.rst

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -104,9 +104,9 @@ Invoice and legal requirements
104104
==============================
105105

106106
The final step of an ecommerce order is to generate the invoice and send it to the customer.
107-
Depending on the type of business (B2B or B2C), an invoice can either be generated automatically
108-
(B2B) or on demand of the customer (B2C). This process can be automated if (and when) the online
109-
payment is :ref:`confirmed <handling/sales>`.
107+
Depending on your needs, an invoice can either be generated automatically or on demand of the
108+
customer. This process can be automated if (and when) the online payment is :ref:`confirmed
109+
<handling/sales>`.
110110

111111
To automate invoicing, go to :menuselection:`Website --> Configuration --> Settings` and in the
112112
:guilabel:`Invoicing` section, enable :guilabel:`Automatic Invoice`.

content/applications/websites/ecommerce/products/prices.rst

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ product form or use :doc:`fiscal positions
2222
.. _ecommerce-price-management-tax-display:
2323

2424
Choosing the displayed price tax usually depends on a country's regulations or the type of customers
25-
(B2B vs. B2C). To select the type of price displayed, go to :menuselection:`Website -->
26-
Configuration --> Settings`, select the website, scroll down to the
25+
(:doc:`B2B vs. B2C <../b2b_b2c>`). To select the type of price displayed, go to
26+
:menuselection:`Website --> Configuration --> Settings`, select the website, scroll down to the
2727
:guilabel:`eCommerce` section, and under :guilabel:`Display Product Prices` select between:
2828

2929
- :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
3535
website in the database.
3636

3737
.. tip::
38-
Switch the :ref:`Tax indication <ecommerce/products/product-presentation>` toggle on in the
39-
website editor to explicitly indicate if the price is `Tax excluded` or `Tax included` on the
40-
product page.
38+
- Switch the :ref:`Tax indication <ecommerce/products/product-presentation>` toggle on in the
39+
website editor to explicitly indicate if the price is `Tax excluded` or `Tax included` on the
40+
product page.
41+
- Enable specific :ref:`B2B fields <ecommerce/b2b_b2c/b2b-fields>` in the :ref:`delivery step
42+
<ecommerce/checkout/delivery>` during the checkout using the :doc:`website editor
43+
</applications/websites/website/web_design>`.
4144

4245
.. _ecommerce/prices/price-per-unit:
4346

@@ -306,8 +309,8 @@ Price` configuration.
306309
Hide prices
307310
===========
308311

309-
Some businesses, such as B2B shops or companies that sell luxury or custom items, often prefer to
310-
showcase their products online without displaying their prices.
312+
Some businesses, such as :ref:`B2B shops <ecommerce/b2b_b2c/prices>` or companies that sell luxury
313+
or custom items, often prefer to showcase their products online without displaying their prices.
311314

312315
To hide product prices on the ecommerce, go to :menuselection:`Website --> Configuration -->
313316
Settings`, enable :guilabel:`Prevent Sale of Zero Priced Product` in the :guilabel:`eCommerce`

0 commit comments

Comments
 (0)