Skip to content
Manual · Version 1.0

PIM for Shopware 6 — Manual

This page bundles all functions of the PIM plugin for Shopware 6 at a glance. It serves as a compact reference — for detailed step-by-step guides with screenshots, please use the dedicated documentation pages for each area.

The PIM plugin is compatible with Shopware 6.5, 6.6 and 6.7. All functions described here are available identically in all three versions.

Show table of contents

System requirements

The PIM plugin runs in any standard Shopware 6 installation without additional server configuration.

  • Shopware: 6.5, 6.6 or 6.7 (all three major versions are maintained in parallel)
  • PHP: 8.2 or newer
  • Database: MySQL 8 or MariaDB 10.11
  • Memory: Shopware's standard recommendation is sufficient (256 MB+ PHP memory_limit)
  • Permissions: Shopware admin access as administrator role
Note: The plugin uses only official Shopware data models and APIs. No custom database schemas, no core patches.

Installation

Installation works via the Shopware Store or by manual upload.

Via Shopware Store

  1. In Shopware admin, go to Extensions → Store and search for "PIM for Shopware".
  2. Load the plugin — it then appears under Extensions → My extensions.
  3. Click Install to install the plugin, then Activate.

Manual installation

  1. Download the ZIP file from the Shopware Store.
  2. In Shopware admin, go to Extensions → My extensions and upload the ZIP file.
  3. Install and activate as above.

Activate plugin

After installation, the plugin must be activated. Activation performs the following operations:

  • Creates plugin configuration entries in the database.
  • Registers ACL permissions (see Permissions).
  • Registers menu items in the Shopware admin sidebar.
  • Builds the initial config matrix with defaults.
No cache clear needed: The plugin triggers the necessary cache refresh automatically.

Open PIM

After activation, the PIM menu item appears in the Shopware admin sidebar. The first call loads the listing of all products (visible according to the sales channel permissions of the logged-in user).

PIM does not replace Shopware's standard product management — it complements it with an alternative UI optimised for bulk operations.

Config matrix

The config matrix is the central control element of the plugin. It is located under Settings → System → PIM configuration and controls six areas:

  1. Visible fields in listing — which columns are shown by default.
  2. Editable fields in bulk-edit — which fields are available for bulk operations.
  3. Active languages — which languages can be maintained in the PIM.
  4. Default patterns for variant generator — SKU and name patterns as template.
  5. AI provider configuration — which providers are active, which models, with which tone.
  6. Export settings for CSV — which columns are included by default in exports.

Changes in the config matrix affect all users immediately, without requiring a browser reload.

Permissions

The plugin uses Shopware's standard ACL system. The following permissions are registered and can be granted per role:

  • staw_pim.viewer — open PIM and view listing (read-only)
  • staw_pim.editor — inline editing and bulk-edit
  • staw_pim.csv_export — CSV export
  • staw_pim.csv_import — CSV import
  • staw_pim.variant_generator — variant generator
  • staw_pim.ai_textgen — AI text generation
  • staw_pim.config — edit config matrix

Assign under Settings → System → Users and permissions → Roles.

Languages

PIM supports all languages configured in Shopware. Languages become visible and editable when marked as active in the config matrix.

Each language gets its own tab in the detail editor. In bulk-edit, the target language can be selected per operation.

Locale-aware: CSV import automatically detects number and date formats per language (e.g. 9,99 for German, 9.99 for English).

Sales channels

Sales channel visibility is displayed as a column in the listing and can be maintained per product via bulk-edit. For multi-channel setups, a sales channel filter shows the listing restricted to products visible in a specific channel.

Listing structure

The central product listing is the main view of PIM. It shows all products in your shop in a data-table-style view with the following elements:

  • Filter bar at the top — arbitrary filter conditions with AND/OR linking
  • Column headers — sortable, resizable, hide/show
  • Data rows — one row per product, with variant expansion on-demand
  • Footer toolbar — selection count, bulk actions, export/import buttons
  • Bottom save bar — appears on active inline edits with save/discard

The listing uses native HTML table virtualisation, so even large catalogues (5,000+ products) scroll smoothly.

Filters with AND/OR

