BunStackDocs

Prices & currencies

Base currency and more currencies

Prices are set in the base currency. How to turn on more currencies per storefront and how prices are converted.

Last updated · 6 min read

Every price is set in the base currency. Here you turn on more currencies in a storefront and see how prices are converted.

Where: Storefronts › [storefront] › Pricing rules, the Currencies card.

Base currency

The base currency is SEK. BunStack sets it when it creates the workspace, and Settings › Tax & VAT shows it. You cannot change it in the admin. You enter every product price in the base currency, and the reports total in it.

Turn on currencies per storefront

  1. Open Storefronts › [storefront] › Pricing rules.
  2. Choose a currency under Add a currency… in the Currencies card.
  3. Press Add.

The currency is active at once, with Auto (ECB), markup 0 and rounding Nearest …,99. The list has SEK, NOK, DKK, EUR, GBP, USD, CHF, PLN, CZK and ISK.

SettingWhat it doesDefaultLimits
Default currencyThe currency the storefront shows when neither link, cookie nor country points to anotherThe Currency field when the storefront was createdThe base currency or an active currency
Auto-pick by visitor countryGives first-time visitors the currency of their country, see belowOn–
RateAuto (ECB): the ECB daily rate. Manual: your rate, 1 base currency = the rate in the currencyAuto (ECB)Manual rate above 0
MarkupPercent on top of the rate0May be negative
RoundingNo rounding (2 dp), Nearest 1, Nearest …9, Nearest …,99 or Nearest 10Nearest …,99…9 and …,99 always round up. 249 → 249, 250 → 259
ACTIVE / OFFThe stamp in the Status column. A click toggles itACTIVEThe storefront and the checkout offer only active currencies
RemoveRemoves the currency. If it was the default, the base currency becomes the default––
Sync ECB rates nowFetches today's ECB rates at once–The Admin or Owner role

Press Save on the row to save its changes. The Preview column shows what a price becomes, for example 249 SEK → 23.99 EUR. Change Preview amount to try another amount.

ECB rates

BunStack fetches the ECB rates on weekdays at 15:40 UTC, with a retry at 17:10 UTC. The line under Rate shows the rate and the day it applies to.

  • If the rate is older than 4 days, the line warns in red.
  • If the rate is older than 7 days, the storefront shows no price in the currency. The checkout refuses the currency until a new rate exists.

Warning: If Kustom has no market for an active currency, "Kustom has no market for …" shows under the card. The checkout in that currency fails. Add the pair of country and currency under Stack › Kustom › Markets.

Fixed prices per currency

Under Prices in other currencies in the Price card on the product you set a fixed price per currency. It applies to the product and to each variant. An empty field uses the conversion and shows the converted price in grey. A fixed price always beats the conversion. The field shows when a storefront has a currency other than the base currency. The CSV import takes columns such as price_EUR.

Free shipping in other currencies

The Free above threshold under Settings › Shipping is an amount in the base currency. In another currency it is converted like a price, with the currency's Rate, Markup and Rounding. With No rounding (2 dp) the threshold is rounded to the nearest whole amount. The product page, the cart and the checkout show the same threshold, and the checkout gives free shipping from it.

Example: 899 SEK is 80.77 EUR at the day's rate. With Nearest …,99 the storefront shows 80.99 EUR, and the checkout gives free shipping from 80.99 EUR.

What the customer sees

The storefront picks the currency in this order:

  1. ?currency= in the link.
  2. The visitor's saved choice, in a cookie that lasts one year.
  3. The visitor's country, when Auto-pick by visitor country is on.
  4. The storefront's Default currency.

With Auto-pick by visitor country the visitor gets their country's own currency when it is active. A visitor from an EU country whose currency is not active gets EUR, if EUR is active. With SEK as default and EUR active, a visitor from PL, CZ, HU or RO sees prices in EUR.

The currency switcher sits in the footer. Turn it on in the designer under Components › Footer › Currency switcher. It is off by default and shows only when at least two currencies are active. A switch reloads the page in the new currency and recalculates the cart.

The checkout locks the currency and sends it to Kustom as the purchase currency. What Kustom answered for each pair of country and currency is under Markets.

The order and the reports

Each order stores its currency, the rate to the base currency at purchase and totals in the base currency. The reports count in the base currency with the stored rate. That goes for Home, the storefront list under Storefronts and the storefront's Overview and Analytics tabs. The reports leave out an order without a stored rate. Home, Reports and Analytics say how many were left out. The OSS report converts with the ECB rate for the last day of the quarter, see The OSS report.

Price history

From 13 October 2026 BunStack stores every change of price and compare-at price with date and time. That covers the product's and the variant's price in the base currency, fixed prices in other currencies and the storefront's Override price. BunStack stores a change even when the product is removed from the storefront.

The currencies under Storefronts › [storefront] › Pricing rules › Currencies (ACTIVE / OFF, Rate, Markup, Rounding) are stored the same way. So are the pricing rules and which products are in each category. With the ECB daily rates, BunStack can work out what a product cost on a given day in every currency.

You cannot turn off or change the history. BunStack uses it for Lowest price before a reduction.

If the storefront moved from WooCommerce, support can add the old prices. Email support@bunstack.co. The lowest price then counts them before the moving day.