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 ChatGPT and Claude. All directly in the Shopware admin — no ETL tool, no third-party system.

01
AI text generation

Generate product texts automatically — with ChatGPT or Claude.

Descriptions, meta titles, meta descriptions and keywords in every language of your shop — at the push of a button. Optionally with ChatGPT (OpenAI) or Claude (Anthropic), both 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 from ChatGPT.

Models: Haiku 4.5 · Sonnet 4.6 · Opus 4.6 / 4.7

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-4o Mini · GPT-4o · GPT-4.1 Mini · GPT-4.1

Provider switch

Both configurable in parallel

When both providers are active, pick the right one per call in the generator modal — Claude for the demanding main description, ChatGPT 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: ChatGPT and/or Claude 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.

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