Skip to content
Documentation · 05

CSV — all languages, all Custom fields.

A single CSV file for your complete product catalogue. Clean JSON merge on import, locale-aware type detection, snapshot with revert.

01
Column convention

Clear names for clear mapping.

So that the import can map columns correctly, the PIM uses a consistent naming convention. On export, headers follow this convention automatically.

Standard

Plain field names

Master data without prefix: productNumber, name, description, manufacturer, ean ...
Translations

trans_FIELD__LANG

trans_name__de_DE, trans_name__en_GB, trans_description__de_DE, trans_metaTitle__de_DE ...
Custom fields

cf_NAME or cf_NAME__LANG

cf_myField for language-independent CFs, cf_myField__de_DE for language-specific CFs.
Product unit

"Unit (name)" as clear name

In addition to the UUID column unitId the PIM exports the clear name (e.g. "litre"). On import, the name is automatically resolved to the correct ID.
02
Profile

Built-in & custom.

So you don't have to reselect columns every time, profiles are available as templates — and you can save your own.

Built-in

"Prices & stock"

Master data, prices, stock, base-price fields. Product unit as clear name (more readable in Excel).
Built-in

"SEO"

Meta title, meta description, keywords in all languages. Plus product name and URL slug.
Custom

Save your own profiles

Select columns, "Save as profile", give it a name. On next export, one click.
Per user

Own profiles per user

Profiles are stored per user. Multiple users can't get in each other's way.
03
Data types

Locale-aware type detection.

The PIM detects German numbers with comma, ISO or German dates, various boolean variants and pipe-separated arrays automatically.

Boolean

Multiple variants

1 / 0, yes / no, true / false, active / inactive — all are correctly recognised as boolean.
Date

ISO or German

2026-05-13 (ISO) or 13.05.2026 (German) — both work.
Number

Comma or dot

9,99 or 9.99. Thousand separators are also recognised.
Array

Pipe-Separator

option1|option2|option3 for multi-select CFs. Trimming and empty-value filtering happen automatically.
04
Import-Mechanik

Batch sync with progress & snapshot.

Instead of sequential single updates, everything runs through the Shopware Sync API in batches — so 10,000 products in a few minutes.

Match

By SKU

Existiert productNumber Existing → Update. New → Create. Both in one CSV possible.
JSON-Merge

Don't clobber custom fields

Before import, the existing CF JSONs are read (pre-fetch). New values are merged in — other CFs remain untouched.
Translations

Merged here too

A translation column for only one language doesn't overwrite all other languages. Pre-fetch and merge identical to CFs.
Snapshot

Optional but recommended

Activate in the import modal — pre-state is captured, revert via audit log possible. Slightly slower for large imports, but safe.
05
Permissions

Import & export separated.

So data management and data modification are clearly separated. Default: import only for superadmins.

Export

csv_export permission

Pure data output. Can be granted to most management roles — produces no changes.
Import

csv_import permission

Changes data in bulk. Default only for superadmins. Tab in the CSV modal is automatically hidden if the permission is missing.
UI

Tabs are filtered

The modal shows only the tabs the user is authorised for. No hidden buttons, no "this action is not permitted" dialog.
Audit log

Imports logged

Every CSV import lands in the audit log: user, timestamp, count of affected products, file hash, optionally snapshot reference.
Questions?

We help with onboarding.

Personal setup, data migration from legacy systems, training for your team — on request, we get the PIM running productively in your shop.

Contact usRequest feature