Because rounding occurs during conversion, the currency actually stored in the database and used in calculations is important. The price displayed to the customer is the price the customer pays. Small differences, such as conversion rounding errors in unit prices can result in large differences in total order amounts. You should review, and may want to change, your unit sizes and prices before offering converted unit prices to your customers.
The following example illustrates product price rounding, using the hypothetical conversion factor of 1 GBP = 2 EUR.
Quantity | Item | Unit Price in the Database | Conversion: Unit Price EUR to GBP | Total Price in Preferred Currency (EUR) | Total Price in Preferred Currency (GBP) | Conversion: Total Price GBP to EUR |
---|---|---|---|---|---|---|
100 | bolt | 0.05 EUR | 0.03 GBP | 5.00 EUR | 3.00 GBP | 6.00 EUR |
1 | package of 100 bolts | 5.00 EUR | 2.50 GBP | 5.00 EUR | 2.50 GBP | 5.00 EUR |
In this example, a customer wishes to order 100 bolts and the unit price for each bolt is 0.05 EUR. This price is stored in the database. If you convert the price to GBP, this yields a unit price of 0.03 GBP.
If the customer's preferred currency is EUR, the cost is calculated as
100*0.05 = 5.00 EUR. If the preferred currency is GBP, the cost is 100*0.03 =
3.00 GBP.
However, converting 3.00 GBP to EUR yields 6.00 EUR and therefore, the customer
pays 1.00 EUR more by choosing to shop in GBP.
One solution is to have a larger unit price, such as by selling bolts in larger packages. For example, if the order is for one package of 100 bolts, the unit price in the database is 5.00 EUR. Thus, if you convert the price to GBP, this yields a unit price of 2.50 GBP. If the preferred currency is EUR, the cost is 1*5.00 = 5.00 EUR. If the preferred currency is GBP, the cost is 1*2.50 = 2.50 GBP. If you convert 2.50 GBP to EUR, this yields 5.00 EUR. The customer pays the same price regardless of the preferred currency choice. If you wish to disable rounding and conversion, you can specify a price in each supported currency, so that conversion is not necessary.
Note: Monetary amounts are rounded prior to storage in the database. Rounding information for each currency is specified in the CURFORMAT database table. If you need to add to or change this rounding information, change the CURFORMAT database table.