Skip to content
Stone & Water
Shopware 6 Plugin · Made by Stone & Water

The missing Product Information Management for Shopware 6.

Edit hundreds of articles and variants in seconds. CSV import in all languages. Variant matrix with patterns. Custom fields per language. Snapshots with revert. AI text generation with four providers (ChatGPT, Claude, Mistral, Gemini). All directly in the Shopware admin - no ETL tool, no third-party system.

01
AI text generation

Generate product texts automatically - with ChatGPT, Claude, Mistral or Gemini.

Descriptions, meta titles, meta descriptions and keywords in every language of your shop - at the push of a button. Four providers (OpenAI, Anthropic, Mistral, Google), all usable in parallel with provider selection per generation.

Claude · Anthropic

Strong on longer, nuanced texts

Own API key, own model choice, own tone default - completely independent.

Models: Haiku 4.5 · Sonnet 4.6 · Opus 4.8 · Fable 5

ChatGPT · OpenAI

Fast, cost-effective generation

Proven for large volumes. Own key/model/tone configuration here too. Connection test directly in the admin.

Models: GPT-5.5 · GPT-5.4 · GPT-5 mini · GPT-5 nano · GPT-4.1 mini

Mistral AI

Strong European models

Good value, own key/model/tone default, connection test in the admin.

Models: Mistral Large 3 · Medium 3.5 · Small 4

Gemini · Google

Very fast flash models

Large context windows, own key/model/tone default, connection test in the admin.

Models: Gemini 3.1 Pro · 3.5 Flash · 3.1 Flash-Lite

Provider switch

All configurable in parallel

When several providers are active, pick the right one per call in the generator modal - Claude for the demanding main description, a flash model for fast meta data, for example.

Per language

Individual texts per channel & language

Each channel-language combination gets unique texts. Or generate once and clone to all languages - you decide per run.

Tone

Five style templates

Professional, casual-modern, premium/luxury, technical-factual or emotional-promotional. Set a default per provider, override per generation.

Context chips

You control what the AI sees

Which product data flows into the prompt? Name, manufacturer, properties, category, price - selectable via chip. Plus own keywords for SEO focus.

Bulk-edit

AI in bulk too

Activatable per provider: all four AI providers can also generate texts for many products simultaneously in bulk-edit - with concurrency control against rate limits.

Safety

Review first, then apply

Generated texts appear in preview mode first. You review, optionally create snapshots, then apply to the product. "Overwrite existing" is optional.

02
Product listing & overview

All articles at a glance - parents and variants.

A single listing for the entire product catalogue. Parents are shown with their variant count, expandable inline, and totals are always visible - above and below the table.

Listing

Parents + variants in one listing

Display in the format Products: 153 (Variants: 543) - separated, above and below the pagination.

  • Expand variants inline directly in the table
  • Badge with variant count per product
  • Lazy-loading: variants load only when expanded
Inline edit

Edit directly in the row

Stock, price, EAN, manufacturer number and weight edit directly in the listing row - also for variants. Click the value, change, done.

  • Active toggle per product
  • Read-back verification after save
  • Warning when Shopware discards the value
Quickview New

Master data in a modal - no detail switch

Quickview icon in the row opens a compact modal with all key master data, prices, stock and SEO. Ideal for serial maintenance.

  • Prices (gross/net), purchase price, omnibus price
  • Stock, closeout, free shipping
  • SEO & description - sections show/hide per config
Filters

Filters with AND / OR

Combine arbitrary filter conditions. Also across variant fields - search automatically traverses parent and child fields.

  • 9 operators: contains, equals, starts with, greater/less, empty, …
  • AND/OR combination by click
  • Variant-aware: also matches parents with matching variants
Presets

Save and load filter presets

Define frequent filter combinations once, restore with a click - perfect for recurring maintenance.

  • Unlimited presets per user
  • Filter chips in the header stay visible
  • Complete filter state is saved
Performance

Native list virtualisation

For large lists (1000+) the browser only renders visible rows - via content-visibility: auto. Smoother scrolling without UI change.

  • Row count: 10 / 25 / 50 / 100 / 200 / 500
  • Sticky pagination above and below
  • Quick-scroll-to-top button
03
Bulk-edit · The core

25+ fields at once - with snapshot, live progress and revert.

Instead of touching every product individually: set filter, select all, change fields. Every bulk operation creates a snapshot of the state before. Something wrong? One click - everything's back as it was.