Filter conditions can be combined freely:

  • 9 comparison modes per field: contains, does not contain, equals, not equal, starts with, ends with, is empty, is not empty, in list
  • AND/OR logic between filter conditions — also nested
  • Variant-aware — filters consider both parent products and variants
  • Available for all fields including custom fields and multilingual fields

Examples

  • All products with stock < 5 AND category "Sale"
  • All products without description OR without image
  • All variants with colour "red" AND manufacturer "Nike"

Configure columns

Visible columns can be configured individually per user:

  • Add via plus icon at top right — all available fields are searchable
  • Reorder by drag-and-drop
  • Resize by dragging the column edge
  • Sort by clicking the column header

All settings are stored per user in the database and remain available after login on a different device.

Filter and column presets

Frequently used filter and column configurations can be saved as presets:

  • Personal presets — only visible to the own user
  • Shared presets — visible to other users with the same role
  • System presets — set by admin as templates, read-only

Presets can be activated by clicking and searched via keyboard shortcut (Ctrl+F).

Inline editing

Fields can be edited directly in the listing by clicking. Supported inputs:

  • Text fields — click opens a simple input
  • Numeric fields — with locale-aware thousands/decimal separators
  • Boolean fields — toggle slider
  • Select fields — dropdown with search
  • Multi-select — chips with add/remove
  • Date/time — native date picker

Changes are immediately reported to the bottom save bar. Save only on click — until then, all changes are local and discardable.

Keyboard shortcuts: Enter confirms, Esc cancels, Tab jumps to the next field.

Variant display

Variant products appear in the listing as a parent row. Click the plus icon to expand variants inline below, without page change.

When expanded:

  • Variants appear indented beneath the parent
  • Each variant gets its own inline editing
  • Filters apply to variants (variant-aware)
  • Multi-selection can combine parent products and variants

Bulk-edit — overview

Bulk-edit is one of the core functions of PIM. It allows changing fields on any number of selected products in a single operation.

Workflow

  1. Select products in the listing (via checkboxes or "Select all")
  2. Click Bulk-edit in the footer toolbar
  3. Dialog opens — pick target field, enter new value
  4. Live preview shows the result for each product
  5. Confirm — operation runs with progress indicator
  6. Snapshot is automatically created for revert option

Editable fields

25+ fields can be maintained via bulk-edit:

Master data

  • Name (per language)
  • Description (per language)
  • Meta title, meta description, keywords
  • Manufacturer
  • EAN, SKU

Prices

  • List price and RRP
  • Tier prices (bulk-apply to all tiers)
  • Base price and base price unit
  • Tax rate

Stock and shipping

  • Stock
  • Delivery time
  • Free shipping flag
  • Weight, height, width, length

Sales channels and categories

  • Sales channel visibility (multiple in parallel)
  • Main category
  • Additional categories
  • Cross-selling assignments

Properties and custom fields

  • Properties (assign and remove)
  • Custom fields of all types
  • Tags

Snapshot & revert

Every bulk-edit automatically stores a snapshot of the previous values. This lets you undo an accidental operation.

  • Snapshots are kept for 30 days
  • Overview of all snapshots under PIM → Snapshots
  • Revert per product or for the entire operation
  • Diff display: before/after directly in the snapshot detail
Caution: Three fields are not snapshot-capable and cannot be reverted: SEO URL (generated, not reversible), tier prices → variants, cross-selling → variants. A corresponding warning appears in the dialog.

Live preview

Before saving, a table shows for each selected product:

  • Current value
  • New value after operation
  • Diff marker for text fields
  • Note when a field is not editable for a product (e.g. inheritance mode active)

Limits and notes

  • Maximum number: no hard limit — tested with 10,000 products in one operation.
  • Snapshot retention: 30 days. Then automatically deleted.
  • Variant products: A change on the parent affects inheritance to variants. A warning shows this in the dialog.
  • Config matrix: Which fields are editable is controlled in the config matrix — fields disabled there will not appear in the bulk dialog.

CSV export

The CSV export produces a file with all or filtered products. Configurable via Config matrix → Export.

  • Columns freely selectable — standard fields, custom fields, properties, translations
  • Separator selectable: comma, semicolon, tab
  • Encoding: UTF-8 (with BOM option for Excel compatibility)
  • Respects filters: Active listing filters apply to the export

