Skip to content

Commit 6bf1473

Browse files
Donapiauva-odoo
authored andcommitted
[IMP] ecommerce: checkout
taskid-4392415 closes #11635 Signed-off-by: Audrey Vandromme (auva) <[email protected]>
1 parent 2f05080 commit 6bf1473

File tree

14 files changed

+164
-106
lines changed

14 files changed

+164
-106
lines changed

content/applications/finance/fiscal_localizations/peru.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -921,7 +921,7 @@ Configuration
921921
After configuring the Peruvian :ref:`electronic invoicing <peru-accounting-settings>` flow, complete
922922
the following configurations for the **eCommerce** flow:
923923

924-
- :ref:`Client account registration <checkout-sign>`;
924+
- :ref:`Client account registration <ecommerce/checkout/policy>`;
925925
- :ref:`Automatic invoice <handling/legal>`;
926926
- :doc:`../../websites/ecommerce/products`: Set the :guilabel:`Invoicing Policy` to
927927
:guilabel:`Ordered quantities` and define the desired :guilabel:`Customer taxes`.

content/applications/finance/payment_providers.rst

+2
Original file line numberDiff line numberDiff line change
@@ -367,6 +367,8 @@ enable :guilabel:`Allow Express Checkout`.
367367
.. note::
368368
All prices shown on the express checkout payment form always include taxes.
369369

370+
.. _payment_providers/availability:
371+
370372
Availability
371373
============
372374

content/applications/general/users/portal.rst

+2
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ of the following in Odoo:
2525
Portal users only have read/view access, and will not be able to edit any documents in the
2626
database.
2727

28+
.. _portal/access:
29+
2830
Provide portal access to customers
2931
==================================
3032

content/applications/websites/ecommerce/checkout_payment_shipping/cart.rst

+13-8
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ The :guilabel:`Add to Cart` button can be customized in multiple ways. You can:
1313
.. seealso::
1414
:doc:`checkout`
1515

16+
.. _ecommerce/cart/action_customization:
17+
1618
'Add to Cart' action customization
1719
==================================
1820

@@ -41,7 +43,7 @@ of your choice.
4143

4244
.. note::
4345
Hiding the :guilabel:`Add to Cart` button is often used by B2B eCommerces that need to restrict
44-
purchases only to :ref:`customers with an account <checkout-sign>`, but still want to
46+
purchases only to :ref:`customers with an account <ecommerce/checkout/policy>`, but still want to
4547
display an online product catalog for those without.
4648

4749
To do so, go to :menuselection:`Website --> Configuration --> Settings --> Shop - Products` and tick
@@ -78,19 +80,22 @@ and place the building block. Once placed, you have the following options:
7880
:align: center
7981
:alt: Customizable 'Add to Cart' button
8082

81-
.. _cart/buy-now:
83+
.. _ecommerce/cart/buy-now:
8284

8385
'Buy Now' button
8486
================
8587

86-
You can enable the 'Buy Now' button to instantly take the customer to **checkout** instead
87-
of adding the product to the cart. The :guilabel:`Buy Now` button is an *additional* button and
88-
does not replace the :guilabel:`Add to Cart` button. To enable it, go to
89-
:menuselection:`Website --> Configuration --> Settings --> Shop - Checkout Process` and tick
90-
:guilabel:`Buy Now`.
88+
You can enable the :guilabel:`Buy Now` button to take customers directly to the :ref:`review order
89+
<ecommerce/checkout/review_order>` step instead of adding the product to the
90+
cart. This button is an *additional* option and does not replace the :guilabel:`Add to Cart` button.
91+
To do so, go to :menuselection:`Website --> Configuration --> Settings`, scroll to the
92+
:guilabel:`Shop—Checkout Process` section, enable :guilabel:`Buy Now`, and :guilabel:`Save`.
93+
94+
.. tip::
95+
Alternatively, you can enable the :guilabel:`Buy Now` button directly from a product page by
96+
clicking :guilabel:`Edit` and navigating to the :guilabel:`Customize` tab.
9197

9298
.. image:: cart/cart-buy-now.png
93-
:align: center
9499
:alt: Buy Now button
95100

96101
Re-order from portal
Loading