Action "Limit to filter"

Filter the variants - the parent stays untouched.

When you filter by a variant field and bulk-edit, you usually only want to touch the filter-matching variants. PIM does that - the parent stays untouched. One toggle click and the bulk action follows the filter exactly.

25+ fields

What's bulk-editable

  • Name, description, meta title, meta description, keywords
  • Active status, manufacturer, tax rate, delivery time
  • Sales price (gross/net), tier prices, list price
  • Purchase price gross + net separately - the other value is automatically calculated via the tax class
  • List price/RRP, lowest 30-day price (Omnibus)
  • EAN, manufacturer number, dimensions, weight
  • Base price (content quantity + base unit), product unit
  • Stock, restock time
  • Categories, main category per sales channel, tags
  • Properties, sales channel visibility, cross-selling
  • Custom fields (also per language)
Data inheritance New

From parent to all variants

Dedicated action: transfer description, tier prices, cross-selling, images and SEO from parent to all variants. Also in bulk mode for multiple parents.

Snapshots

Before-state + one-click revert

Every bulk-edit creates a snapshot. Visible in the audit log, revertible anytime.

  • 22 of 25 fields fully snapshot-capable
  • Also translation changes per language
  • Diff display before/after per product
Live progress

Progress in real time

Even with 500+ products, no black-box feeling: live counter, phase indicator (snapshot / apply), ETA calculation and cancel button mid-operation.

Scope

Source: selection or preset

The bulk operation can be based on manual selection or a saved preset - thousands of products at once is no problem.

  • From current selection: selected rows
  • From preset: all filter-matching products
  • With/without variants
  • Variants only (with filter restriction)
Filter display New

Complete overview of all active filters

Before every bulk-edit, all preset filters are displayed as readable chips: manufacturer, categories, tags, properties, stock, price, weight, date ranges, visibility, tax class and more. IDs are resolved to clear names. "No filters active" with red border as warning.

Validation New

Required-field errors as clickable modal

Save with empty required fields: instead of a wall of warning banners, a modal opens listing all errors. Clicking an error jumps directly to the relevant section - it expands, the field is briefly highlighted with an indigo outline.

04
Variant generator

100 variants in 10 seconds - with patterns and preview.

Variant maintenance in the Shopware admin is tedious. Our generator does it visually: pick properties, click options, define patterns for SKU and name, check preview, generate.

Unified search New

One search for properties and options

Instead of two separate search fields: a single search at the top filters properties and options simultaneously. Type "red" and all groups with the option "red" remain visible while matches on the right are highlighted.

Pattern accordions New

SKU + name as separate accordions

Instead of raw inputs side by side: two dedicated accordions. Collapsed they show the current pattern as a chip; expanded the input appears with clickable variable chips.

  • Variables: {number}, {option1}, {parentName}, {group1}, {counter}
  • Live preview of the first 8 combinations
  • Config matrix as default, override per operation
Variant matrix New

Bulk prices and stock in one table

Instead of opening variants one by one: all of them in a matrix. One axis shows the first property (e.g. colour), the other the second (e.g. size). Each cell offers price and stock for direct editing.

  • Inline edit for price, stock, EAN, MPN
  • Property sorting via drag-and-drop
  • Optional: apply parent values to empty cells
Safe deletion

Variant deletion with order check

Delete existing variants but only those without orders. Prevents accidentally discarding active variants.

  • Mode "Safe": only variants without orders
  • Mode "All": entire variant structure
  • Confirmation dialog with count
05
CSV import & export

Complete multilingual support - also for custom fields.

Instead of one file per language: all languages in ONE CSV. Column convention trans_name__de_DE for standard fields, cf_myField__en_GB for custom fields. Import with pre-fetch of existing values and clean JSON merge.

Profiles

Built-in export profiles

Predefined column sets for typical use cases - usable immediately, adjustable, saveable as new profile.

  • Master data, SEO, images, prices & stock
  • Properties & custom fields, cross-selling
  • Custom profiles per user
Custom fields

Each field as its own column

Custom fields activated in the config matrix get their own column in the export (cf_myField). On import they are recognised directly - no more JSON blob.

Product unit

Unit as readable name instead of UUID

Column "Unit (name)" exports "Litre" or "Kilogramm" instead of UUID. On import the name is automatically resolved to the correct Shopware unit ID - Excel-friendly.

Resolution

By SKU or EAN

