Most ecom platforms handle one currency badly. Ecom Forward was built from day one for cross-currency businesses — a European founder running a USD store on Shopify, paying Meta in USD but Google in GBP, reporting to investors in EUR.
Three layers
- Reporting currency — what every chart, KPI, and P&L displays. Set globally in Settings → Reporting currency.
- Store currency — the base currency the store actually operates in (usually = Shopify's settlement currency). Set per store on the Stores page.
- Source currencies — per-field currencies for costs (COGS in USD, ad spend in GBP, fees in EUR). All values are converted to store currency on save and stored in store currency.
Where to configure
- Reporting currency: Settings → Reporting currency → pick from dropdown.
- Store currency: Stores page → click a store → currency field.
- Per-field currencies: Stores page → store settings → COGS currency / Ad spend currency / Transaction fees currency.
- Per-category currencies: Financials → Operating expense categories → edit → source currency.
- Per-product currency: Catalog → product → COGS currency.
Exchange rates
Rates come from two free, merged sources. ECB (European Central Bank) rates are authoritative for the ~30 major currencies they cover, and a second provider fills in everything else — about 160 currencies in total, so non-European currencies (MAD, AED, SAR, NGN, and the rest) convert correctly too. Rates refresh hourly. ECB is the gold standard for accounting, so it always wins where both sources overlap.
All conversions happen on save (not on display). This means your stored value in the database is always in store currency — no surprises if the rate changes tomorrow. Conversions to reporting currency happen at display time using current rates.
The conversion log
Every conversion is logged to a conversion_log table with: original amount, original currency, rate used, converted amount, store, date, field, source (manual or api_sync).
This is what makes multi-currency trustworthy. If your bookkeeper asks “why is this COGS $10.43 EUR?” you can trace back: $12.50 USD × 0.834 rate → €10.43.
Ad spend conversion
The nightly ad sync reads the currency the platform reports in (Meta in account currency, Google Ads in account currency, etc.) and converts to store currency before writing. The conversion is logged with source api_sync.
All-stores view
In multi-store accounts, the “All stores” selector aggregates every store's data by converting each one's currency to your reporting currency using current ECB rates. Per-row conversion happens on the fly (not cached).
Mismatch warnings
If Shopify sends an order in a currency different from your configured store currency, the sync logs a warning. Check Recent Activity on the Dashboard. Usually means your store currency setting in Ecom Forward needs updating.
FAQs
Can I change the reporting currency retroactively?
What if Frankfurter is down?
Are rates fair and auditable?
conversion_log so every line is traceable.