content/applications/websites/ecommerce/checkout_payment_shipping/checkout.rst

+136-95
Original file line numberDiff line numberDiff line change
@@ -2,133 +2,174 @@
22
Checkout
33
========
44

5-
You can customize the **checkout steps**, add more content using the **website builder**, and enable
6-
additional features such as **express checkout** and **sign in/up at checkout**.
7-
8-
You can use **building blocks** to add content at any step of the checkout process. To do so, from
9-
any **checkout page**, go to :menuselection:`Edit --> Blocks`, and drag and drop **building blocks**
10-
to the page.
5+
Once customers have added their desired products to the cart, they can access it by clicking the
6+
:icon:`fa-shopping-cart` button in the header to start the checkout process. In Odoo eCommerce, this
7+
process consists of sequential :ref:`steps <ecommerce/checkout/steps>`, some of which support
8+
additional features. The related checkout pages can be :ref:`customized
9+
<ecommerce/checkout/customize_steps>` using the website editor.
10+
11+
.. _ecommerce/checkout/policy:
12+
13+
Checkout policy
14+
===============
15+
16+
To allow customers to checkout as guests or force them to sign in/create an account, go to
17+
:menuselection:`Website --> Configuration --> Settings`, scroll down to the
18+
:guilabel:`Shop - Checkout Process` section, and configure the :guilabel:`Sign in/up at checkout`
19+
setting. The following options are available:
20+
21+
- :guilabel:`Optional`: Customers can check out as guests and register later via the order
22+
confirmation email to track their order.
23+
- :guilabel:`Disabled (buy as guest)`: Customers can checkout as guests without creating an account.
24+
- :guilabel:`Mandatory (no guest checkout)`: Customers must sign in or create an account at
25+
the :ref:`Review Order <ecommerce/checkout/review_order>` step to complete their purchase.
26+
27+
B2B access management
28+
---------------------
29+
30+
To restrict checkout to selected B2B customers, follow these steps:
31+
32+
#. Go to :menuselection:`Website --> Configuration --> Settings`, and in the
33+
:guilabel:`Shop - Checkout Process` section, enable the
34+
:ref:`Mandatory (no guest checkout) <ecommerce/checkout/policy>` option.
35+
#. Scroll down to the :guilabel:`Privacy` section, go to :guilabel:`Customer Account`, and select
36+
:guilabel:`On invitation`.
37+
#. Go to :menuselection:`Website --> eCommerce --> Customers`, switch to the :guilabel:`List` view,
38+
and select the customers you wish to grant access to your
39+
:doc:`portal <../../../general/users/portal>`.
40+
#. Click the :icon:`fa-cog` :guilabel:`Actions` button, then :guilabel:`Grant portal access`.
41+
#. Review the selected customers in the :guilabel:`Portal Access Management` pop-up and click
42+
:guilabel:`Grant Access`.
43+
44+
Once done, the relevant customers receive an email confirming their account creation, including
45+
instructions on setting a password and activating their account.
1146

1247
.. note::
13-
Note that content added through building blocks is **specific** to each step.
48+
- You can revoke access or re-invite a customer using the related buttons in the
49+
:guilabel:`Portal Access Management` pop-up.
50+
- Users can only have one :doc:`portal access <../../../general/users/portal>` per email.
51+
- Settings are website-specific, so you could set up a B2C website that allows guest checkout and
52+
B2B website with mandatory sign-in.
1453

15-
Checkout steps
16-
==============
54+
.. seealso::
55+
- :doc:`Customer accounts <../ecommerce_management/customer_accounts>`
56+
- :doc:`Portal access <../../../general/users/portal>`
1757

18-
Review order: promo code (and subtotal)
19-
---------------------------------------
58+
.. _ecommerce/checkout/steps:
2059

21-
If you have enabled :guilabel:`Discounts, Loyalty, & Gift Card` in the settings
22-
(:menuselection:`Website --> Configuration --> Settings --> Shop - Products`), you can enable the
23-
:guilabel:`Promo Code` field (:menuselection:`Edit --> Customize`) from any checkout page. Customers
24-
can then redeem gift cards and promotional codes at the :guilabel:`Review Order` step.
60+
Checkout steps
61+
==============
2562