For fields normally requiring a UUID (parentId, mainVariantId): UUID, SKU or EAN possible. Lookups are cached - no duplicate hits.

Import

Batch sync with progress

Everything via the Shopware sync API in batches - even 10,000 products in a few minutes. With live counter, phase indicator and ETA.

  • Match by SKU / ID / EAN
  • Create new products OR update existing
  • Custom field JSON is merged, not overwritten
Permissions

Import only for super admins

The CSV modal automatically hides the import tab for non-super-admins. Export permission also granularly controllable.

06
Config matrix & UX

Adapt to your workflow.

Everything visible or editable in PIM is controlled via the config matrix - central, with search, with section order via drag-and-drop.

Section order New

Drag-and-drop your layout

The order of sections in the product detail view (master data, prices, media, SEO, …) and in the variant modal can be freely set via drag-and-drop. Sections without active fields are hidden automatically.

Default tax rate New

New products: tax default applied automatically

When creating a new product, the first tax rate from the system is preselected (sorted by position ASC). Gross/net calculations work immediately, no extra click needed.

Config search

Ctrl+K · cross-tab search

Quick search through all tabs of the config page. Match counter per tab, auto-scroll to first hit, ↑/↓ navigation.

Per-user persistence

Personal view per maintainer

Column configuration, page size, filter presets, AI tone - everything is stored per user. Multiple maintainers work in parallel with their own view on the same data.

07
Workflow · Audit · Permissions

Who changed what - and can it be undone?

With multiple maintainers, traceability is everything. PIM logs every change with user, timestamp and diff. Granular rights per module, super admin with override.

Audit log

Complete change history

Every bulk operation, every CSV import batch, every snapshot action lands in the audit log with user, timestamp and before/after values.

Approval

Approval workflow for products

Optional: products can be set to "pending" and must be approved before activation - e.g. after bulk import.

Permissions

Granular permission system

Who can do what? Bulk-edit, CSV import/export, AI generation, delete, snapshots, approval - each action separately grantable.

Revert

One-click restore

Directly from the audit log: roll back a snapshot. Complete product states before the operation are restored.

08
By the numbers

What's in the package.

25+
Bulk fields with revert
2×
AI providers integrated
3×
Shopware versions
100+
Translation strings DE/EN
Languages per CSV
09
Recent additions

What was added recently.

PIM is continuously extended with features that emerge from real maintenance workflows.

Compact variant view, DATANORM 5.0 & further improvements
New
  • Compact variant view (config matrix → General → Product list): variants displayed space-saving without large indentation, without preview image and with noticeably flatter rows - name and options preserved. Long variant names no longer overlap.
  • DATANORM import expanded: support for DATANORM 5.0 (own field layout for name, price, EAN), any volume extension (.001-.999) and additional record types (long text, prices/DATPREIS).
  • Bulk edit: the "restock time (days)" field can now be set and cleared via bulk edit - incl. undo/snapshot.
  • Category management: the language selector now follows the languages assigned to the active sales channel; additional "active only" filter.
  • AI providers more robust: OpenAI proxy fixed for newer models (gpt-5 / o-series) (max_completion_tokens, retry without temperature), Mistral defensively safeguarded.
Category management expanded - SEO URLs, images, import/export, product assignment, completeness score
New
  • SEO URL per category (slug per channel & language): old URL stays as 301, new becomes canonical and survives reindex; empty field resets to Shopware automatic.
  • Category image (cover) from media library or upload with preview, plus language-dependent alt text for accessibility/SEO.
  • Import/export: entire tree as multilingual CSV (one column per language for each field, field.locale; custom fields as cf. columns) or as JSON backup. Import resolves parents via parentPath, with preview, validation and backup.
  • Product assignment: dynamic product group (stream) or StawPim preset filter with live hit count; on save the products are firmly assigned.
  • Completeness score per category (description, meta, image) in the tree and live in the detail, plus a completeness filter.
  • Bulk actions in the tree (active/inactive, show/hide in nav) with named snapshots, "history" and audit log; default sorting per category; duplicate incl. subtree.
  • Translate separately next to "AI texts" (DeepL or AI provider), also as bulk across all selected categories.
