Strong on longer, nuanced texts
Own API key, own model choice, own tone default - completely independent.
Models: Sonnet 5 · Sonnet 4.6 · Opus 4.8 · Fable 5 · Haiku 4.5
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.
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.
Own API key, own model choice, own tone default - completely independent.
Models: Sonnet 5 · Sonnet 4.6 · Opus 4.8 · Fable 5 · Haiku 4.5
Proven for large volumes. Own key/model/tone configuration here too. Connection test directly in the admin.
Models: GPT-5.6 (Sol/Terra/Luna) · GPT-5.5 · GPT-5.4 · GPT-5 mini · GPT-5 nano · GPT-4.1 mini
Good value, own key/model/tone default, connection test in the admin.
Models: Mistral Large 3 · Medium 3.5 · Small 4
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
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.
Each channel-language combination gets unique texts. Or generate once and clone to all languages - you decide per run.
Professional, casual-modern, premium/luxury, technical-factual or emotional-promotional. Set a default per provider, override per generation.
Which product data flows into the prompt? Name, manufacturer, properties, category, price - selectable via chip. Plus own keywords for SEO focus.
Activatable per provider: all four AI providers can also generate texts for many products simultaneously in bulk-edit - with concurrency control against rate limits.
Generated texts appear in preview mode first. You review, optionally create snapshots, then apply to the product. "Overwrite existing" is optional.
A channel with its own language but no own texts? Name, description, meta fields and keywords can be copied over from the default language - only then does the AI have something to rewrite in that language. By default only empty fields are filled.
Besides description, meta title, meta description and keywords, the AI now also writes the product name - for ChatGPT as well as Claude. Not preselected, so existing names are not overwritten by accident.
Generated texts are collected and saved in blocks: for 2000 products the number of save operations drops from over 2000 to around 40. On request limits the run waits and retries automatically.
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.
Display in the format Products: 153 (Variants: 543) - separated, above and below the pagination.
Stock, price, EAN, manufacturer number and weight edit directly in the listing row - also for variants. Click the value, change, done.
Quickview icon in the row opens a compact modal with all key master data, prices, stock and SEO. Ideal for serial maintenance.
Combine arbitrary filter conditions. Also across variant fields - search automatically traverses parent and child fields.
Define frequent filter combinations once, restore with a click - perfect for recurring maintenance.
For large lists (1000+) the browser only renders visible rows - via content-visibility: auto. Smoother scrolling without UI change.
The "translation missing" filter is resolved server-side against exactly the selected language - with the variants name missing, description missing or both. The filter chip names the language checked, for example "Translation: name missing (Alpendampf DE)".
If a text only exists on the parent language it still applies in the storefront. Filter and completeness therefore check the whole language chain, and completeness follows the language of the selected sales channel instead of the system language.
When expanding, only the fields the list actually shows are loaded, and completeness arrives ready-made from the server - following the same rule as the filter. Description and meta texts of every variant no longer travel to the admin.
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.
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.
Dedicated action: transfer description, tier prices, cross-selling, images and SEO from parent to all variants. Also in bulk mode for multiple parents.
Every bulk-edit creates a snapshot. Visible in the audit log, revertible anytime.
Even with 500+ products, no black-box feeling: live counter, phase indicator (snapshot / apply), ETA calculation and cancel button mid-operation.
The bulk operation can be based on manual selection or a saved preset - thousands of products at once is no problem.
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.
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.
Options without a translation are marked and counted - the pencil icon lets you enter the translated name immediately, several languages at once, without leaving the Shopware property catalogue. The check runs against the languages of the assigned sales channels.
A checkbox additionally writes the selected properties to the parent product of the affected variants, and removes them there in removal mode. That way master product and variants never drift apart.
Besides master data, SEO and link fields, custom fields can be cleared as well - per language and with a snapshot, so it stays reversible. Deliberately selected individually rather than with a select-all switch.
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.
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.
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.
{number}, {option1}, {parentName}, {group1}, {counter}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.
Delete existing variants but only those without orders. Prevents accidentally discarding active variants.
As soon as a variant has an own value it inherits nothing in that field - which is why fewer properties or no image at all sometimes appear in the storefront. Two buttons add the missing properties, or create own image assignments including the cover image.
Properties that only sit on variants are highlighted in orange, affected groups get a dot and the counter bar states the number. Groups without "display on product detail page" are marked "not in storefront".
When duplicating a variant product, a dialog asks which fields the variants should inherit: images, name, price, weight, EAN. The new master product receives its own correct SEO URL instead of pointing at the original through its main variant.
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.
Predefined column sets for typical use cases - usable immediately, adjustable, saveable as new profile.
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.
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.
For fields normally requiring a UUID (parentId, mainVariantId): UUID, SKU or EAN possible. Lookups are cached - no duplicate hits.
Everything via the Shopware sync API in batches - even 10,000 products in a few minutes. With live counter, phase indicator and ETA.
The CSV modal automatically hides the import tab for non-super-admins. Export permission also granularly controllable.
Everything visible or editable in PIM is controlled via the config matrix - central, with search, with section order via drag-and-drop.
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.
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.
Quick search through all tabs of the config page. Match counter per tab, auto-scroll to first hit, ↑/↓ navigation.
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.
With multiple maintainers, traceability is everything. PIM logs every change with user, timestamp and diff. Granular rights per module, super admin with override.
Every bulk operation, every CSV import batch, every snapshot action lands in the audit log with user, timestamp and before/after values.
Optional: products can be set to "pending" and must be approved before activation - e.g. after bulk import.
Who can do what? Bulk-edit, CSV import/export, AI generation, delete, snapshots, approval - each action separately grantable.
Directly from the audit log: roll back a snapshot. Complete product states before the operation are restored.
PIM is continuously extended with features that emerge from real maintenance workflows.
window.stawPimLastLoadTimings - purely diagnostic, with no effect on operation..001-.999) and additional record types (long text, prices/DATPREIS).max_completion_tokens, retry without temperature), Mistral defensively safeguarded.field.locale; custom fields as cf. columns) or as JSON backup. Import resolves parents via parentPath, with preview, validation and backup.seo_url, no duplicates. Backwards-compatible: existing pattern shops stay unchanged.{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.{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.INSERT … ON DUPLICATE KEY UPDATE - halves the SQL statements.|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.category.path column (indexer backlog), the ancestor chain is reconstructed via parent_id.|trim).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./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.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.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.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.@ini_set) - even very wide column selections with dozens of custom fields generate cleanly.{options} stay the variant's own.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-compatibleWhether 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 Contact