I know, this topic or related problems have been covered a lot in the past.
We are having problems with {item_subtotal:plus_tax} calculations in the case of having a quantity greater than 1. We are having those problems for a quite some time and I always shyed away from trying to fix it (made a couple of attempts but could never find a way through).
Now we had an order where the discrepancy between what should be calculated and what has been calculated is 2 cents (Euro). It's not much but the accountant has to make an extra step and the invoice we send the customer just doesn't fit his order.
So, we are runnning EE 2.7.3, CT 2.5 and I have these settings:
Tab Global:
Decimal Precision: 2
Round Decimals to Nearest: .01 (standard)
Tab Taxes:
Tax plugin: Tax by location - Percentage
Tax 19% - Country Germany - Tax Shipping: Yes
Tab Shipping:
Shipping plugin: By Location - Price Threshold
Location: DEU - Rate: 4.12 - Threshold: 74.78
Generally we enter all prices net (without tax) and let the software do the tax calculations.
The order in question contains this product:
product A
net price: 22,65
The cart looks like this:
Product A | Quantity 3 | {item_subtotal} = 67,95 | {item_subtotal:plus_tax} = 80,85
In my opinion this is where the problems stem from: the item_subtotal:plus_tax calculation.
CartThrob calculates like so:
26,95 * 3 = 80,85
where it should calculate:
22,65 * 3 * tax (in our case 1,19) = 80,86
I believe the calculation is done in 2 steps or something because I don't know where or how CT gets the 26,95 from because even if I calculate like this:
(22,65 * 1,19) * 3 = 80,86
I am not sure why nobody else has had this problem or if taxes are being calculated differently in other countries or not. For us at least it's wrong and I would like to fix this without hacking the core.
I am still hoping to have somehow overlooked something, so I'd be happy for any head-ups.
Thanks and Cheers.