SEO URL - Shopware standard mode as alternative
New
  • New config option "Shopware standard SEO URL" (separately for product detail, variant modal and Quickview). When active, the field shows the native Shopware SEO URL and hides the StawPim canonical field; the main category stays visible.
  • Directly editable standard SEO URL field in master data, variant modal and Quickview - loads the existing URL (even without channel binding) and writes via PATCH to seo_url, no duplicates. Backwards-compatible: existing pattern shops stay unchanged.
  • Duplicating: the duplicate's SEO URL (incl. variants) is automatically regenerated from the channel template - no more accidental redirect to the original.
  • Release date moved after "Availability" in the config matrix.
Category management - tree per sales channel, AI texts, WYSIWYG, drag & drop
New
  • Dedicated modal: a "Categories" button (left of the Feed Generator) opens full category management - no switching to the Shopware standard needed. The tree is built per sales channel from the navigation root, with the entry category at the top, loaded directly via the category repository.
  • Full feature set: create, rename, activate/deactivate, delete (confirmation in a PIM-CI dialog), fields per language (name, description, SEO), set parent category and type, assign layout (CMS experience) incl. "Create new experience", external link for link categories, "Show in main navigation" toggle, custom fields, plus moving via drag & drop.
  • Description as WYSIWYG editor (sw-text-editor) with visible HTML formatting - stable across category, product master data, variant detail and translations when switching entity/language.
  • AI texts for categories: generate description, meta title, meta description and keywords across all four providers - with tone selection, a free "Additional instructions to the AI" field, an "Include subcategories" toggle (entire subtree) and "Overwrite existing texts".
  • Dedicated "Manage categories" permission. Master-data-style channel bar with icons, detail sections collapsed on opening.
AI text generation - four providers, current models
New
  • Mistral AI and Google Gemini as additional providers alongside OpenAI and Anthropic - each with its own config section (enable, API key, model, connection test, default tone). When several are active, the provider can be chosen per generation; the product detail generator (incl. variants) and the inline AI component use all four.
  • Updated model lists: OpenAI GPT-5.5 / 5.4 / 5 mini (default) / 5 nano / 4.1 mini; Anthropic Claude Opus 4.8 and Fable 5 added (Haiku 4.5, Sonnet 4.6 stay); Mistral Large 3 / Medium 3.5 / Small 4; Gemini 3.1 Pro / 3.5 Flash / 3.1 Flash-Lite.
