Free shipping minimums, coupons and the price filter
Some WooCommerce settings are amounts you set in your store currency: “free shipping on orders over $50”, “this coupon needs a minimum spend of $100”, or the price range in a shop’s price filter. When a shopper uses another currency, these amounts must be converted too. Otherwise a Kuwait shopper would need a cart of “50” KWD (worth far more than $50) to get free shipping. The plugin converts these amounts automatically, so a limit means the same value in every currency.
How it works#
The plugin converts these amounts whenever a shopper is using a currency other than your store currency:
- Free shipping minimum: the Minimum order amount of WooCommerce’s Free shipping method.
- Coupon spend limits: a coupon’s Minimum spend and Maximum spend.
- Price filter: the classic Filter Products by Price widget and the price filter blocks. The range is shown in the shopper’s currency, and the products are filtered correctly.
For these limits it uses the exchange rate (or your fixed rate) and the Conversion Fee %, but no price rounding. Rounding would push a limit up or down to something like .99, and a shopper could miss free shipping because of it. Without rounding, a $50 limit is exactly what $50 is worth in each currency, including the fee.
The limit is shown with the currency’s normal decimal places. There is nothing to set up: it works as soon as you have more than one currency.
Fixed-amount coupons#
The discount amount of a Fixed cart discount or Fixed product discount coupon is converted like a product price: exchange rate, then fee, then rounding. A Percentage discount coupon needs no conversion, because 10% is 10% in every currency.
Examples#
All examples use a USD store with 1 USD = 0.92 EUR and 1 USD = 0.3087 KWD. EUR has a Conversion Fee % of 2 and Round Up to .99. KWD has no fee and no rounding.
Free shipping over $50#
- EUR: 50.00 × 0.92 = 46.00, then 46.00 × 1.02 = €46.92. No rounding.
- KWD: 50.00 × 0.3087 = KD15.435 (3 decimal places).
A EUR shopper buys two products priced at $25.00 each. Each one shows as 25.00 × 0.92 = 23.00, then 23.00 × 1.02 = 23.46, rounded up to €23.99. The cart total is €47.98, which is more than €46.92, so free shipping is unlocked, just as $50.00 would unlock it in USD.
A coupon with a $100 minimum spend#
- EUR: 100.00 × 0.92 × 1.02 = €93.84.
- KWD: 100.00 × 0.3087 = KD30.870.
A $10 fixed cart coupon#
- EUR: 10.00 × 0.92 = 9.20, then 9.20 × 1.02 = 9.384, then rounded up to .99: €9.99 off.
- KWD: 10.00 × 0.3087 = KD3.087 off.
The price filter#
Your cheapest product is $10.00 and your most expensive is $95.00.
- In the classic widget, the EUR shopper’s slider runs from 10.00 × 0.92 × 1.02 = 9.384, rounded down to €9, up to 95.00 × 0.92 × 1.02 = 89.148, rounded up to €90. The ends are whole numbers, rounded outwards so no product falls outside the slider.
- The shopper picks €20 to €50. The plugin converts the range back to your store currency to find products: 20 ÷ 1.02 ÷ 0.92 = 21.3129, rounded down to $21.31, and 50 ÷ 1.02 ÷ 0.92 = 53.2822, rounded up to $53.29. Products priced from $21.31 to $53.29 are shown.
Good to know#
- Nothing changes for shoppers using your store currency. Your limits are used exactly as entered.
- The price filter looks at your store-currency prices. A product with a fixed price in the shopper’s currency is matched by its store price converted at the current rate, not by its fixed price.
- Product prices are rounded but limits are not. With Round Up, a cart that meets a limit in your store currency always meets it in the other currency too. With Round Down or Round to Nearest, it can fall just short: in the free shipping example, Round Down would make each product €22.99, a cart of €45.98, which is below €46.92.
- In the admin area your limits always show in your store currency, as you entered them.
Related docs#
- How converted prices are worked out
- Price rounding and conversion fees
- How shipping costs are converted
- Fixed prices for products and variations