---
title: Import Multi-Currency Advanced Prices
description: How to import advanced prices for multiple currencies in a single file in Shopware 6 with automatic field detection and tax calculation.
---

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.

## Key Features

### 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

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`

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

### 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

| **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

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.

## Summary

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.
