pixi offers extended support for net and gross prices, required for B2B sales and sales to international customers.
Overview
Price handling depends on the type of sale. For the purposes of B2C sales all calculations are performed with the gross price and for B2B with the net price, which means that depending on the customer and place of business, VAT needs to be paid. In B2C business final prices should be displayed including VAT, whereas in B2B business prices are shown without VAT. VAT is displayed separately on the invoice.
For this purpose pixi distinguishes between two order/invoice types:
B2B – Business-to-Business: Sale for VAT registered customers is based on net item prices. VAT is shown separately.
B2C – Business-to-Consumers: Sale for end consumers is based on gross price. VAT is paid by the consumer.
Based on this and to prevent unnecessary rounding differences, all calculations for B2C orders are based on gross prices and for B2B orders on net prices. The type of sale does not only define which base price is used, it also defines how to handle discounts, vouchers and shipping costs.
With item import,, both net and gross prices can be imported to pixi. Additionally, if only one of the prices is imported, the other is calculated accordingly. With order import only the base price (gross for B2C and net for B2B) is imported, and the other is calculated. The price values are then stored in the database - recalculation is not needed. At item import, the prices are checked and verified. In case only one of the prices is imported, the other is calculated based on the existing price and VAT rate for the specified country. The result is rounded if necessary and stored in the database. The procedure is explained in greater detail in the following sections.
Important Information for first Usage
When this functionality is used for the first time, which is the update to pixi ELI, all existing prices in pixi are recalculated. Der order type (B2C/B2B) is automatically set for orders and the missing prices are calculated. VAT rate depends on the shipping addresses country.
During the update, the net prices are calculated for all items based on the existing gross prices. VAT rate is used, which is shown in the item info. Up to now it was determined with the help of these rules:
In case the country for the VAT is set in Shops table in pixi Control Center and VAT Rates table contains a VAT rate for this country, this VAT rate is used.
In case the country for the VAT is set in Shops table in pixi Control Center but VAT Rates table does not contain a dataset for this country, the default VAT rate is used.
In case the country for the VAT is not set in Shops table in pixi Control Center, the default VAT rate is used.
Configuration
General
Number of decimal places for prices in pixi Control Center > Database Settings > General: Define the number of decimal places, which are considered on price calculation and rounding in pixi. Please also consider the rounding made by your online shop to prevent differences between pixi and you online shop.
Note: The supplier price is always imported with four decimal places!
Default location and country in pixi Control Center > Tables > Locations: Define the default location which is used to determine the VAT rate. The default location country is needed to determine the VAT rate, that should be used on the item price and order calculation.
Maintain the countries VAT rates in pixi Control Center > Tables > VAT Rates, so the correct percentages are used on price calculation. The dataset, that doesn't contain a country is used as default VAT rate.
Settings for Item Import
For this functionality you need to set the following:
Item Import – Tolerance threshold for VAT rate check in pixi Control Center > Database Settings > Imports 2.0: In case net and gross prices are imported with item import, pixi checks whether the difference of the two prices equals the corresponding VAT rate. With this setting you define the threshold for the calculated difference, e.g. 0,03 €.
Important: If you set default location (in Tables > Locations), we recommend performing the full item import the first time you install and use this functionality to ensure the correct VAT rate is used for calculating the net prices for prices, which already exist in pixi.. Note that the full import can cause performance issues and should be carefully scheduled.
Changes in XML Structure
To support the net prices functionality, the structure in XML files is adapted and the following tags are added. pixi now additionally identifies the XML tag for the net item price:
<ARTICLE_PRICE_DETAILS>
<ARTICLE_PRICE price_type="gros_list">
<PRICE_AMOUNT>119.00</PRICE_AMOUNT>
<PRICE_CURRENCY>EUR</PRICE_CURRENCY>
<SUPPLPRICE_AMOUNT>60</SUPPLPRICE_AMOUNT>
</ARTICLE_PRICE>
<ARTICLE_PRICE price_type="net_list">
<PRICE_AMOUNT>100.00</PRICE_AMOUNT>
<PRICE_CURRENCY>EUR</PRICE_CURRENCY>
<SUPPLPRICE_AMOUNT>60</SUPPLPRICE_AMOUNT>
</ARTICLE_PRICE>
</ARTICLE_PRICE_DETAILS>Important: The supplier price is always imported as net price in <SUPPLPRICE_AMOUNT> tag.
Settings for Order Import
Changes in XML Structure
To support the net prices functionality, the structure in XML files is adapted and the following tags are added:
Order Type
Tag for B2B order type:
<ORDER_TYPE>B2B</ORDER_TYPE>
Tag for B2C order type:
<ORDER_TYPE>B2C</ORDER_TYPE>
This tag needs to be added to the <ORDER_HEADER> part of the XML:
<ORDER>
<ORDER_HEADER>
…
<ORDER_INFO>
<ORDER_TYPE>B2B</ORDER_TYPE>
…
</ORDER_INFO>
</ORDER_HEADER>
<ORDER_ITEM_LIST>
…
<ORDER_ITEM>
…
</ORDER_ITEM>
</ORDER_ITEM_LIST>
…
</ORDER>
In case the XML does not contain the tag for order type, it will be set to B2C by default and gross price will be imported and net price will be calculated.
Import of net and gross price
Tag for net item price (for B2B order type):
<ARTICLE_PRICE type="udp_net_customer">
Tag for gross item price (for B2C order type):
<ARTICLE_PRICE type="udp_gross_customer">
This tag is located within the <ORDER_ITEM> part of the XML:
<ORDER_ITEM>
<LINE_ITEM_ID>172d0d1f325b450f6651e1c76983288d</LINE_ITEM_ID>
<ARTICLE_ID>
<SUPPLIER_AID>ea2f8e46a42dc254d0e7b3baa4a4f67d</SUPPLIER_AID>
<ITEM_NAME>Holzkugel - Sitzauflage Luxus</ITEM_NAME>
</ARTICLE_ID>
<QUANTITY>2</QUANTITY>
<ORDER_UNIT>C62</ORDER_UNIT>
<ARTICLE_PRICE type="udp_gross_customer">
<FULL_PRICE>10.85</FULL_PRICE>
<DISCOUNT_PERC>0.00</DISCOUNT_PERC>
<DISCOUNT_VALUE>0.00</DISCOUNT_VALUE>
<PRICE_AMOUNT>10.85</PRICE_AMOUNT>
<PRICE_LINE_AMOUNT>21.70</PRICE_LINE_AMOUNT>
<TAX>0.19</TAX>
<TAX_AMOUNT>0.19</TAX_AMOUNT>
</ARTICLE_PRICE>
<ARTICLE_PRICE type="udp_net_customer">
<FULL_PRICE>9.12</FULL_PRICE>
<DISCOUNT_PERC>0.00</DISCOUNT_PERC>
<DISCOUNT_VALUE>0.00</DISCOUNT_VALUE>
<PRICE_AMOUNT>9.12</PRICE_AMOUNT>
<PRICE_LINE_AMOUNT>18.24</PRICE_LINE_AMOUNT>
<TAX>0.19</TAX>
<TAX_AMOUNT>0.19</TAX_AMOUNT>
</ARTICLE_PRICE></ORDER_ITEM>Import and Calculation of Net and Gross Prices
Item Import
At item import, the XML file can contain data for net price, gross price, or both. When only one of the prices is imported, the other is calculated. When both prices are imported, they are validated to ensure correct values. For items that have price based on weight, the price per weight unit is always gross.
Import of net prices from plentyONE is not supported. Only gross prices can be imported - the corresponding net price will always be calculated in pixi.
Constraint Check
At import, the incoming XML file is parsed and checked against constraints to prevent importing items or orders with missing, wrong or incompatible data to pixi. The item prices cannot be zero, empty or negative, and the VAT rate must be set (MwSt_High, MwSt_Low, MwSt_None).
In addition, at item import a constraint check (Pixi_CC_II_VATRateCalculationCheck) is implemented to catch an invalid discrepancy between net and gross prices, when both prices are imported from shop. To validate the imported prices, the prices are calculated based on the provided VAT rate and compared. The discrepancy between net and gross price for the given VAT rate must not exceed the tolerated limit, set with the database setting Imports 2.0 > Item Import – Tolerance threshold for vat rate check.
In case the XML file contains errors, it is saved in the intermediate table and is not imported. You can fix the errors in the XML file manually and reimport the file to pixi.
VAT Rate Determination
At item import, the net price, gross price, or both are imported. When both prices are imported, they are validated to prevent importing missing, wrong or incompatible values. When only one price is imported, the other is calculated. The price is calculated based on the existing price and VAT rate for the country of the default location. VAT rates are set in Control Center in Tables > VAT Rates and the country of the default location is set in Control Center in Tables > Locations:
If the default country is set, the VAT rate for that country is used
-
If default country is set, but the VAT rate for that country is not set in the VAT Rates table, the default VAT rate is used
Note: If you do not set the default location country and VAT rates, the VAT rate with empty Country field in the VAT Rates table is used.
If the default country is not set, a country is taken from the Shops table and the VAT rate for that country
Calculation
The calculation of prices is performed with all available decimals. If a price is imported with, for example, 4 decimal places, the calculation is done with 4 decimal places. For items, rounding is done according to the database setting "Number of decimal places for prices". For example, if it is set to “2” and gross price is imported with 4 decimal places, the result is rounded to 2 decimals.
Order Import
At order import, the XML contains the information on order type (B2B or B2C) and net and/or gross prices. The base price for B2B order type is the net price, and for B2C order type the gross price. Even if both prices are available in the XML, only the base price is imported to pixi and the other one is calculated.
Note: For calculation of prices of existing orders the country of delivery in the shipping address is used for determining the correct VAT rate.
VAT Rate Determination
The VAT rate used for calculations is based on the country of delivery in the shipping address. The VAT rate for that country is taken from the VAT Rates table. In case the country is not known by pixi, the default VAT rate is used. Default VAT rate is the VAT rate of the default country in the Locations table. If the default location is not set, the default VAT rate is the VAT rate with empty Country field in the VAT Rates table.
The price is calculated based on the existing price and VAT rate for the shipping country. VAT rates are set in the Control Center in Tables > VAT Rates:
If the shipping country is known, and the VAT rate for that country is set in the VAT Rates table, the VAT rate for that country is used
-
If the shipping country is known, and the VAT rate for that country is not set in the VAT Rates table, the default VAT rate is used:
with setting Charge Vat = disabled for the country in the Control Center, a VAT rate of 0 is inserted
-
with setting Charge Vat = enabled for the country in the Control Center, and
If the default location is set in Tables > Locations, the applied VAT rate is the VAT rate for the country of the default location
If the default location is not set in Tables > Locations, the applied VAT rate is the VAT rate with the empty Country field in the VAT Rates table
Important: Make sure you set VAT rates for all countries with the Force Country VAT setting enabled in the Countries table. If the Force Country VAT option is set for a country, the VAT rate for that country must be used in calculations (and not the default one). In case the VAT rates are not set for that country in the VAT Rates table, a constraint check is displayed at import.
Calculation
In case you change the shipping address to a different country of delivery and the VAT rate changes, the prices are recalculated accordingly. Please beware, that the base price does not change in this case.
For multi-currency orders the price in currency other than Euro is always imported. This is the gross price, net price in currency is not calculated.
At order import, base price rounding to the orderline is done according to the database setting General > Number of decimal places for prices. The other price is always shown with 4 decimal places. Calculation of order total amounts is always done with all available decimal places and at the end the result is rounded
Net and Gross Prices in pixi Applications
The following scenarios for charging VAT are possible in pixi:
Order type |
Shipping country |
Base price |
VAT |
B2C |
EU |
Gross |
According to delivery threshold and shipping country |
B2B |
Germany |
Net |
Germany |
B2C |
Not EU |
Gross=Net |
0% |
B2B |
EU(without Germany) and not EU |
Net=Gross |
0% |
The VAT is based on the type of order and the shipping country. In B2C orders, VAT must be accounted for when the shipping country is in the EU, but not when the shipping country is outside the EU. For B2B orders within Germany, the German VAT rate must be charged, in all EU and non-EU countries, the VAT is not charged.
pixi Customer Service
Net and gross prices are available in the following tabs: Orders, Invoices, Returns and Customer Account. They are also available in the Returns wizard. Complete details about prices are available in the Item Info.
Note that the prices are always shown with all available decimals, whereas the sums (for example, order total and order lines total) are always rounded to 2 decimal places. The VAT percentage is calculated with 4 decimal places but it is displayed in pixi * Customer Service only with 2 decimal places.
VAT Rate Determination
Rules for determining the rate of VAT for orders are described in the Order Import section.
If you want to make a B2C order without VAT, check the Don't Charge VAT option on the Orders tab.
Create Orders, Invoices and Credits manually
When you manually create an order, you have to choose the order type (B2C is pre-selected). Also when creating a new invoice or credit in customer account, invoice type B2B or B2C and the corresponding base price needs to be set.
Changing the Item price in Orders
You can only change the base price, which means for B2B orders you can change the net price and for B2C orders the gross price. If you change the base price, the other price and VAT will automatically be calculated.
Handling Vouchers, Discounts and Shipping Costs
Handling of vouchers, discounts and shipping costs is also based on the order type. For B2B orders, the entered shipping costs are treated as net - gross shipping costs are calculated and vice versa. Vouchers and discounts are always subtracted from base price.
Calculation Example for Orderline Discounts
Example for a B2C order, where gross price is used as base price. This means net price can't be changed but is calculated: In case Discount € is changed, Discount % and Final Gross Price are calculated from Gross Price minus Discount €. In case Discount % is changed, Discount € and Final Gross Price are calculated from Gross Price minus Discount %. All calculations are done with 4 decimal places, if necessary. Afterwards, orderline total is calculated by Quantity * Final Price and then rounding happens. Based on the orderline totals, which have 2 decimal places, Gross Orderlines Total for the whole order gets calculated.
Without rounding Gross Orderline Total would be = 76,125 €
For a B2B order everything would be the same - except base price would be net price:
Note: Please have in mind, that vouchers for B2B customers have to be sold without VAT (net vouchers), since they are subtracted from Net Order Total. On the other hand, vouchers in B2C orders need to be sold including VAT, since they are subtracted from Gross Order Total in this case.
In case the voucher value exceeds the total amount of the order, the Order Total will be set to 0 € - no negative value will be shown.
pixi Shipping
Order Type is shown in Incomplete Orders and Direct Invoicing tabs.
Also, customer orders with different order types are put to separate boxes on Scan-In. This prevents, that "mixed" invoices are created.
Invoice Creation
Depending on the order type, you can set up and print different invoice templates. For this you need to define additional printing rules.
Note: Printing rules functionality is a billable feature and can only be enabled by pixi Support department.
For changing invoice templates, new variables are available for net prices.
Bundles
In pixi bundles are handled as regular items. When you create a bundle, you also assign a price and VAT rate for the bundle.
For this, there are two possibilities in pixi:
Bundled items also take the VAT, which is assigned to the bundle. The bundle price is proportioned to the bundled items. With this the previous VAT rate and price of the bundled items might be overwritten.
Bundled items have the assigned VAT rate.
VAT rates for bundles are handled according to the database setting Calculation of VAT for Bundles (pixi Control Center > Database Settings > General):
If set to "Bundle" the calculation of the VAT amount for orders/invoices follows the VAT rate of the bundle regardless of the VAT rate assigned to the bundled items.
If set to "Bundled Items" the VAT of the bundle is calculated and rounded proportionally based on the VAT rate of the bundled items. In this case, please make sure that the invoice templates are set up correctly. Bundled items need to be shown, so the calculated VAT amount is reasonable.
Calculating the VAT Amount
For calculating the VAT amount, two common and legally approved methods can be used:
horizontal (VAT for each invoice/order line separately) or
vertical (VAT of net sum amount) VAT amount calculation
Depending on the use case, the results of both methods can differ. Here is an example:
Horizontal VAT Amount Calculation
Position |
Single Price |
VAT (19 %) |
Total |
#1 |
0,99 |
0,19 |
1,18 |
#2 |
0,99 |
+ 0,19 |
1,18 |
#3 |
0,99 |
+ 0,19 |
1,18 |
===================================================== | |||
2,97 |
= 0,57 |
3,54 |
|
This method of calculating the VAT amount is used (on different places) in pixi.
Vertical VAT Amount Calculation
Position |
Single Price |
MwSt. (19 %) |
Total |
#1 |
0,99 |
1,18 |
|
#2 |
0,99 |
1,18 |
|
#3 |
0,99 |
1,18 |
|
===================================================== | |||
2,97 |
* 0,19 = 0,56 |
3,53 |
|
This method of calculating the VAT amount is not used in pixi.
As you can see, the total value of those small amounts already differ by 0,01. So if pixi shows values that differ from another system, you should first check which method of VAT calculation is used there.
Auto E-Mails
For auto e-mails the price variables for gross and net prices are available. Before first usage please check your e-mail templates, so that correct price information are sent to the customers.
Note: Price variables read the values that were calculated when order was imported/created from the database.