26-
Furthermore, you can display the subtotal with discounts applied by enabling :guilabel:`Show
27-
Discount in Subtotal`.
63+
During the checkout process, customers are taken through the following steps:
2864

29-
.. image:: checkout/checkout-subtotal.png
30-
:align: center
31-
:alt: Subtotal discount
65+
- :ref:`Review order <ecommerce/checkout/review_order>`
66+
- :ref:`Delivery <ecommerce/checkout/delivery>`
67+
- :ref:`Extra info (if enabled) <ecommerce/checkout/extra_step>`
68+
- :ref:`Payment <ecommerce/checkout/payment>`
69+
- :ref:`Order confirmation <ecommerce/checkout/order_confirmation>`
3270

33-
Address: B2B fields
34-
-------------------
71+
.. _ecommerce/checkout/customize_steps:
3572

36-
Optional :guilabel:`TIN/VAT` and :guilabel:`Company Name` fields can be added to the
37-
:guilabel:`Billing Address` form for B2B customers, at the :guilabel:`Address` step. To add the
38-
fields, go to :menuselection:`Edit --> Customize` from any checkout page, and enable
39-
:guilabel:`Show B2B fields`.
73+
Each step can be customized using the website editor: Click :guilabel:`Edit` to add
74+
:doc:`building blocks <../../website/web_design/building_blocks>` from the :guilabel:`Blocks` tab or
75+
open to the :guilabel:`Customize` tab to enable various checkout options.
4076

41-
Request extra info (additional step)
42-
------------------------------------
77+
.. note::
78+
Content added through building blocks is **specific** to each step.
4379

44-
You can request :guilabel:`Extra Info` from the customer by adding an :guilabel:`Extra Info` step
45-
between the :guilabel:`Address` and :guilabel:`Confirm Order` steps. To do so, go to
46-
:menuselection:`Edit --> Customize` from any checkout page, and enable :guilabel:`Extra Step
47-
Option`.
80+
.. _ecommerce/checkout/review_order:
4881

49-
.. image:: checkout/checkout-steps.png
50-
:align: center
51-
:alt: Checkout steps
82+
Review order
83+
------------
5284

53-
The :guilabel:`Extra Info` step is an online form linked to the quotation or sales order of the
54-
customer. The information added during that step can be found on the quotation or sales order of the
55-
customer from the back end, in the **Sales** app.
85+
The :guilabel:`Review Order` step allows customers to see the items they added to their cart, adjust
86+
quantities, or :guilabel:`Remove` products. Information related to the product prices and taxes
87+
applied are also displayed. Customers can then click the :guilabel:`Checkout` button to continue to
88+
the :ref:`Delivery <ecommerce/checkout/delivery>` step.
5689

57-
When enabled, you can remove, add, and modify fields of the form by clicking on :guilabel:`Edit` in
58-
the top-right corner, and then clicking on any of the form's fields. All customization options, as
59-
well as the :guilabel:`+ Field` button to add new fields, are available at the bottom of the
60-
:guilabel:`Customize` menu under the :guilabel:`Field` section.
90+
Open the website editor to :ref:`enable <ecommerce/checkout/customize_steps>` checkout options such
91+
as:
6192

62-
.. image:: checkout/checkout-form.png
63-
:align: center
64-
:alt: Online form customization
93+
- :guilabel:`Suggested Accessories`: to showcase :ref:`accessory products
94+
<ecommerce/cross_upselling/accessory>`;
95+
- :guilabel:`Promo Code`: to allow customers to redeem :ref:`gift cards <ewallet_gift/gift-cards>`
96+
or apply :doc:`discount codes <../../../sales/sales/products_prices/loyalty_discount>`;
97+
- :guilabel:`Add to Wishlist`: To allow signed-in users to remove a product from their cart and add
98+
it to their wishlist, go to :menuselection:`Website --> Configuration --> Settings`, scroll to
99+
the :guilabel:`Shop - Products` section, and enable :guilabel:`Wishlists`. The :guilabel:`Add to
100+
Wishlist` option is then enabled by default in the website editor.
65101

