Loyalty and discount plugins
Loyalty and discount plugins work with money amounts: points earned per dollar spent, “spend 100 and get 10 off” rules, product discounts. When shoppers pay in different currencies, those amounts must be compared in the same currency, or a shopper in KWD could unlock a reward far too early or far too late. This page explains how each supported plugin behaves with WC Currency Switch, and where you need to be careful.
How it works#
You set up rewards and discounts in your store currency (the currency set in WooCommerce, also called the “base currency”). WC Currency Switch converts product prices to the shopper’s currency. A loyalty or discount plugin then either:
- works on the converted price, which is right for percentages, or
- compares a store-currency number with a converted amount, which is wrong unless the plugin or an integration converts that number too.
The plugins below are detected automatically. Check them on WooCommerce > Currency Switch > Integrations, in the WooCommerce Add-ons group.
Supported plugins#
WP Loyalty Rules#
- What works: WP Loyalty Rules has its own multi-currency system, and WC Currency Switch switches it on and feeds it the shopper’s currency. Points are worked out from the converted product price. Cart subtotal conditions (for example “cart subtotal over 100”) are converted to the shopper’s currency before they are compared. Reward condition amounts set for a specific currency are converted back to your store currency so they compare fairly.
- Limit: none known.
Reward System for WooCommerce#
- What works: prices, points earning and points redemption.
- Limit: the “points = money” value text (for example “200 points = $2.00”) uses the rate you set in Reward System, which is in your store currency. A shopper in another currency sees their own symbol with the store-currency number. This is display only.
- Good to know: the Integrations tab notes that points earned from an order are based on the order total, which matches your settings when orders are paid in your store currency (Settle orders in base currency). If shoppers pay in other currencies, check the points awarded on a test order.
SUMO Discounts#
- What works: product discounts (percentage, flat and fixed) run before the plugin converts the price, so the discounted store price is converted correctly.
- Limit: cart total thresholds (for example “spend 100 to unlock a discount”) are stored in your store currency but compared with the cart total in the shopper’s currency. They are off by the exchange rate.
- Setting to keep: in SUMO’s Advanced Settings, keep its filter priority below 10, so its discounts still run before the conversion.
Examples#
Store currency USD, KWD rate 0.31, no fee, no rounding.
- WP Loyalty Rules, cart condition: a “cart subtotal over 100” rule is compared as 100 x 0.31 = 31.000 KWD for a KWD shopper. A 35.000 KWD cart qualifies.
- SUMO Discounts, product discount: 20% off a 50 USD product gives 40 USD, shown as 12.400 KWD.
- SUMO Discounts, cart threshold: a “spend 100” rule is compared with the KWD cart total as the number 100. A KWD shopper would need a 100.000 KWD cart (about 323 USD) to qualify. For a EUR or GBP shopper the error is smaller but still there.
- Reward System text: “200 points = $2.00” shows to a KWD shopper as 2.000 with the KWD symbol, where the correct value would be about 0.620 KWD.
How to test#
- On a staging site, enable a test currency whose rate is far from 1 (for example KWD or JPY). Big differences make mistakes easy to spot.
- In a private browser window, switch to that currency.
- Add products until the cart crosses each threshold you use, and check when the reward or discount appears.
- Place a test order and check the points awarded and the discount on the order.
- Repeat in your store currency to compare.
If you rely on “spend X” rules in SUMO Discounts, either remove them, or turn on Settle orders in base currency so the cart and checkout pages run in your store currency. Test both before launch.
Related docs#
- Checkout currency options
- Free shipping minimums, coupons and the price filter
- Funnels and automations
- How converted prices are worked out