Multi-Currency Support for Advanced Prices
The app now fully supports multi-currency advanced prices import for Shopware. This enhancement allows you to import product prices for multiple currencies in a single file — with automatic field detection, tax calculation, and UI integration.
With this update, every currency defined in your Shopware store can now have its own price set, including net, gross, list, and regulation prices, all built dynamically from your import file.
Key Features
Section titled “Key Features”1. Currencies Registry
Section titled “1. Currencies Registry”A new Currencies Registry has been introduced to efficiently handle currency lookups.
Available Methods:
getIdByIsoCode()– Returns a currency ID by its ISO code (e.g., EUR → 1).getIsoCodeById()– Finds the ISO code for a given currency ID.getNameByIsoCode()– Returns the full name of the currency (e.g., “Dänische Kronen”).getAllIsoCodes()– Lists all active currency ISO codes available in Shopware.
2. Dynamic Field Mapping
Section titled “2. Dynamic Field Mapping”The Dynamic Field Mapping mechanism allows the app to automatically generate import fields for each available currency.
How It Works:
- Field naming follows this format:
[ISO].[priceType] - Example:
DKK.priceNet,DKK.priceGross
Human-Readable Labels: Each field is displayed with a friendly name, such as “priceNet (Dänische Kronen)”, making it easy to identify in the import UI.
Supported Price Types:
priceNet,priceGrosslistPriceNet,listPriceGrossregulationPriceNet,regulationPriceGross
3. Multi-Currency Price Payload Builder
Section titled “3. Multi-Currency Price Payload Builder”A new price payload builder handles the transformation of import data into Shopware’s expected structure.
Key Functionalities:
- Automatic Tax Calculation: If only the net or gross price is provided, the missing value is calculated using the product’s tax rate.
- Linked Attribute Handling:
linked = false→ Both net and gross prices provided manually.linked = true→ One price auto-calculated by the system.
- Multi-Currency Structure: Separate price objects are built for each currency, including nested
listPriceandregulationPricevalues.
4. UI Integration
Section titled “4. UI Integration”Currency-specific price fields now appear automatically in Step 2 of the import wizard. Field detection supports dynamic colorization — new fields are highlighted, removed ones are grayed out. Custom column mapping is supported. Example: You can map "priceDat" → "DKK.priceNet".
Technical Implementation Summary
Section titled “Technical Implementation Summary”| Functionality | Description |
|---|---|
| Currency Parsing | Recognizes columns in [ISO].[priceType] format (e.g., EUR.priceGross). |
| Tax Calculation | Uses existing getProductTaxRate() from the product registry to compute missing values. |
| Linked Attribute Logic | Mirrors Shopware system behavior: linked=false when both prices are provided; otherwise linked=true. |
| Data Structure | Builds fully Shopware-compliant nested price arrays with support for listPrice and regulationPrice per currency. |
Testing Recommendations
Section titled “Testing Recommendations”To ensure correct behavior, we recommend the following validation tests:
- Test with currency-specific columns. Example:
DKK.priceNet, DKK.priceGross, USD.priceNet. - Verify tax calculation. Provide only one price (net or gross) and confirm that the other is calculated automatically.
- Test custom column mapping. Example: Map
"MyPrice"→"DKK.priceNet". - Test multiple currencies. Import a single CSV containing several currencies at once.
- Validate list and regulation prices. Check that nested price fields are correctly imported for all currencies.
- Verify linked attribute. Confirm that “linked” is correctly displayed in Shopware when both or only one price is imported.
- Check system currency compatibility. Ensure that your default store currency still imports as before.
Summary
Section titled “Summary”The new multi-currency advanced pricing functionality brings Shopware imports to a new level of flexibility. You can now import, calculate, and manage prices for any number of currencies — all in one seamless process.
With automated currency detection, dynamic field mapping, and native UI integration, this update removes the need for manual configuration or multiple import jobs. Simply include currency-specific columns in your import file, and the system will handle the rest.