Permission required: staw_pim.csv_export.

CSV import

CSV import reads a file and creates new products or updates existing ones. Match logic: by SKU (productNumber).

Workflow

  1. Upload file (drag-and-drop or file picker)
  2. Column mapping is shown — automatically detected from headers
  3. Adjust mapping if column names differ
  4. Inspect data type detection preview
  5. Dry run shows: how many new, how many updates, how many skipped
  6. Real import runs with progress bar and ETA

Permission required: staw_pim.csv_import.

Data type detection

The importer detects data types automatically per language and column:

  • Boolean: 1/0, true/false, yes/no, active/inactive
  • Date: ISO notation (2026-05-15) and German notation (15.05.2026) — both work
  • Number: comma or dot as decimal separator, thousand separators recognised
  • Array: pipe separator (|) for multi-select custom fields
  • JSON: for complex fields like translations

Multilingual fields

One column per language. Column names follow the pattern name_de-DE, name_en-GB.

On import:

  • Language columns are detected automatically
  • Existing translations are added, not overwritten (JSON merge)
  • Empty cells do not cause data loss — they are ignored

Column mapping

If CSV headers do not match Shopware field names, the mapping can be overridden manually:

  • Drag-and-drop between CSV column and Shopware field
  • Mapping can be saved as a template (for recurring imports)
  • Templates are available per user or shop-wide

Import log

Every import is logged. Overview under PIM → Import history:

  • Timestamp, user, number of records
  • Successes (new / updated / skipped)
  • Errors with row number and reason
  • Download of the original CSV file possible (30 days retention)

Variant generator — property selection

The variant generator creates variants from property combinations automatically for a parent product.

Selection mode

  • Visual selection of all shop properties with search
  • Property values are grouped (e.g. "Colour → red/blue/green")
  • Values are added by clicking
  • Live preview of combinations below

Example

Selection: Colour (red, blue, green) × Size (S, M, L) = 9 variants.

Patterns for SKU and name

Each variant can have its SKU and name generated automatically based on a pattern.

Available variables

  • {base} — SKU of the parent product
  • {property:Colour} — value of property "Colour" for this variant
  • {property:Size} — value of property "Size"
  • {counter} — sequential number (1, 2, 3, …)
  • {counter:03} — with leading zeros (001, 002, …)

Examples

  • SKU pattern: {base}-{property:Colour}-{property:Size}SW-1001-red-S
  • Name pattern: {base} ({property:Colour}, {property:Size})T-Shirt Basic (red, S)

Live preview

During configuration, a table shows the first 8 combinations with concrete SKU and name. For more than 8 variants, a "+ X more" hint appears.

Before generation, the exact total number is displayed.

Default patterns

SKU and name patterns can be set globally as defaults in the config matrix. They are then prefilled in the generator.

Per-product override is possible: In product detail under "Variant generator" you can save patterns that override the global defaults for this parent product.

Safe deletion

When deleting variants, the plugin checks for open orders.

  • Mode "Safe" (recommended): Variants with open orders are not deleted. Instead, they are deactivated and removed from sale. Data is preserved for accounting and returns.
  • Mode "Complete": Variants are deleted, even if orders exist. Caution: may affect accounting and return workflows.
Recommendation: Always work in "Safe" mode. Use "Complete" only for full catalogue cleanup.

AI text generation — providers and models

PIM integrates two AI providers directly in the Shopware admin. Both can be active in parallel — pick per operation.

  • Anthropic Claude: Haiku 4.5, Sonnet 4.6, Opus 4.6 / 4.7
  • OpenAI ChatGPT: GPT-4o Mini, GPT-4o, GPT-4.1 Mini, GPT-4.1

Calls happen server-side — your own API key is never sent to the browser.

Set up API key

Both providers require their own API key. Billing runs directly with the provider.

Setup

  1. Create an API key at console.anthropic.com or platform.openai.com.
  2. In PIM, go to Config matrix → AI and enter the key.
  3. Click "Test connection" to verify the key.
  4. Click "Enable bulk" to activate for bulk-edit.
