Skip to main content

Currency conversion

The formula

Converted price = Base price × Effective rate → rounding (if set)

The effective rate folds in whatever fee type a currency has:

Fee typeFormula
NoneEffective rate = Raw rate
PercentEffective rate = Raw rate × (1 + Fee / 100)
FixedEffective rate = Raw rate + Fixed fee

Example — base currency TRY, product price 500:

CurrencyRaw rateFeeEffective rateConverted price
EUR0.02672.5%0.0274€13.68
USD0.0293None0.0293$14.65
GBP0.02300.002 fixed0.0250£12.50

If a currency's rate is 0, or the currency can't be found, the price is left unconverted rather than shown as zero.

Rounding (Nearest / Round up / Round down, by a step and an optional subtract amount — see Managing currencies) runs after the rate and fee. It's not limited to product prices — since 1.1.0 it also applies to shipping and cart fees, and to fixed-amount coupons.

What gets converted

FieldBehaviour
Product price (regular and sale)Converted, rounded
Variation prices and price rangesConverted, rounded
Cart and order totalsComputed from the already-converted line items
Cart feesConverted, rounded
Shipping costConverted, rounded
Shipping taxConverted, not rounded — it travels with the shipping cost
Fixed-amount couponsConverted, rounded
Coupon minimum/maximum spendConverted, not rounded

Percentage-based coupons are left alone — a 10% discount is 10% regardless of currency.

The two "not rounded" rows are deliberate, not oversights: neither a shipping tax line nor a coupon spend threshold is an amount the customer pays directly, so rounding either would edit a rule (a tax calculation, a merchant-set threshold) rather than tidy a price on screen.

Orders

The currency, rate, and base currency active at checkout are stored on the order. Order admin screens and order emails always show the amount the customer actually paid, in the currency they paid it in — and orders placed before you installed the plugin, or before a given price change, are never rewritten retroactively.