The Swiss National bank did away with the 1 cent coin and so all prices are now rounded to the nearest 5 cents. Whenever you buy something at a shop the price is either rounded down or up depending on where you are. Wit that a lot of the ERP systems built that operate in Switzerland, including SAP, have built systems to comply with this financial change, and generally automatically apply the rounding internally. Turning this feature off for a specific sales channel (Shopify) is either very difficult or not possible and so we are trying to find a solution, but I honestly dont think there is currently a possiblity to solve this within Shopify.
Am I wrong? Has someone an idea how this could be done?
If the sub total is 29.99 the price would normally go up to 30.00, 29.94 to 29.95, 29.96 down to 29.95, 29.93 to 29.90 and so on.
Now I know already that going up is probably impossible, so our only alternative would be in each case to go down using a discount function. The issue here is then timing.
If we have a subtotal price of 29.98 I can add an order discount of 3 cents to reduce the price to 29.95, which would work just fine. The difficulty now is if the customer has a discount code of say 10%… The sub-total is 29.95, 10% is 2.99 (or would it get rounded to 3?) = new sub-total is 26.96, and again we are not at 5 cents, would my function run again after the customer added the discount?
If so what price would I get in my function, would I be able to adjust the discount based on the new sub-total so that I could once again round it to 5 cents, and if so would the 10% discount that was applied to the order sub-total also get called again leading us to an infinite loop?
Has anyone ever done anything like this, is it even possible, any help would be appreciated. @Liam-Shopify - could you check with the devs and see if any minds way smarter than mine have any ideas on how to crack this problem?
To ensure I understand the problem correctly, you’re asking about how to ensure your discount function’s result is rounded properly to comply with Switzerland’s 5 rappen rounding rule for cash (non-digital) transactions?
Not quite. I’m looking for any solution to be able to round the checkout total to a multiple of 5 cents also after any discount codes have been added., so digitally in the checkout, not cash transactions.
I only thought that a discount function would be the only way, but obviously if there is another way I don’t know about I am also open to that.
I don’t think a discount function is the right way to approach this problem - it seems like it should really be something that happens automatically in checkout. It would be very difficult to implement this as a discount because you’d have to predict to the cent what the final order price will be, which can depend on other fees and charges that may not be available in an order discount function’s input.
I’ve raised this with the appropriate team and they’re exploring the right way to address this need.
Thanks for forwarding this one to the right folks. This is something that is becoming a bit of a sticking point for some of our larger Plus customers who work with ERP systems and need to integrate Shopify as one of their sales channels.
I’m experiencing the same problem. I even installed the only available app, “RoundHoop”, but it falls short: it’s not automatic—I have to tap its tile on every transaction to make it work—and its rounding calculations are incorrect.
According to the changelog, Shopify enabled this feature in April for several countries, including some in the EU, yet it still isn’t available in Italy.
@Jonathan-Shopify@Liam-Shopify Do you think it would be time-consuming to enable this feature also in italy? I am launching a new store next week and I was planning on putting Shopify there but it’s gonna be problematic if the numbers aren’t rounding up…