Security: Keys are stored encrypted in the database and only used server-side.

What can be generated

The AI generator produces four field types, individually or together:

  • Description (HTML): formulated product description with paragraph structure
  • Meta title: max 60 characters, SEO-optimised
  • Meta description: max 155 characters, SEO-optimised
  • Keywords: comma-separated list

Generation works for a single product in the detail editor or via bulk-edit for many products in parallel.

Context control

Per generation, you control which data is sent to the AI provider:

  • Name (always included)
  • Existing description as inspiration baseline
  • Properties from product properties
  • Custom fields with relevant content
  • Manufacturer, category

Set per field via chips ("With properties", "With description", "With custom fields"). This lets you control the token count per call.

Style templates

5 predefined tone templates are available:

  • Professional: factual, fact-oriented
  • Casual-modern: direct, younger tone
  • Premium/luxury: elevated language, sensory wording
  • Technical: precise, with technical terminology
  • Emotional: storytelling approach, user experience focused

Default tone per shop in the config matrix, override per operation possible.

Costs and limits

Billing happens directly with the provider (Anthropic or OpenAI). PIM charges no additional fees.

  • Token display: Per call, estimated tokens and costs in € are shown
  • Bulk limits: Configurable upper bound (e.g. "max 100 products / bulk call") as safety net
  • Cost warning: When the estimated bulk call exceeds a configurable threshold (default: €5), a confirmation dialog appears

Cross-selling

Cross-selling streams can be maintained per product manually or via bulk.

  • Manually: Product detail → "Cross-selling" tab → drag-and-drop from product search
  • Bulk: via bulk-edit — operation "Assign cross-selling stream"
  • Inheritance to variants possible (with hint in dialog)

Prices and tiers

Prices can be maintained per product with all standard Shopware options:

  • List price, RRP, net price per customer group
  • Tier prices: from X units = price Y
  • Base price and base price unit
  • Tax rate
  • Bulk apply: price changes on hundreds of products at once

Properties

Properties (Shopware "Eigenschaften") appear in the PIM listing as additional columns and can be maintained via bulk-edit.

  • Assign property values: multi-select in bulk dialog
  • Remove property values: bulk action "Remove property"
  • Create new property: directly in detail editor (with permission)

Custom fields

All Shopware custom fields are automatically available in PIM — no additional configuration required.

  • All types supported: text, number, boolean, date, select, multi-select, JSON
  • Per-language custom fields are displayed with a language tab
  • Filterable in the listing like standard fields
  • Editable via inline-edit and bulk-edit

Categories

Categories are shown in the listing as a hierarchy path. Editing:

  • Main category per sales channel assignable
  • Additional categories (multi-assignment)
  • Bulk apply: set category for 100+ products at once
  • Hierarchy selection via tree picker

Media

Media (images, videos) are visible as thumbnails in the PIM listing.

  • Upload images via drag-and-drop directly in the listing
  • Reorder images by drag
  • Mark cover image
  • Alt texts per language

For mass media uploads, Shopware's standard media manager is still the better option — PIM only adds quick edits at the product level.

Performance

PIM is designed for large catalogues.

  • Native virtualisation: The listing only renders visible rows — smooth even with 50,000+ products
  • Server-side filtering: All filters run in the database, not in the browser
  • Lazy loading: Variants are loaded only when expanded
  • Bulk operations: Batch sizes are configurable — large operations save in batches with progress

Troubleshooting

Listing does not load

  • Clear cache: Settings → Caches & Indexes → Clear cache
  • Check browser console — JavaScript errors usually indicate a conflict with another plugin
  • Check PHP memory limit — 512 MB recommended for very large catalogues

CSV import fails

  • Check encoding — UTF-8 recommended
  • Check separator — Excel exports often use semicolon instead of comma
  • Check PHP limits: upload_max_filesize, post_max_size, max_execution_time

AI generation fails

  • Test API key under Config matrix → AI → Test connection
  • Anthropic: top up credit at console.anthropic.com
  • OpenAI: check billing status at platform.openai.com/billing
  • Check server logs: var/log/prod-*.log in the Shopware installation

Contact & support

For questions about features, bug reports or feature requests:

Response time: usually 1–2 business days.