We are currently developing an eccommerce store on oscar and we have encountered a few issues.
The first major problem is within the basket app. It is changing everything to unit prices and then rounding down or up the price depending, because it can't cope with 3 decimal places.
Classic example we've looked at e.g, 500 business cards with a unit price of £0.084p is being rounded down to £0.08p.
We do not want the price to be rounded down or up. We want the exact prices that we have in our pricelist.
Basket app only stores unit prices with 2 decimal places. A product has to land as a Line in the basket and there is price_incl_tax and price_excl_tax.
Both are with decimal places=2. They are then used as cache so the prices are compared later, at checkout.
How do we raise baskets precision without reimplementing whole basket?
We do not want to copy original model file and use it as customized basket and change the precision there. It is a lot of code to support in the future.
We don't want to just override those fields by creating child objects either. It is not permitted in Django too.
Currently, If we calculate with high precision - later user gets warning that price has changed because calculated price=0.084 is compared with cached price 0.08
Order and/or checkout apps also store price for caching with 2 decimal places.
Please can you help?
Many thanks