diff --git a/content/applications/websites/ecommerce.rst b/content/applications/websites/ecommerce.rst index f1c4d8dc59..34cb2f51c1 100644 --- a/content/applications/websites/ecommerce.rst +++ b/content/applications/websites/ecommerce.rst @@ -28,5 +28,6 @@ products and increase your average cart sizes. ecommerce/payments ecommerce/shipping ecommerce/order_handling + ecommerce/b2b_b2c ecommerce/customer_accounts ecommerce/performance diff --git a/content/applications/websites/ecommerce/b2b_b2c.rst b/content/applications/websites/ecommerce/b2b_b2c.rst new file mode 100644 index 0000000000..9d84f02ec8 --- /dev/null +++ b/content/applications/websites/ecommerce/b2b_b2c.rst @@ -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 `, manage :doc:`access ` for specific +customers, and :ref:`customize the website ` 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 +` price, B2B businesses usually :ref:`exclude taxes +` 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 +` option is enabled, and complete the configuration to :ref:`hide the +pricing `. + +.. tip:: + To make sure that only customers with an :ref:`account and granted access + ` 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 + `. 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 ` and an assigned + :ref:`pricelist ` can view the pricing in the customer portal. + +.. seealso:: + - :doc:`/applications/finance/accounting/taxes/B2B_B2C` + - :ref:`Discounts ` + +Access request +============== + +When running a B2B business, you usually :ref:`hide the pricing ` on the +web shop and make it available for :ref:`logged-in users ` +only. To prevent anyone from signing up freely, set the :ref:`Customer Account +` 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 `, 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 +` 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 + ` setting and only make it available for logged-in + customers. + - Configure the :ref:`checkout policy ` to + allow/disallow guest checkout for B2C businesses. + - Enable the :ref:`Shared Customer Accounts ` + feature to allow customers to use the same account on :ref:`all + ` 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 +` and displays :ref:`tax-included prices +`, and a B2B website that requires :ref:`sign-in +` and shows :ref:`tax-excluded prices +`. However, each :ref:`pricelist +` 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 + ` 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 + ` and assigning :ref:`pricelists ` + to customers, and deactivate the :ref:`Selectable ` + 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 `. +To automate invoicing, enable the :ref:`Automatic Invoice ` 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 ` step. diff --git a/content/applications/websites/ecommerce/b2b_b2c/tags-field.png b/content/applications/websites/ecommerce/b2b_b2c/tags-field.png new file mode 100644 index 0000000000..3a12f8b42e Binary files /dev/null and b/content/applications/websites/ecommerce/b2b_b2c/tags-field.png differ diff --git a/content/applications/websites/ecommerce/checkout.rst b/content/applications/websites/ecommerce/checkout.rst index c7a6dbfd63..f757fdfaa8 100644 --- a/content/applications/websites/ecommerce/checkout.rst +++ b/content/applications/websites/ecommerce/checkout.rst @@ -146,8 +146,8 @@ checkout options. .. tip:: Restrict access to the :ref:`shop ` and :ref:`checkout - ` for specific customers, e.g., in a B2B business - setup. + ` for specific customers, e.g., in a :doc:`B2B + ` 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 ` optional - :guilabel:`VAT` and :guilabel:`Company name` fields by toggling the :guilabel:`Show B2B Fields` - option in the website editor. + :ref:`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 diff --git a/content/applications/websites/ecommerce/customer_accounts.rst b/content/applications/websites/ecommerce/customer_accounts.rst index f953f5a318..0dba2f1921 100644 --- a/content/applications/websites/ecommerce/customer_accounts.rst +++ b/content/applications/websites/ecommerce/customer_accounts.rst @@ -6,7 +6,7 @@ Using customer accounts for an ecommerce shop enables you to :ref:`manage custom `, control access to the :ref:`shop `, the :ref:`checkout `, or the :ref:`customer portal `, -and support both B2B and B2C operations. +and support both :doc:`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 @@ -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 ` on the website and grant access - only to invited customers. + - The :guilabel:`On invitation` option is especially useful for :ref:`B2B + ` businesses that prefer to keep :ref:`prices hidden + ` 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 ` 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 `, it is + recommended to use separate websites for each business model. diff --git a/content/applications/websites/ecommerce/order_handling.rst b/content/applications/websites/ecommerce/order_handling.rst index 23ecac10c3..0d2db28a62 100644 --- a/content/applications/websites/ecommerce/order_handling.rst +++ b/content/applications/websites/ecommerce/order_handling.rst @@ -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 `. +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 +`. To automate invoicing, go to :menuselection:`Website --> Configuration --> Settings` and in the :guilabel:`Invoicing` section, enable :guilabel:`Automatic Invoice`. diff --git a/content/applications/websites/ecommerce/products/prices.rst b/content/applications/websites/ecommerce/products/prices.rst index e6de404761..0e2d1dfa60 100644 --- a/content/applications/websites/ecommerce/products/prices.rst +++ b/content/applications/websites/ecommerce/products/prices.rst @@ -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 ` 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 ` 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 ` in the :ref:`delivery step + ` during the checkout using the :doc:`website editor + `. .. _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 ` 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 -