Rounding to the nearest 5 cents - Switzerland

Hi All,

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?

Cheers,

Gary

Hi Gary!

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?

Hi Jonathan,

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.

Cheers

Gary

Hi Gary,

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.

Cheers,
Jonathan

2 Likes

Hi Jonathan,

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.

Cheers,
Gary