|
| 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. |
0 commit comments