Swell's multi-currency allows you to accept payments in multiple currencies, set conversion fallback logic, and choose price conversions behavior. Customers can view prices and make purchases in enabled currencies within your storefront.
On the frontend, a storefront can use Swell.js method to format and convert display prices. When a currency is selected, a method is used to format and convert prices to one of those currencies. Display conversions are performed using exchange rates provided by Swell which are updated daily from Fixer.io data.
Aside from your default currency, you can add and configure additional currencies for your store. To add currencies to your store, multi-currency needs to be enabled. This is found by navigating to the Currency and weights section under Settings > General. Once enabled, add currencies by choosing Add currency below the currency table.
When creating new currencies there are several configuration options:
Decimal digits: Specifies how many decimal digits the currency displays.
Label: Allows for display names to be specified in enabled languages.
Enabled toggle: Enables or disables the currency. This determines whether it is active within the dashboard and the storefront.
Priced: Enabling allows for transactions in the currency if selected during checkout. Disabling makes the currency display-only and transactions will be made in your store's base currency.
Require values for the currency: Requires that prices are defined for this currency.
Use conversion rate as fallback: Enables live conversion rates if a price is not defined. This determines how the conversion rounds to the chosen decimal.
It is possible to change your store's base currency by selecting the Set as default action from a currency's Edit window. Be aware that changing your store's base currency will affect all new records including orders. New products will be denominated in the updated base currency without affecting existing ones.
To disable multi-currency, remove each of the configured currencies one by one.
There are three states for currencies within your store. Each currency's state determines its level of function and is displayed within the Kind column within the Currency table.
This is the default currency of your store. The
base currency is used to determine all conversions rates for other currencies and the prices displayed within your store.
Currencies with the Priced toggle disabled will be designated as
display currencies. This allows for the currency to be shown in the store, but it will not be supported for payments. Purchases made with display currencies will be charged with your base currency.
Currencies added with the Priced toggle enabled are designated as
priced. Transactions can be made with these currencies during checkout.
For transactions with
priced currencies to be successful, your payment gateway must also support those currencies. Customer purchases with a
paid currency that are not supported by your payment gateway will result in an error.
Swell Checkout notice
When a storefront uses Swell.js to manage currency selection, carts associated with an active customer session will automatically be tied to the customer's chosen currency. This causes Swell Checkout to reflect prices accordingly. In addition to converting prices for
display currencies, a notice informs the customer that their payment method will be charged in the amount of the base currency. This notice is only shown when conducting a transaction with
display currencies. Currencies that are
priced will be charged in the appropriate currency if the payment gateway supports them.
It's important to inform users of the actual total in your base currency. They may incur a fee from their payment provider for performing a currency conversion during the sale. If your storefront uses a custom checkout, consider adding a similar notice to inform customers of this potentiality.
Example: Your base currency is set to USD, and a customer chooses to view
display prices in EUR. The Swell Checkout will show a notice under the cart total stating: "Your payment method will be charged USD $19.95".
Multi-currency pricing for products and shipping
Now that your currencies have been configured, you can use them throughout your dashboard. when defining explicit pricing for things like products and shipping rates. All areas where currency pricing can be specified will feature a drop-down icon in the top right. Selecting a currency and enabling it from the drop-down will add a field for inputting the price in each selected currency.