[ADD] Sales: How to manage prices for B2B (tax excluded) and B2C (tax included)?
https://docs.google.com/document/d/1kExheNd2VgEe-_go6uaQXEBXIj5eWvTe0x63EBk_W9I/edit#
This commit is contained in:
parent
ceb06c02f8
commit
beed870229
@ -10,3 +10,4 @@ Sales
|
|||||||
sales/overview
|
sales/overview
|
||||||
sales/quotation
|
sales/quotation
|
||||||
sales/invoicing
|
sales/invoicing
|
||||||
|
sales/products_prices
|
||||||
|
@ -5,3 +5,4 @@ Products & Prices
|
|||||||
.. toctree::
|
.. toctree::
|
||||||
:titlesonly:
|
:titlesonly:
|
||||||
|
|
||||||
|
products_prices/prices
|
@ -5,3 +5,4 @@ Prices Management
|
|||||||
.. toctree::
|
.. toctree::
|
||||||
:titlesonly:
|
:titlesonly:
|
||||||
|
|
||||||
|
prices/B2B_B2C
|
169
sales/products_prices/prices/B2B_B2C.rst
Normal file
169
sales/products_prices/prices/B2B_B2C.rst
Normal file
@ -0,0 +1,169 @@
|
|||||||
|
===================================================================
|
||||||
|
How to manage prices for B2B (tax excluded) and B2C (tax included)?
|
||||||
|
===================================================================
|
||||||
|
|
||||||
|
When working with consumers, prices are usually expressed with taxes
|
||||||
|
included in the price (e.g., in most eCommerce). But, when you work in a
|
||||||
|
B2B environment, companies usually negotiate prices with taxes excluded.
|
||||||
|
|
||||||
|
Odoo manages both use cases easily, as long as you register your prices
|
||||||
|
on the product with taxes excluded or included, but not both together.
|
||||||
|
If you manage all your prices with tax included (or excluded) only, you
|
||||||
|
can still easily do sales order with a price having taxes excluded (or
|
||||||
|
included): that's easy.
|
||||||
|
|
||||||
|
This documentation is only for the specific use case where you need to
|
||||||
|
have two references for the price (tax included or excluded), for the
|
||||||
|
same product. The reason of the complexity is that there is not a
|
||||||
|
symmetrical relationship with prices included and prices excluded, as
|
||||||
|
shown in this use case, in belgium with a tax of 21%:
|
||||||
|
|
||||||
|
- Your eCommerce has a product at **10€ (taxes included)**
|
||||||
|
|
||||||
|
- This would do **8.26€ (taxes excluded)** and a **tax of 1.74€**
|
||||||
|
|
||||||
|
But for the same use case, if you register the price without taxes on
|
||||||
|
the product form (8.26€), you get a price with tax included at 9.99€,
|
||||||
|
because:
|
||||||
|
|
||||||
|
- **8.26€ \* 1.21 = 9.99€**
|
||||||
|
|
||||||
|
So, depending on how you register your prices on the product form, you
|
||||||
|
will have different results for the price including taxes and the price
|
||||||
|
excluding taxes:
|
||||||
|
|
||||||
|
- Taxes Excluded: **8.26€ & 10.00€**
|
||||||
|
|
||||||
|
- Taxes Included: **8.26€ & 9.99€**
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
If you buy 100 pieces at 10€ taxes included, it gets even more
|
||||||
|
tricky. You will get: **1000€ (taxes included) = 826.45€ (price) +
|
||||||
|
173.55€ (taxes)** Which is very different from a price per piece at
|
||||||
|
8.26€ tax excluded.
|
||||||
|
|
||||||
|
This documentation explains how to handle the very specific use case
|
||||||
|
where you need to handle the two prices (tax excluded and included) on
|
||||||
|
the product form within the same company.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
In terms of finance, you have no more revenues selling your
|
||||||
|
product at 10€ instead of 9.99€ (for a 21% tax), because your revenue
|
||||||
|
will be exactly the same at 9.99€, only the tax is 0.01€ higher. So, if
|
||||||
|
you run an eCommerce in Belgium, make your customer a favor and set your
|
||||||
|
price at 9.99€ instead of 10€. Please note that this does not apply to
|
||||||
|
20€ or 30€, or other tax rates, or a quantity >1. You will also make you
|
||||||
|
a favor since you can manage everything tax excluded, which is less
|
||||||
|
error prone and easier for your salespeople.
|
||||||
|
|
||||||
|
Configuration
|
||||||
|
=============
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
------------
|
||||||
|
|
||||||
|
The best way to avoid this complexity is to choose only one way of
|
||||||
|
managing your prices and stick to it: price without taxes or price with
|
||||||
|
taxes included. Define which one is the default stored on the product
|
||||||
|
form (on the default tax related to the product), and let Odoo compute
|
||||||
|
the other one automatically, based on the pricelist and fiscal position.
|
||||||
|
Negotiate your contracts with customers accordingly. This perfectly
|
||||||
|
works out-of-the-box and you have no specific configuration to do.
|
||||||
|
|
||||||
|
If you can not do that and if you really negotiate some prices with tax
|
||||||
|
excluded and, for other customers, others prices with tax included, you
|
||||||
|
must:
|
||||||
|
|
||||||
|
1. always store the default price TAX EXCLUDED on the product form, and
|
||||||
|
apply a tax (price included on the product form)
|
||||||
|
|
||||||
|
2. create a pricelist with prices in TAX INCLUDED, for specific
|
||||||
|
customers
|
||||||
|
|
||||||
|
3. create a fiscal position that switches the tax excluded to a tax
|
||||||
|
included
|
||||||
|
|
||||||
|
4. assign both the pricelist and the fiscal position to customers who
|
||||||
|
want to benefit to this pricelist and fiscal position
|
||||||
|
|
||||||
|
For the purpose of this documentation, we will use the above use case:
|
||||||
|
|
||||||
|
- your product default sale price is 8.26€ price excluded
|
||||||
|
|
||||||
|
- but we want to sell it at 10€, price included, in our shops or
|
||||||
|
eCommerce website
|
||||||
|
|
||||||
|
Setting your products
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
Your company must be configured with price excluded by default. This is
|
||||||
|
usually the default configuration, but you can check your **Default Sale
|
||||||
|
Tax** from the menu :menuselection:`Configuration --> Settings`
|
||||||
|
of the Accounting application.
|
||||||
|
|
||||||
|
.. image:: media/price_B2C_B2B01.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
Once done, you can create a **B2C** pricelist. You can activate the
|
||||||
|
pricelist feature per customer from the menu:
|
||||||
|
:menuselection:`Configuration --> Settings` of the Sale application.
|
||||||
|
Choose the option **different prices per customer segment**.
|
||||||
|
|
||||||
|
Once done, create a B2C pricelist from the menu
|
||||||
|
:menuselection:`Configuration --> Pricelists`.
|
||||||
|
It's also good to rename the default pricelist into B2B to avoid confusion.
|
||||||
|
|
||||||
|
Then, create a product at 8.26€, with a tax of 21% (defined as tax not
|
||||||
|
included in price) and set a price on this product for B2C customers at
|
||||||
|
10€, from the :menuselection:`Sales --> Products`
|
||||||
|
menu of the Sales application:
|
||||||
|
|
||||||
|
.. image:: media/price_B2C_B2B02.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
Setting the B2C fiscal position
|
||||||
|
-------------------------------
|
||||||
|
|
||||||
|
From the accounting application, create a B2C fiscal position from this
|
||||||
|
menu: :menuselection:`Configuration --> Fiscal Positions`.
|
||||||
|
This fiscal position should map the VAT 21% (tax excluded of price)
|
||||||
|
with a VAT 21% (tax included in price)
|
||||||
|
|
||||||
|
.. image:: media/price_B2C_B2B03.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
Test by creating a quotation
|
||||||
|
============================
|
||||||
|
|
||||||
|
Create a quotation from the Sale application, using the
|
||||||
|
:menuselection:`Sales --> Quotations` menu. You should have the
|
||||||
|
following result: 8.26€ + 1.73€ = 9.99€.
|
||||||
|
|
||||||
|
.. image:: media/price_B2C_B2B04.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
Then, create a quotation but **change the pricelist to B2C and the
|
||||||
|
fiscal position to B2C** on the quotation, before adding your product.
|
||||||
|
You should have the expected result, which is a total price of 10€ for
|
||||||
|
the customer: 8.26€ + 1.74€ = 10.00€.
|
||||||
|
|
||||||
|
.. image:: media/price_B2C_B2B05.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
This is the expected behavior for a customer of your shop.
|
||||||
|
|
||||||
|
Avoid changing every sale order
|
||||||
|
===============================
|
||||||
|
|
||||||
|
If you negotiate a contract with a customer, whether you negotiate price
|
||||||
|
included or price excluded, you can set the pricelist and the fiscal
|
||||||
|
position on the customer form so that it will be applied automatically
|
||||||
|
at every sale of this customer.
|
||||||
|
|
||||||
|
The pricelist is in the **Sales & Purchases** tab of the customer form,
|
||||||
|
and the fiscal position is in the accounting tab.
|
||||||
|
|
||||||
|
Note that this is error prone: if you set a fiscal position with tax
|
||||||
|
included in prices but use a pricelist that is not included, you might
|
||||||
|
have wrong prices calculated for you. That's why we usually recommend
|
||||||
|
companies to only work with one price reference.
|
BIN
sales/products_prices/prices/media/price_B2C_B2B01.png
Normal file
BIN
sales/products_prices/prices/media/price_B2C_B2B01.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 19 KiB |
BIN
sales/products_prices/prices/media/price_B2C_B2B02.png
Normal file
BIN
sales/products_prices/prices/media/price_B2C_B2B02.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 14 KiB |
BIN
sales/products_prices/prices/media/price_B2C_B2B03.png
Normal file
BIN
sales/products_prices/prices/media/price_B2C_B2B03.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 8.8 KiB |
BIN
sales/products_prices/prices/media/price_B2C_B2B04.png
Normal file
BIN
sales/products_prices/prices/media/price_B2C_B2B04.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 20 KiB |
BIN
sales/products_prices/prices/media/price_B2C_B2B05.png
Normal file
BIN
sales/products_prices/prices/media/price_B2C_B2B05.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 20 KiB |
Loading…
Reference in New Issue
Block a user