Handling Currency Differences Between Business Central and WooCommerce
Business Central Uses Your Local Currency but Your
WooCommerce Store Sells in EUR
Three practical strategies for handling currency conversion when syncing product prices from Business Central to WooCommerce via Power Automate.
One question we get from customers connecting Business Central to WooCommerce: “My BC runs in our local currency but my webshop sells in EUR. How do I handle the price conversion?” It’s a real-world problem that comes up constantly in European markets, and the good news is there are several clean ways to solve it.
This guide covers three different approaches to handling currency differences between your ERP and your online store. Which one is right for you depends on how you manage pricing today, how much control you want over web prices, and whether you need to support multiple currencies on the storefront.
Understanding the Problem
In Microsoft Dynamics 365 Business Central, your Local Currency (LCY) is the base currency for all financial operations. If your company is based in Denmark, LCY is typically DKK. All item prices, costs, and financial entries are recorded in DKK by default.
But your WooCommerce store might serve customers across Europe. Your shoppers expect to see prices in EUR. Maybe you even sell in multiple currencies: EUR for the EU market, SEK for Sweden, NOK for Norway.
When your product sync flow pushes prices from BC to WooCommerce, it needs to send the right price in the right currency. If you just sync the raw LCY price, your WooCommerce store will show DKK amounts to customers expecting EUR. That’s a bad experience and a broken checkout.
Quick decision guide
| Scenario | Best Approach |
|---|---|
| Single web currency, exact price control | Approach 1: BC Price List in EUR |
| Prices should track live exchange rates | Approach 2: Convert in Power Automate |
| Multiple currencies on the storefront | Approach 3: WooCommerce multi-currency plugin |
| Single web currency, no exact price points needed | Approach 2: with rounding rules |
Approach 1: Use BC Price Lists in Your Web Currency
This is the cleanest approach, and the one we recommend for most businesses.
Business Central supports multiple price lists, and each price list can be denominated in a specific currency. If you create a dedicated price list for your web store in EUR, your product sync flow simply reads from that price list instead of the default LCY price.
Setting it up in BC
- Navigate to Sales Price Lists (search for “Price Lists” in the Tell Me bar).
- Create a new price list. Give it a clear name like “Webshop EUR Prices.”
- Set the Currency Code to EUR.
- Set Assign-to Type as “All Customers” or a specific customer group for web sales.
- Add your items with the EUR prices you want displayed on your webshop.
This gives your pricing team full control. They set the exact EUR price for every product, independent of the DKK price in the general price list. No automatic conversion, no rounding surprises.
Reading the EUR price list in Power Automate
In your product sync flow, instead of reading the item’s unitPrice field directly (which is in LCY/DKK), use the “Find records (V3)” action from the Business Central connector to query the price list lines table.
Configure the action as follows:
- Table name:
salesPriceListLines - Filter rows:
priceListCode eq 'WEBSHOP-EUR' and itemNo eq '@{items('Apply_to_each')?['number']}'
This returns the EUR unit price for the item. Use this value when passing the price to WooCommerce via the product update action.
Advantages
- Full pricing control for your finance team
- No rounding issues or awkward price points
- Strategic pricing (e.g., 29.95 EUR instead of 29.73)
- Clean separation between domestic and web pricing
Tradeoffs
- Requires maintaining a separate price list
- Adds a manual step for new products
- BC bulk price update features help, but it’s still overhead
Convert Prices in the Power Automate Flow
If maintaining a separate EUR price list feels like too much overhead, you can convert prices automatically during the sync. Your Power Automate flow reads the DKK price from BC, applies an exchange rate, and writes the EUR equivalent to WooCommerce.
Fetching the exchange rate from BC
Business Central maintains currency exchange rates in a dedicated table. If your BC administrator keeps these up to date (or uses a BC extension that fetches rates automatically from a central bank), you can read the DKK-to-EUR rate at the start of your sync flow.
Use the “Find records (V3)” action from the BC connector:
- Table name:
currencyExchangeRates - Filter rows:
currencyCode eq 'EUR' - Sort by:
startingDate desc - Top count:
1
This returns the most recent EUR exchange rate. Store it in a variable so you can use it for every item in the sync loop.
Calculating the EUR price
Power Automate expressions handle the math. If the DKK unit price is 200 and the exchange rate from BC is 7.46 (meaning 1 EUR = 7.46 DKK), the EUR price calculation looks like this:
Basic conversion:
div(float(items('Apply_to_each')?['unitPrice']), float(variables('exchangeRate')))
With rounding to 2 decimal places:
formatNumber(div(float(items('Apply_to_each')?['unitPrice']), float(variables('exchangeRate'))), 'F2')
This gives you approximately 26.81 EUR. You may want to apply a rounding rule specific to your market (always round to .95 or .99, for example).
Alternative: Use an external exchange rate service
If you’d rather not rely on BC’s exchange rate table, you can call an external service at the start of your flow. The European Central Bank publishes daily reference rates, and services like Open Exchange Rates provide APIs. Use the Power Automate HTTP action to fetch the current rate, store it in a variable, and use it throughout the flow.
Advantages
- No separate price list to maintain
- Prices automatically reflect the current exchange rate
- Good when exact market-rate pricing matters more than fixed price points
Tradeoffs
- Converted prices may produce awkward numbers (26.81 instead of 26.95)
- Exchange rate fluctuations mean web prices shift every sync run
- Can confuse repeat customers who see different prices day to day
Handle Multi-Currency on the WooCommerce Side
If your store needs to display prices in multiple currencies simultaneously (letting customers switch between EUR, DKK, SEK, etc.), the currency conversion happens on the WooCommerce side rather than in the sync flow.
How this works
- Set your WooCommerce store’s base currency to your primary selling currency (e.g., EUR).
- Sync prices from BC in EUR using either Approach 1 or 2 above.
- Install a WooCommerce multi-currency plugin that converts your base EUR prices into other currencies for visitors from different regions.
Popular multi-currency plugins:
- WPML WooCommerce Multilingual (also handles multi-language)
- Currency Switcher for WooCommerce by Aelia (supports geolocation-based currency selection)
- WooCommerce Payments (built-in multi-currency if you use WooCommerce Payments as your gateway)
These plugins handle the storefront display, cart calculations, and checkout currency. The product prices in your WooCommerce database remain in your base currency (EUR), and the plugin converts on the fly.
Advantages
- Supports multiple currencies from a single price source
- Visitors see prices in their preferred currency
- Some plugins auto-detect currency via geolocation
Tradeoffs
- Adds a plugin dependency to your WooCommerce stack
- Exchange rates managed in two places (BC and WooCommerce)
- Order currency may differ from BC, requiring reconciliation on the ERP side
Important: Configure WooCommerce’s Currency Setting
Whichever approach you choose, make sure your WooCommerce store’s currency setting matches what your sync flow is sending. In WooCommerce > Settings > General, set the Currency to EUR (or whatever your primary web selling currency is). Also configure:
- Currency position: Where the EUR symbol appears (e.g., “10,00 €” for European formatting)
- Thousand separator: Period or comma, depending on your market’s convention
- Decimal separator: Comma for most European markets
- Number of decimals: Typically 2 for EUR
Getting these settings right ensures the prices that arrive from your sync flow display correctly for your customers.
Currency and Order Sync: Closing the Loop
Don’t forget about orders flowing back to BC
When orders flow back from WooCommerce to Business Central, they arrive in EUR. Your BC setup needs to handle this correctly.
In the BC + WooCommerce Starter Kit order sync flow, you can set the Currency Code field on the Sales Order header to “EUR”. BC will then handle the conversion to your LCY (DKK) using its own currency exchange rate table. This way, the Sales Order is recorded in the customer’s currency (EUR) while your financials stay clean in DKK.
Make sure the EUR currency code exists in BC’s Currencies table and that a valid exchange rate is configured. Your BC partner or administrator can verify this in minutes.
Getting Started
If you’re already using the starter kit to sync products, modifying the flow to pull from a specific price list or to apply a currency conversion is a straightforward Power Automate edit. The Power Automate for WooCommerce connector handles the WooCommerce side seamlessly, regardless of which currency the price is in. Just use the “Update an item of the specified type” action (resource: products) to push the converted price to WooCommerce.
Need help with your specific currency setup? Reach out to us. We’ve helped businesses across Europe set up exactly this kind of multi-currency product sync.
Ready to get started?
Get the starter kit for the base product sync, then configure currency handling using this guide.