Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion content/applications/finance/fiscal_localizations/peru.rst
Original file line number Diff line number Diff line change
Expand Up @@ -923,7 +923,7 @@ Configuration
After configuring the Peruvian :ref:`electronic invoicing <peru-accounting-settings>` flow, complete
the following configurations for the **eCommerce** flow:

- :ref:`Client account registration <ecommerce/checkout/policy>`;
- :ref:`Client account registration <ecommerce/customer_accounts/checkout-access>`;
- :ref:`Automatic invoice <handling/legal>`;
- :doc:`../../websites/ecommerce/products`: Set the :guilabel:`Invoicing Policy` to
:guilabel:`Ordered quantities` and define the desired :guilabel:`Customer taxes`.
Expand Down
52 changes: 5 additions & 47 deletions content/applications/websites/ecommerce/checkout.rst
Original file line number Diff line number Diff line change
Expand Up @@ -122,53 +122,6 @@ Portal` feature.
.. image:: checkout/order-again-button.png
:alt: Re-order button

.. _ecommerce/checkout/policy:

Checkout policy
===============

To allow customers to checkout as guests or force them to sign in/create an account, go to
:menuselection:`Website --> Configuration --> Settings`, scroll down to the :guilabel:`Shop -
Checkout Process` section, and configure the :guilabel:`Sign in/up at checkout` setting. The
following options are available:

- :guilabel:`Optional`: Customers can check out as guests and register later via the order
confirmation email to track their order.
- :guilabel:`Disabled (buy as guest)`: Customers can checkout as guests without creating an account.
- :guilabel:`Mandatory (no guest checkout)`: Customers must sign in or create an account at the
:ref:`Review Order <ecommerce/checkout/review_order>` step to complete their purchase.

B2B access management
---------------------

To restrict checkout to selected B2B customers:

#. Go to :menuselection:`Website --> Configuration --> Settings`, and in the :guilabel:`Shop -
Checkout Process` section, enable the :ref:`Mandatory (no guest checkout)
<ecommerce/checkout/policy>` option.
#. Scroll down to the :guilabel:`Privacy` section, go to :guilabel:`Customer Account`, and select
:guilabel:`On invitation`.
#. Go to :menuselection:`Website --> eCommerce --> Customers`, switch to the :guilabel:`List` view,
and select the customers you wish to grant access to your :doc:`portal
<../../general/users/portal>`.
#. Click the :icon:`fa-cog` :guilabel:`Actions` button, then :guilabel:`Grant portal access`.
#. Review the selected customers in the :guilabel:`Portal Access Management` pop-up and click
:guilabel:`Grant Access`.

Once done, the relevant customers receive an email confirming their account creation, including
instructions on setting a password and activating their account.

.. note::
- You can revoke access or re-invite a customer using the related buttons in the
:guilabel:`Portal Access Management` pop-up.
- Users can only have one :doc:`portal access <../../general/users/portal>` per email.
- Settings are website-specific, so you could set up a B2C website that allows guest checkout and
a B2B website with mandatory sign-in.

.. seealso::
- :doc:`Customer accounts documentation <customer_accounts>`
- :doc:`Portal access documentation <../../general/users/portal>`

.. _ecommerce/checkout/steps:

Checkout steps
Expand All @@ -191,6 +144,11 @@ checkout options.
.. note::
Content added through building blocks is **specific** to each step.

.. 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/checkout/review_order:

Review order
Expand Down
137 changes: 113 additions & 24 deletions content/applications/websites/ecommerce/customer_accounts.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,42 +2,131 @@
Customer accounts
=================

Having customer accounts on an eCommerce allows customers to access all their documents from a
single place. To access their account, customers must be **logged-in** on the eCommerce website,
click on their **username** in the top-right corner of the screen, and click :guilabel:`My Account`.
From there, customers can access their :guilabel:`quotations`, :guilabel:`orders`,
:guilabel:`invoices`, etc.
Using customer accounts for an ecommerce shop enables you to :ref:`manage customers
<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.

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
Account`. From there, they can view all their documents in one place, such as quotations, orders,
invoices, and more.

.. image:: customer_accounts/account-log.png
:align: center
:alt: Customer account log-in
:alt: Customer account access

.. note::
Customers can only have an account if the
:ref:`sign in/up at checkout <ecommerce/checkout/policy>` option allows for account creation.
.. tip::
The customer account page can be customized with building blocks and other features through
the :doc:`website builder <../website/web_design>`.

.. _ecommerce/customer_accounts/account-creation:

Customer account creation
=========================

You can choose whether customer accounts and document access are available to everyone or restricted
to invited users only. To do so, go to :menuselection:`Website --> Configuration --> Settings`,
then scroll down to the :guilabel:`Privacy` section. Under :guilabel:`Customer Account`, select one
of the following options:

- :guilabel:`On invitation`: Customers can only create an account if the website owner sends them
an invitation.
- :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.

To send an email invitation to a customer:

- Go to :menuselection:`Website --> eCommerce --> Customers`.
- Select a customer or click :guilabel:`New` to create one, ensuring an :guilabel:`Email` address
is set.
- Click the :icon:`fa-cog` :guilabel:`(Actions)` icon next to the record's name at the top-left and
select :guilabel:`Grant portal access`.
- In the :guilabel:`Portal Access Management` pop-up, click :guilabel:`Grant Access` to send the
invitation.

.. tip::
Similarly to the rest of the website, the customer account page can be customized with **content
blocks** and other features through the **website builder**.
To invite multiple customers at once, switch to the customers :icon:`oi-view-list`
:guilabel:`List` view, select several customers, click the :icon:`fa-cog` :guilabel:`Actions`
button, and select :guilabel:`Grant portal access`.

.. seealso::
:doc:`/applications/general/users/portal`
Once done, the customer(s) receive an email confirming their account creation, including
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.

.. tip::
It is possible to configure a website form with a :guilabel:`Create a Customer` :ref:`action
<website/building_blocks/action>` to automatically create a customer record in the backend when
filled in.

Access restriction
==================

It is possible to allow or restrict the documents to which customers have access through the website
builder. Log in your **own** account with your Odoo database credentials, and go to
:menuselection:`Edit --> Customize`. From the website builder menu, enable or disable the documents
customers can have access to.
Once a customer account is created, it is still possible to adjust the access rights
either globally or for individual users:

- :ref:`Revoke access or re-invite a customer <portal/access>`
using the related buttons in the :guilabel:`Portal Access Management` pop-up.
- Restrict :ref:`access to the shop <ecommerce/customer_accounts/shop-access>`;
- Decide whether customers need to create an account to :ref:`complete the checkout
<ecommerce/customer_accounts/checkout-access>`.

.. image:: customer_accounts/account-documents.png
:align: center
:alt: Documents to which customers have access to from their account
.. tip::
It is also possible to define the types of documents customers have access to. To do so, click
your username in the upper-right corner of the website, select :guilabel:`My Account` and open
the :doc:`website builder <../website/web_design>`. On the :guilabel:`Customize` tab, enable or
disable access to specific documents as needed.

.. _ecommerce/customer_accounts/shop-access:

Shop access
-----------

To restrict access to the entire online shop for users who are not logged-in, go to
:menuselection:`Website --> Configuration --> Settings`, scroll to :guilabel:`Privacy` and under
:guilabel:`Ecommerce Access`, select :guilabel:`Logged in users`. Select :guilabel:`All users` if
the shop should be visible to every website visitor.

.. tip::
To restrict access to the shop's pricing, use :ref:`pricelists <ecommerce/prices/pricelists>`
with :ref:`country groups <ecommerce/prices/country-groups>`.

.. _ecommerce/customer_accounts/checkout-access:

Checkout access
---------------

To allow customers to checkout as guests or force them to sign in/create an account, go to
:menuselection:`Website --> Configuration --> Settings`, scroll down to the :guilabel:`Shop -
Checkout Process` section, and configure the :guilabel:`Sign in/up at checkout` setting. The
following options are available:

- :guilabel:`Optional`: Customers can check out as guests and register later via the order
confirmation email to track their order.
- :guilabel:`Disabled (buy as guest)`: Customers can checkout as guests without creating an account.
- :guilabel:`Mandatory (no guest checkout)`: Customers must sign in or create an account at the
:ref:`Review Order <ecommerce/checkout/review_order>` step to complete their purchase.

.. note::
- Settings are specific to each website, allowing you to configure a B2C website with guest
checkout and a B2B website that requires customers to sign in.
- To use the :ref:`wishlist <ecommerce/products/wishlists>` feature, customers must
create an account to save their favorite items for later.

Multi-website account
=====================

If you own multiple websites, you can make customer accounts available across **all** websites.
Then, the customer only needs one account. To do so, go to :menuselection:`Website --> Configuration
--> Settings --> Privacy section`, and enable :guilabel:`Shared Customer Accounts`.
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
Customer Accounts` option.

.. note::
When operating both B2B and B2C online shops, it's recommended to use separate websites for each
business model.
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,8 @@ in your database, if applicable. To add a form to a website page, drag and drop
.. image:: building_blocks/form-block.png
:alt: Example of a form block

.. _website/building_blocks/action:

Action
~~~~~~

Expand Down