Properties, permissions & duplicating
New & Fixed
  • Properties to variants: properties assigned to a product with variants are now written to all variants so they appear in the storefront (in Shopware a variant only inherits while it has no property rows of its own). The assign dialog robustly pre-selects existing properties on reopening, so repeated add/remove works.
  • New feature toggles: "Duplicate products" (separate from "Create products") and "Generate variants (bulk edit)" can be shown/hidden for normal users; plus the "Manage categories" permission.
  • Duplicating: variants of a duplicated product are created inactive (instead of keeping the original's active status).
  • Firefox fix: variant group/option chips now also appear in Firefox in the product list; on search/filter the option chips load correctly.
Availability, tier prices & detail editing
Fixed
  • Availability: the "Clearance" and "Free shipping" switches now use the Stone & Water PIM toggle (indigo CI) and are cleanly centred to the height of the adjacent input fields - on the detail page and in the variant detail modal.
  • Tier prices: the % sign in the savings column now sits correctly inside the input field.
  • Texts: 39 confirmation/notice dialogs with missing spaces fixed (DE + EN).
SEO URL system with two generators - custom field as bridge, Shopware-native indexing
New
  • Step 1 - "Generate URL in custom field" (token → field): a token pattern (e.g. {mainCategoryPath}/{name}) is resolved variant- and language-accurately and written to the per-shop custom field staw_pim_canonical_<shop>. Available as bulk run (channel/language selection in the modal) and via per-product "Generate from pattern" button in master data and variants.
  • Step 2 - "Generate SEO URLs" (Twig → database): a Twig pattern reads the custom fields (e.g. a migrated field with fallback to the canonical field) and is set as Shopware's native SEO URL template per sales channel - reindexing runs through Shopware's own SeoUrlGenerator. URLs then come directly from the custom field and survive every reindex.
  • Migrated URLs are preserved: products with an existing URL (e.g. from a previous system in a custom field) keep it; new products use the field filled by step 1. Changed paths remain as 301 redirects.
  • Targeted generation: writes only for the selected sales channels + languages - channels grouped by shop with language accordions, "select/deselect all" per group, nothing preselected. Per channel: badges with product count (only products actually visible in the channel) and "missing URL" counter.
  • Dry-run and preview per channel/language before writing. Dry-run result cards colour-coded: new = green, change = blue, skipped = grey, warning = amber, error = red. The preview picks products visible in the channel whose pattern resolves - up to three real examples.
  • Reset option: "Remove all product URLs (reset)" deletes all SEO URLs of the selected channels/languages (incl. Shopware's global detail URLs) and rebuilds fresh from the pattern. The other options visibly switch to OFF.
  • Unique variant URLs: {options}, {properties} and {tags} deliver language-translated values - a pattern like {mainCategoryPath}/{name}-{options} produces a unique URL per variant and language. Variants resolve their per-channel canonical field incl. inheritance from the parent.
  • Correct language fallback: chain requested language → parent language → system; empty/inherited translations are skipped - no accidental default language in foreign-language URLs.
  • Pattern editor: textarea with auto-height (entire Twig expression visible), pencil icon, variable chips (token chips for step 1, official Shopware SEO Twig variables for step 2), live Twig syntax check (save blocked on error) and a warning when tokens and Twig are mixed. Per-sales-channel patterns for both generators.
  • Robust conflict handling: paths already taken elsewhere (e.g. a category with the same slug) are cleanly skipped and reported as "path already taken" instead of aborting with a duplicate-key error. Conflicts shown with product numbers instead of IDs. The same URL in different shops is not a conflict (unique per shop + language).
  • Fast even for large catalogues: channel counting via set-based aggregate queries, product lists via index-friendly UNIONs instead of OR self-joins - SEO dialogs open without delay, generation progresses normally even with tens of thousands of products. Polished progress bar with percentage.
  • Safety net: if the canonical field yields an empty result, the SEO URL falls back to the product name instead of producing an empty path.
Performance - bulk edits, CSV import and approvals many times faster
New
  • Async queue indexing: bulk-edit product writes now default to Shopware's queue indexing instead of synchronous in-request indexing, and the write batch size was raised from 10 to 25 - large bulk runs complete several times faster. Configurable (queue / disable / sync).
  • CSV import without full reindex: after an import, only the imported products are reindexed asynchronously - the previous full-catalogue reindex is gone.
  • Batched requests: audit-log writes are saved as a batch every 600 ms (instead of one request per product); bulk approvals use a batch endpoint (one request per 200 products); bulk translations and approval/audit writes run as INSERT … ON DUPLICATE KEY UPDATE - halves the SQL statements.
  • Batched variant deletion: one IN delete instead of one statement per variant, with per-ID error feedback and automatic single-delete fallback.
  • Snapshots once per session: bulk-edit snapshots and undo data (potentially several MB) are no longer loaded on every list start.
  • Stale-response guard: rapid filter/page changes in the product list can no longer overwrite newer results with older ones.
  • Bulk edit (fix): parent products that match the active filter now receive the change as well.
Image upload via drag & drop in master data and variants
New
  • Drop zone in the images section: drop files or click to open the file dialog - uploads go to the Shopware media library (product folder) and are immediately assigned to the product, with progress display.
  • First image automatically becomes the cover if none is set yet.
  • Variant logic: an uploaded image becomes the variant's own image (overrides the inherited one). Removing it restores inheritance from the main product.
Approval workflow - new status "In progress"
New
  • Editors can set the "In progress" status themselves on a product to signal it's currently being worked on. Approve/reject/submit remain available in parallel.
  • Reflected everywhere: status badge + button in the detail view, filter and status indicator (indigo) in the product list, and the approval statistics in the settings.
Product overview & usability - price sorting, all manufacturers, category chips, toolbar
New
  • Sortable price column: clicking the header sorts ASC/DESC - server-side via the price accessor.
  • All manufacturers in the filter: the manufacturer filter now loads all manufacturers paginated instead of capping at 500 - the list no longer breaks off alphabetically, free-text search finds late names too.
  • Category chips: assigned categories are listed as removable chips below the tree (small × to remove) - instantly visible what's selected.
  • Action buttons in their own row: Feed Generator, CSV import/export and create product now always sit in their own row above the search - the search field keeps its full width on all viewports.
  • Tab bar: on narrow windows, a thin horizontal scrollbar appears when tabs overflow - every tab stays reachable.
  • Article number column uses the same font size as the product name. The SEO/canonical URL field is always shown in master data.
SEO URL slug handling - umlauts, slashes, dots and Shopware's escaper
Fixed
  • Umlauts and special characters in static pattern text (e.g. a literal "für/" in the pattern) are now converted correctly (ae/oe/ue/ss) when writing to the custom field - previously literal text passed through raw and later broke SEO URL generation.
  • Slashes and dots are preserved in token values (category names with "/", article numbers with ".") - only true special characters like "&" or spaces are converted to the separator. Preview and server generation behave identically.
  • Twig |raw auto-injected: Shopware's SEO Twig environment slugifies every printed value - stored slashes turned back into "-" during generation. Bare Twig outputs of path fields now automatically get |raw in all generation paths; the variable chips insert fields with |raw directly.
  • Deterministic category path: without a set main category, the fallback now prefers the deepest assigned category (longest path) instead of an arbitrary one; with an empty category.path column (indexer backlog), the ancestor chain is reconstructed via parent_id.
  • No more silent UUID custom fields: if the channel list wasn't loaded yet during generation, the field name silently fell back to a channel-ID suffix and created new fields - the admin now uses a second name source, skips channels without a resolvable name with a clear message, and the server rejects ID-fallback keys.
  • Migrated field strictly checked in the current language (without Shopware's translation inheritance) - values from another language no longer win. Multi-line patterns no longer pass line breaks through the template wrapper (|trim).
Feed Generator - reachable in maintenance mode, domain-independent API route
New
  • Feeds stay reachable in maintenance mode: the storefront feed route sets allow_maintenance, plus an early kernel subscriber answers feed requests before Shopware's storefront machinery kicks in (session start, maintenance resolver). Google Merchant / ERP keep running during deployments.
  • New domain-independent fallback route /api/staw-pim/export/<token>.csv (no login) for environments where the storefront URL redirects (language-path domains, redirects). The alternative URL is shown in the feed settings.
Localisation, diagnostics & cleanup
New
  • ~55 hard-coded German strings (SEO generator UI, modals, notifications, toasts) converted to snippets - the interface is fully available in German and English.
  • Configuration cleaned up: two dead settings removed; the AI "default tone" setting is now actually applied (was previously ignored).
  • Support diagnostics: session error log (last 50 entries) - previously silent error paths now log failures so problems can be diagnosed via the browser console even without server log access.
  • Internal test suite: lightweight test runner (no PHPUnit) checks SEO fallback logic, snippet consistency between de-DE and en-GB and version consistency on every release.
  • Stability: dead routes/methods removed, missing translations added, store compatibility (static code analysis) fixed.
Feed Generator - streaming performance for large catalogues
New
  • DBAL streaming in 2,000-batches: Feed generation doesn't load product data all at once into memory - it iterates through batches and emits row by row. Even catalogues with tens of thousands of products run through without memory issues.
  • Keyset pagination instead of LIMIT/OFFSET: The batches use seek pagination on the product number (indexed column). Unlike LIMIT … OFFSET, this doesn't slow down as you page deeper - output time stays linear with the number of products, whether at position 100 or 50,000.
  • gzip compression over HTTP: If the requesting client sends Accept-Encoding: gzip (all modern ERP/crawler/browser clients do), the response is compressed server-side. Feed CSVs typically compress by 80-90 % - significantly shorter transfer time, less bandwidth.
  • File mode for very large catalogues: Per feed you can choose the "File" mode. A scheduled task pre-generates the file (every 15 min, atomically written to var/staw-pim-feeds/), and the controller serves the ready file - no regeneration on every request. Ideal for ERPs that poll several times per hour.
  • Memory limit safety: The feed endpoint defensively sets the PHP memory limit to 1 GB (@ini_set) - even very wide column selections with dozens of custom fields generate cleanly.
Feed Generator - list, filter templates, renaming, multiple feeds per profile
New
  • List as an accordion: Each feed as a compact row with name, status pill ("feed active" / "no feed"), feed URL preview, filter template chip and product count chip. Clicking the row reliably opens and closes the editor (chevron on the right rotates).
  • Built-in templates and custom profiles: Selector "Create feed from template / profile" at the top of the Feeds tab. Built-in templates (master data, prices & stock, SEO, images, variants, full export) automatically create an export profile with the matching field selection, activate the feed and generate a token. Your own profiles can be activated directly as a feed.
  • Filter templates instead of simple checkboxes: In the feed editor you pick a saved filter template. Only the criteria that can be mapped reliably server-side are applied: active, stock, manufacturer, category, sales channel. Quality/completeness criteria are deliberately not applied in the feed - so the feed doesn't silently deliver a distorted product set to your ERP.
  • Live product count: Each feed row shows a chip with the number of included products - determined live from the catalogue. Direct orientation on how large each feed is.
  • Renaming and deleting: Name field in the editor (name must be unique). Trash icon per row with confirmation. The active profile and product count chip move along automatically.
  • Multiple feeds per profile: Feeds are decoupled from the source profile - you can create any number of feeds for the same profile (e.g. a "Master data" profile as basis for multiple filter templates).
  • Backend server-side filtering: The FeedExportService applies manufacturer, category and stock range directly in the CSV/XML (incl. variant inheritance to the main article).
  • Automatic migration: Existing feeds from the old model are automatically migrated on first load - tokens and URLs remain valid.
SEO URL pattern per sales channel
New
  • Custom pattern per shop: New option in the config matrix under SEO URL. When enabled → searchable shop dropdown, per sales channel a different URL pattern can be defined. Shops without their own pattern continue to use the default pattern (visible as placeholder).
  • Variable chips context-aware: Clicking a variable inserts it into the currently focused pattern field - whether default or shop-specific. The live preview shows the pattern of the selected shop.
  • Generator now processes variants too: Previously only master articles got an SEO URL written. Now variants too - inherited fields (name, manufacturer, categories, main category incl. sales-channel-specific) are resolved from the parent product. Variant-specific values like {options} stay the variant's own.
  • SEO URL accordions collapsed by default - consistent with the other tabs.
Language dropdown in bulk-edit
New
  • Language selection for translatable fields: Meta title, meta description and SEO URL (SEO tab), custom fields and packaging unit (shipping tab) now get a language dropdown - as soon as a value is entered.
  • Multi-language writing: The value is set in the default language AND additionally written into every selected language - e.g. packaging unit set in German and English simultaneously.
  • Deliberately without language selection: Product unit / unit of measure (it's only a reference to a unit) and all language-independent fields (price, stock, EAN, weight, manufacturer, status, dimensions).
Gross and net prices separated
New
  • Purchase price gross + net in bulk-edit as two separate actions - the other value is automatically calculated via the product's tax class
  • CSV import/export: separate columns purchasePrice_gross and purchasePrice_net with alias detection for German and English spellings (ek_brutto, einkaufspreis_netto, cost_gross/net etc.) - existing single-column imports remain backwards-compatible
  • Config matrix: all four price types (sales price, purchase price, list price/RRP, lowest 30-day price) can be shown/hidden independently for gross and net - both for master articles and variants
Bulk-edit - complete filter display
Improved
  • All preset filters visible: manufacturer, categories, tags, properties, stock, price, weight, date ranges, visibility, tax class, delivery time, dynamic product groups and more are displayed as chips before each bulk-edit
  • Readable resolution of IDs: with-variants and sales channel filters now show clear names instead of UUIDs
  • Clear separation: product count + active filters as a coherent info block - "No filters active" remains red as an intentional warning
Quickview modal overhauled
New
  • Modal header: variant name in front (large, dark), SKU behind it (small, grey) - same as the master variant view
  • Uniform input fields: label on top, input below (42 px height) - consistent with the rest of the plugin
  • Expand all / collapse all button in the modal header - same as in the master data detail view
Quickview & inline edit
Established
  • Quickview modal: All key master data, prices, stock and SEO directly from the listing
  • Inline edit: Stock, price, EAN, manufacturer number and weight directly in the table row
  • Read-back verification: When Shopware discards the value, a warning is shown instead of falsely reporting success
Variant generator
Extended
  • Variant matrix: Bulk prices and stock for all variants in one table
  • Unified search: One search filters properties and options simultaneously
  • Pattern accordions: SKU and name as separate accordions with clickable variable chips
Config matrix & UX
New
  • Section order via drag-and-drop for product detail and variant modal
  • Default tax rate automatically preselected for new products
  • Validation modal with scroll-to-section for required-field errors
  • Data inheritance parent → variants as dedicated bulk action
AI
Extended
  • Claude (Anthropic) as second AI provider - own section in the config matrix, usable in parallel with ChatGPT
  • Provider switch in the generator modal when ChatGPT AND Claude are active
  • AI in bulk-edit with concurrency control against rate limits
Interested?

Let's talk about your maintenance processes.

Whether 200 or 200,000 articles - PIM makes your Shopware maintenance faster, safer and traceable. With AI text generation, multilingual support, variant generator and everything you need.

In Shopware Store Request feature