A discount is smaller than the points value shown
A customer redeemed points and the discount on their order was smaller than the value shown against the redemption. Here is why, and how to fix it.
Symptom: a customer redeemed points, their loyalty history shows the reward as one amount, and the order applied a smaller discount. For example, the history reads 500 points / €30 and the order shows €25.47 off.
This happens on stores selling into more than one market through Shopify Markets.
Why this happens
The two figures come from different places.
The €30 in their history is a display figure. It comes from the rate you entered for that market under Loyalty Program → Points → Currency Conversion.
The discount on the order is the real value of the code, which is a fixed amount of your store's base currency. Shopify converts it into the customer's currency at checkout, at its own exchange rate.
If the display rate you entered is more generous than the live exchange rate, the customer sees the larger number first.
In the example above, the EUR market was set to 100 points = €6, which assumes 1 NZD is worth €0.60. The real rate was closer to €0.50, so a $50 NZD reward converted to €25.47 rather than €30.
How to fix it
Go to Loyalty Program → Points → Currency Conversion.
For each market, work out the display rate from your default rate and the current exchange rate. A default of 100 points = $10 NZD at a rate of 0.50 means the EUR market should be near 100 points = €5.
Round down rather than up, so the figure customers see is slightly conservative.
Click Save.
Review these rates periodically. They are fixed numbers you enter, not live rates.
What this is not
It is not a discount code failing to apply in full. The code applied correctly, for its full base currency value.
It is not a tax or shipping difference.
It is not something a different reward setup would avoid. Every reward is valued in your base currency.