66-
Confirm order: terms and conditions
67-
-----------------------------------
102+
.. note::
103+
- If a :doc:`fiscal position </applications/finance/fiscal_localizations>` is detected automatically,
104+
the product tax is determined based on the customer's IP address.
105+
- If the installed :doc:`payment provider </applications/finance/payment_providers>` supports
106+
:ref:`express checkout <payment_providers/express_checkout>`, a dedicated button is displayed,
107+
allowing customers to go straight from the cart to the confirmation page without filling out
108+
the contact form.
68109

69-
You can ask customers to agree to the :guilabel:`Terms & Conditions` in order to confirm their order
70-
by enabling :guilabel:`Accept Terms & Conditions` under :menuselection:`Edit --> Customize` on any
71-
checkout page.
110+
.. _ecommerce/checkout/delivery:
72111

73-
.. image:: checkout/checkout-terms.png
74-
:align: center
75-
:alt: Terms and conditions
112+
Delivery
113+
--------
76114

77-
Express checkout
78-
================
115+
Once they have reviewed their order:
79116

80-
You can enable a :guilabel:`Buy Now` button on products' pages which instantly takes the customer to
81-
the :guilabel:`Confirm Order` checkout page, instead of adding the product to the cart. To do so, go
82-
to :menuselection:`Website --> Configuration --> Settings --> Shop - Checkout Process section` and
83-
tick :guilabel:`Buy Now`. Alternatively, the :guilabel:`Buy Now` button can also be enabled from any
84-
product's page by going :menuselection:`Edit --> Customize`, in the :guilabel:`Cart` section.
117+
- Unsigned-in customers are prompted to :guilabel:`Sign in` or enter their
118+
:guilabel:`Email address`, along with their delivery address and phone details;
119+
- Signed-in customers can select the appropriate :guilabel:`Delivery address`.
85120

86-
The button can be found next to the :guilabel:`Add to Cart` button on the product's page.
121+
They can then :doc:`choose a delivery method <shipping>`, select or enter their :guilabel:`Billing
122+
Address` (or toggle the :guilabel:`Same as delivery address` switch if the billing and delivery
123+
addresses are identical), and click :guilabel:`Confirm` to proceed to the next step.
87124

88-
.. image:: checkout/checkout-express.png
89-
:align: center
90-
:alt: Buy now (express checkout) button
125+
.. tip::
126+
For B2B customers, you can also :ref:`enable <ecommerce/checkout/customize_steps>` optional
127+
:guilabel:`VAT` and :guilabel:`Company name` fields by toggling the :guilabel:`Show B2B Fields`
128+
option in the website editor.
91129

92-
.. _checkout-sign:
130+
.. _ecommerce/checkout/extra_step:
93131

94-
Guest and signed-in checkout
95-
============================
132+
Extra info
133+
----------
96134

97-
It is possible to introduce a **checkout policy** under which customers can either checkout as
98-
**guests** or **signed-in users only**. Customers can also checkout as guest, and **optionally sign
99-
up later** in order to track their order, if enabled.
135+
You can add an :guilabel:`Extra Info` step in the checkout process to collect additional
136+
customer information through an online form, which is then included in the :ref:`sales order
137+
<handling/sales>`. To do so :ref:`enable <ecommerce/checkout/customize_steps>` the :guilabel:`Extra
138+
Step` option in the website editor. The form can be :ref:`customized <website/dynamic_content/form>`
139+
as needed.
100140

101-
To select a policy, go to :menuselection:`Website --> Configuration --> Settings --> Shop - Checkout
102-
Process`. You can choose between:
141+
.. tip::
142+
Alternatively, go to :menuselection:`Website --> Configuration --> Settings`, scroll to the
143+
:guilabel:`Shop - Checkout Process` section, enable :guilabel:`Extra Step During Checkout`, and
144+
click :guilabel:`Save`. Click :icon:`fa-arrow-right` :guilabel:`Configure Form` to customize the
145+
form.
103146

104-
- :guilabel:`Optional`: allows guests to checkout and later register from the **order confirmation**
105-
email to track their order;
106-
- :guilabel:`Disabled (buy as guest)`: customers can only checkout as guests;
107-
- :guilabel:`Mandatory (no guest checkout)`: customers can only checkout if they have signed-in.
147+
.. _ecommerce/checkout/payment:
108148

