Skip to content

Import Multi-Currency Advanced Prices

Use this page when your advanced price import file includes more than one currency.

The app supports multi-currency advanced price imports for Shopware. This lets you import product prices for multiple currencies in one 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.

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.

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, priceGross
  • listPriceNet, listPriceGross
  • regulationPriceNet, regulationPriceGross

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 listPrice and regulationPrice values.

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".

FunctionalityDescription
Currency ParsingRecognizes columns in [ISO].[priceType] format (e.g., EUR.priceGross).
Tax CalculationUses existing getProductTaxRate() from the product registry to compute missing values.
Linked Attribute LogicMirrors Shopware system behavior: linked=false when both prices are provided; otherwise linked=true.
Data StructureBuilds fully Shopware-compliant nested price arrays with support for listPrice and regulationPrice per currency.

To ensure correct behavior, we recommend the following validation tests:

  1. Test with currency-specific columns. Example: DKK.priceNet, DKK.priceGross, USD.priceNet.
  2. Verify tax calculation. Provide only one price (net or gross) and confirm that the other is calculated automatically.
  3. Test custom column mapping. Example: Map "MyPrice""DKK.priceNet".
  4. Test multiple currencies. Import a single CSV containing several currencies at once.
  5. Validate list and regulation prices. Check that nested price fields are correctly imported for all currencies.
  6. Verify linked attribute. Confirm that “linked” is correctly displayed in Shopware when both or only one price is imported.
  7. Check system currency compatibility. Ensure that your default store currency still imports as before.

With automated currency detection, dynamic field mapping, and native UI integration, you can import, calculate, and manage prices for multiple currencies in a single job.