From a4fc71f392874c75a6a1f8347a2838db6ffa65eb Mon Sep 17 00:00:00 2001 From: lman-odoo Date: Tue, 14 Oct 2025 07:07:21 +0000 Subject: [PATCH] [ADD] ecommerce/b2b-b2c: create B2B/B2C page task-3339294 X-original-commit: 4c71c27db747c00b729f68bca555f58b2cd51614 --- content/applications/websites/ecommerce.rst | 1 + .../websites/ecommerce/b2b_b2c.rst | 124 ++++++++++++++++++ .../websites/ecommerce/b2b_b2c/tags-field.png | Bin 0 -> 6946 bytes .../websites/ecommerce/checkout.rst | 7 +- .../websites/ecommerce/customer_accounts.rst | 18 ++- .../websites/ecommerce/order_handling.rst | 6 +- .../websites/ecommerce/products/prices.rst | 17 ++- 7 files changed, 152 insertions(+), 21 deletions(-) create mode 100644 content/applications/websites/ecommerce/b2b_b2c.rst create mode 100644 content/applications/websites/ecommerce/b2b_b2c/tags-field.png 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 0000000000000000000000000000000000000000..3a12f8b42ed70cdc1c583f8d3b3a2bf39bef0163 GIT binary patch literal 6946 zcmZ`;XHXMdv!+BKD2SmdMTLL}f*?rmB#?yOdkejX-UUJpHPWlnkzS>@gwUHHN)eHc z6se*JBG>npZ|?nO?##1$=IopwJJ0Su`{Q6V)s?9z?@m2M#4|>ic6sQGl8ti`6JL;U+(wZ8Gu*;E$xfol7$*Fk_HYb{4+6O8lJ9^yT@CFDzuXj)hkb#?+0tWaHgTY$oxwX0B-#rWXC< zy-0Mr&{K()SfreijXfMz(A!gq>-Ns*l9kfv%W##~3N8$AHPAB~YszR&^nU5)y!c^i zbo4JLY0lAg{WA-BuDYEs9h-)yp9rYo3L-<^42{*qonQXO*5Pfv6YMkk>SBF!f*lqX zMq4}jE&Yq*+ZOs8^CDf`BG6HmUb$#n`@no0R6rb8o#JZl8B{zlJJ!|y^*Aj1Z9lGJ z2#;HMhc63rkWshDkMebPMDdAOoQgQ;Xc@+L4EaGNs?n(I+1pM}wxm z$-?$ggtA7akG;91umKcm7gko*H||k@8z>L0D6g*#H8Dju5DNW#f?|q?=09dw!Hj~D z32h4#jdQp{{NU*J#%4=y6jI!%ps;ALBsM9;TVKi4D=GuO@GZd71EJQ$rV{k8YqOA+}y7K$py^DrA7CR|@#G=a^I$doemVaC-S^7_HtSSd} zw+!sse%xaB!=z&4b86NmHqL9?EB!Q*@m}6$8eaL?$(WGpS9-43m%DK*`ws)+$ZH3W zM2+tiGzUe75*v(?$5Q1I5it(KA@aKZi~FAgGJ1SJ}B`9ArPmlXkEqv^jLH>mqXU{?}4Al>AI2)fNOP5#vU zx~o1k9L@rod=l|P?f6Pty>cYLwh{W9U=pfL;_(BbT=It<+jkqdh9kIdy*2Uxx7<^G zdYl%zCTa%Dqm_NNdw4K-U?ve5alJF3V!w*()%cwI0b?0fR+?xF#mDR>xvH2@iXAJj9Foqp{qTqB7FiFNU(ADY^03c<2(; zE7g0vKjHp6B6DgP@%T~gZ`O~K+aJi2mL$&7=s@nPPrX4*`~Z4%+w5lnZ0-!A!B%DK;)O9+C^$Ydyax3@oH**4WA z##EC=P`og-N^vJy@(kTm{92`_M^RJovh#2$s{@H<`Ud?nhIwhO>spx9@>E?gtwZdp zYdzeui`C1avOy%FdM%14+|Ck4GBG-xe$V?Xi93#yDEyy_+5o*H=sVVL!5;v@;b1Hv z#V{6huX2=5JF>AdT9s26w$|7B4qF<@69p;cQ32XMgL98*qZKOUK z%%s{C*-$c!-n7dosPUlw%w+V9w)$i>sb$ESs*iC&JH73)yDJIJmQ1gF?0o|y=~|LY zGMlQo#>_0Z3(@t@a|4mW-aXO3@Um2E%B+l3Um%L!*=(dN1iTk}`Ki@-mu~$51SSxC z@#I56acd?v-qW(L!KmHSebR5_j~l>iv^|Xo`{d5j_;A@F2Lt%KPX0GKkWYg z0L=l-3jah8G6vcub>COMr7YUG=G~=Jx+Isi_M<3ggzbS~G^k;gtgDH7PokRr!^hQ~ z*k8}j7LO|H&sQCGIjA3BP|G{?2=!U*W%UY{q1e~l{j+q7zhPrVE~HfY1}`0MKgZW$ zRY5HQ%K1mXGA%{)tu~ERT*;#CHoqdMIs#*AzZO;fhLQZMl5!lp!i!2m0>ZqnU+6El zKlf$>GvJMXNsMKGjG3cFeYQYbd>a3H`YWS;qQCw`moYd%DWw_g&7!vPSk-#Z-ZUOV z?aXw*IT85d4K@)WN|D3Z56{fT$Ur&KMvrDh@&spmKefrnQ(z+dq_cf??(?3T+1=}O zM_(Uvjhns5WKOk~PStTWHi{B>6sfWcQi*NVmoY-GGLL5t7p=DiWJ#YRZ(=Ec?}|d+ zHeSS2tsH`#S<$)v>X&7Unw~~CC<9M|fp*gwAChxr$^|%TWxW&2&Y1`0fw+{84bWOm z`uZMdwQlQ~;G-o^+IHzeP4p`5E%1`R8dHXPoyQ9YM>$BoSPhXm?pG3QgOVZsaT;LH z1BB-EAu*0IblzNN3@ac6DjGhLq4GbveK;&sEUwkxNGdKbdfWL=ih3-8kVoXI`0B)5 zog#A<^M-bBcNDVTUyA-o>DUfFV`V4#h{0&- z%sluk$mO-m=`#b*vLA2oc=A2S`;iJn?@VMxMH`9vZ&9H(n}#}XI&_o%s{;*JK-47x zO^FZ4vk_ug$02rdBLsH$n*rM9vHYZKHI|?XDqA<0n4`V4WZB^qruw#}hgUc<6=#MI zkCgr%P<%}gZ}_c+bd1V)y!U*lj=|5FW#xx3OppD>Z;EbY`y(I4iRk^biIJuBvkffj zlcDFQv;mQjJ5{FM(%&m>Ym#2Z=yKK?GT++mS=?K{|Q+clvxY8+Cftumy)q@o?T=*@^cKm-=G4EbGARNlEPl=ZKGn za~weNb{|&5OjWXF2Yv(@(7Tk(tXt8*ds^?sf9bm%=&wY;_+r~{YURCrKjUAUM}&c% zn2J9H#jmw{BEby(Z2JV5CN|Om2s(IPAoI8^?fi5fJd2rk4$BjNs0KWDd7y7Bxa#Pb zqc>8Cy^g{&7I7Z9u`4KWm^VYzH%-BGGMZMxWa_~`_TCfGPq;4}MZti}$9Z|-=|w+v zGJ5M|njm2*DGtCV<{@sNwr}=)ZiA#tpy$B>M#y$x$OI)D`PfJECZygl$GLca`Qcdu z8zTlRB~-6HuyN9+`tmZdH93#)9dz#)fk4d3sqzs!--4ZPjkd$uHpv!E8rI%Wx_;N+ zJC#xlk|Xj&lbQRrz5eOvYIR=L>CnLiXJ1{I-L5o`D%Fmcc}#O7-0JunJExoig|!n< zl}Xe4hfh&g(LMf*+}h_3XH|MQ$70a6;LM;S1F!lypeizW>tT4Ly3$nthP9!=(iPfl zu6!a6ffLt_OK~`4&?z#L!eD}^`lK^fqglQ*x^jq>27R>#q2fKylc;e#Eg-nm3sx#o z3)tpa%~m&WUJFckJ50wxpYgLqE#|$1C!w0w`e7Q1c8f6aN%p+cDH$G_xD{ywqFe41 zGe;WW{4%dBG_JS!Pv}sfT_OE(XCZ@e-%(Re6tDibyHPE>tULT#BtS*U7x`@m-EAT~-Cv=t(?Mo29xd1-+gVBi;V4^ttxI+EaV zW{k*TjyoKCW{kt^;l5^aRpI}85&hG04=|h@g~q?CE{@lKOZU-#kge3^%mxG_8ojr@ znU#|}4GK<~FE&K^v&{A-=eo_{6+x}<6po8Sz^MYw?}xqfeZ7_%f^JmjnQ`@c;HueI z=6!LLTSwecJPTk{*Pu34?_%U;)wI7)Rwt|5E8OF{ca2OE=eFx{dJKwn$(xc_^!**` zdrs^5%Z82_aXX7!EI${GK5I@(byRnoa2FcFWq?Nyd8!re_K?ay5#qbL-v8{Zsbj!K zgvxjq)FfC!3}S=!$q|tPgqhfg<=I~PJ(r?mB#_9o zrPJQzj9GMZgt-+lRsM_*jNPoXS|g<>>*x&i{+MiNszTA$$nAYPy}Ne`l~v05dICXt zKXrI&z#fjRx$|(jst7hCTAnt$&q_(*jsKweU4aMPBl&j}gacq<1hmQuZ(sGfKK1Nqypx`) z$pmkr$s=62@vqsN-}K938m9i}$SimjWBDrk8kVc6kI|NCO`8~$#*$;CN zU3%6zIj&DN*cC{Pltu2W=YT+3VUiK!!x>lMO#hZCOl?tX$?|;(L%S%zWmWk3LCVX0>8$Xj~83TgFzTP0vhZPEIa>4l55 zbxNF4dhM%ui?1b8s&pZDzoyMMSf5-Z0L-Au)~qiHPmPA zgl3L2?ePsoUg}Hb?)*sb`}4ZxHLgmRRM_`8+|4B`;#5{B89h8xnKOVB+S!4PRPn}t zJLo*;I7Ug{VdnYSBgTr74HDsEH$cRV#oh7=0pJX6x3Carlt})gdlH}Lc3YXoig!h1 z4*^E&e91raHbNpCw`T?Ur!S8bKhNE`run9nqe8Ivxd?D?3D44m*i6}|syWTL>I9?( zduo)`Qr{{Hj7jmkV}RcfFC9%&mX?=IedF1PSuUhtn1H#+gS-QTqdEo}pJe;fK;f`a zQHvc9_T&6H`eek2I4CD4r6}CRWSG`3Apo6GFj}1A*^PC%msz2FDWX!51MiM}M#ex>Q5wIb( zRjXqIn2;pP8@bTXJ@Ln&oXc)mP1T6+;S0f;r2#ce+3TKPi4|9eD-8%=a{xZpJyIZR>=w*J)E9}jw)A{tbLIbM9fPkO7S`WXpT=7 ziwEz^{P3S-!-VFtZX*m6x~#QyNUhrnC)$2zaX?rdR}Wx5r&fk>gC69OUB4s2Hkzw+>% zd*PfS=8B2j3W?d89-|Ju-z{~bJ-|f!+==dng-`X*=6=DKOjmhPpw4Wt@t*f2KH8kKYebS^V zXmV^Kyb)!GMQuDC+7h!sIvFV(83+&vCuu7t;ME)hY_vI`>*s!EdF16{9Ci*)!FC_T zS4-9EfyuF_iZOq*y4{_8jhbC<;WWL?EJ6A07y2-Tx$@@BS~KDJ8G^ky*J0lNK4VC0 z$WUdQ1`wI4;gYjr2-o`dkoeH;Ea@rURUKb3_rT6K&T)k`iNW5V^s6uE*M$8gJXdhI(YyRoR<4y(5!}G$+ zga$trU3cZfl(nMPLWnj@WwtQ!{P`}a1L=}k+dIH(D-82P1{lRCx#Chl6`)J+2W+j* zVaO2(Ao$hXPbiiZKolgN$0nw5Z+J!HZ>=$cQIrp2om)kEB)EPvS)(~X!MM$!hYXvT zHKnwRXI&EU%(vT}wO$F7*rwe*g|ywCr0v{2x!2MeM7O9DP{gAie*(w^pVwyCsuJJ6 z8b8;-`AKqpnw}58Zz3qys*4PMD0n2ZZ%-#cI(b8n#n zjhT`pjarqG=^wtqqN3@|M#BT3jJvGw{DI4%K5EX}$?=ZZdMumTy zTAL;4z}aBo)GP$uzmp>w1TK5?h^|?r)@4-qfG^NG0n^|CF1)*k|7mC85A4{QEXo?5 z;^TZ?AwA>sNB%14Z|x($s>ubCYdx6B`x0l3xBe6ZI1Ve%074q>4xVYNKZF zcB-H}x&=CKIP-KDJ(jr6-3)&ylgR#L`rYGqTyL2;mr$zT8364oNx;iG$b%^=Nto5=4D93U+emU( zKeUV8@Ko!$dZ^j@m5q)s)#{7eyl6A4bd2ov<-M>L$Bz4c6C;cw4Kc(r8<)qm?i3rC@p&q%XV&B*&H3*15P>W1^Tz}kgH z5q{t$Af`!^{m24h!nR)fu${w!Rs#d9`;TL?bJS6nE zuhTh$r4d1-5d`8L9##zvI9Qc8g|?&{x4>_%Cpwl|!p#*dz2x16JNDYuG|KqoZ41TH zgGd)~G{Ib$UjsYdg~7*b1iW$k@TU4LnPOOK9B){wS3iugj!C;Eu#{hirw8;EqC!xv z1#@l&E;!ve;Qu(=NBt+X=jF*_uBJ%2;-gVV1`uI9om40MO>8cQ1FISnJGjNL>67!Y zVfqx(dMq*;z)cZm1&zYeR5cUxrO7SlQRj1S7dUFtWbqmp0gNY6izFs6RpAfC&>YLg z+z*jCT*wEso6Ug8?a}8G==p^x#qae|k!5o~IHR-Cv~MH&HX$9*JN0=53NRG7%vk$1J3}qqaRyy*U(Rs1KhTh$z1HFPOgzA zM1=}MHYbYT0~J3MlrWI_Klmc}pW*-4#S#` 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 -