109-
.. seealso::
110-
- :doc:`../ecommerce_management/customer_accounts`
111-
- :doc:`/applications/general/users/portal`
149+
Payment
150+
-------
112151

113-
B2B access restriction
114-
----------------------
152+
At the :guilabel:`Payment` step, customers :guilabel:`Choose a payment method`, enter their
153+
payment details, and click :guilabel:`Pay now`.
115154

116-
If you wish to restrict checkout only to **selected B2B customers**, enable :guilabel:`Mandatory (no
117-
guest checkout)` and go to :menuselection:`Website --> eCommerce --> Customers`. Select the customer
118-
you wish to **grant access to**, click :menuselection:`Action --> Grant portal access`, and click
119-
:guilabel:`Grant Access`.
155+
You can require customers to agree to your :doc:`terms and conditions
156+
</applications/finance/accounting/customer_invoices/terms_conditions>` before payment. To
157+
:ref:`enable <ecommerce/checkout/customize_steps>` this option, go to the website editor and toggle
158+
the :guilabel:`Accept Terms & Conditions` feature.
120159

121160
.. tip::
122-
Settings are **website-specific**, which means you can set up a B2C website allowing **guest**
123-
checkout, and another for B2B customers with **mandatory sign-in**.
161+
Enable the :ref:`developer mode <developer-mode>` and click the :icon:`fa-bug` :guilabel:`bug`
162+
icon to display an :ref:`availability <payment_providers/availability>` report for payment
163+
providers and payment methods, which helps diagnose potential availability issues on the payment
164+
form.
124165

125-
.. note::
126-
Users can only have one portal access per **email**. They *cannot* be granted access to two
127-
different portals with the same **email address**.
166+
.. _ecommerce/checkout/order_confirmation:
167+
168+
Order confirmation
169+
------------------
128170

129-
Shared customer accounts
130-
------------------------
171+
The final step of the checkout process is the :guilabel:`Order confirmation`, which provides a
172+
summary of the customer's purchase details.
131173

132-
If you enable :guilabel:`Shared Customer Accounts` under :menuselection:`Website --> Configuration
133-
--> Settings --> Privacy section`, you can allow or disallow access to *all* websites for one same
134-
account.
174+
.. seealso::
175+
:doc:`Order handling <../../ecommerce/ecommerce_management/order_handling>`

content/applications/websites/ecommerce/ecommerce_management/customer_accounts.rst

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ From there, customers can access their :guilabel:`quotations`, :guilabel:`orders
1313
:alt: Customer account log-in
1414

1515
.. note::
16-
Customers can only have an account if the :ref:`sign in/up at checkout <checkout-sign>` option
17-
allows for accounts creation.
16+
Customers can only have an account if the
17+
:ref:`sign in/up at checkout <ecommerce/checkout/policy>` option allows for account creation.
1818

1919
.. tip::
2020
Similarly to the rest of the website, the customer account page can be customized with **content

content/applications/websites/ecommerce/products.rst

+2
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,8 @@ To customize the layout of the main :guilabel:`Shop` page or modify its content,
121121
:icon:`fa-shopping-cart` (:guilabel:`Add to cart`) icon on each product's image, which takes the
122122
customer to the checkout page.
123123

124+
.. _ecommerce/products/wishlist:
125+
124126
- Select the :icon:`fa-heart-o` (:guilabel:`Wishlist`) option to display an
125127
:icon:`fa-shopping-cart` (:guilabel:`Add to wishlist`) icon on each product's image allowing
126128
logged-in customers to save products to a wishlist.

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

+6
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,12 @@ The eCommerce catalog is the equivalent of your physical store shelves: it allow
66
what you have to offer. Clear categories, available options, sorting, and navigation threads help
77
you structure it efficiently.
88

9+
.. tip::
10+
Go to :menuselection:`Website --> Configuration --> Settings`, scroll down to the
11+
:guilabel:`Privacy` section to restrict :guilabel:`Ecommerce Access` to logged-in users and/or
12+
enable :guilabel:`Shared Customer Accounts` to allow access to all websites with a single
13+
account.
14+
915
Categorize the product catalog
1016
==============================
1117

0 commit comments

Comments
 (0)