Bulk-edit · 25+ fields with snapshot & revert
The core of PIM: set filter, select all, change fields — with snapshot before every operation and one-click revert for emergencies.
Bulk operation workflow
- Select products in the listing
- Click Bulk-edit in the footer toolbar
- In the dialog: pick target fields, enter new values (multiple actions combinable)
- Live preview shows the result per product
- Confirm — operation runs in two phases:
- Snapshot phase: current values are saved
- Apply phase: new values are written
- Live progress with counter, phase, ETA — cancellable any time
Editable fields (overview)
Master data
- Name, description, meta title, meta description, keywords (per language)
- Active status, manufacturer, EAN, SKU, tax rate, delivery time
- Product unit (piece, litre, kilogramm, …) — dedicated bulk action
Prices and base price
- List price and RRP, tier prices
- Purchase price gross + net as two separate actions — the other value is automatically calculated via the product's tax class. Existing currency and linked status are preserved
- List price/RRP, lowest 30-day price (Omnibus)
- Re-assign tax class (gross price stays, net is recalculated)
- Base price (dedicated bulk action): content quantity + base unit
Stock and shipping
- Stock, delivery time, free shipping flag
- Weight, height, width, length
Sales channels and categories
- Sales channel visibility, main category per channel, additional categories, cross-selling
Properties and custom fields
- Properties (assign/remove), custom fields, tags
Action "Limit to filter"
When you filter by a variant field and bulk-edit, you usually only want to touch the filter-matching variants. The "Limit to filter" toggle makes the bulk action follow the filter exactly — the parent stays untouched.
Data inheritance parent → variants
A dedicated bulk action transfers fields from the parent to all variants:
- Take over description and meta texts
- Apply tier prices to all variants
- Transfer cross-selling streams
- Pass images and media gallery
- SEO fields (title, description, keywords)
Complete filter display before the operation
Before every bulk-edit, the PIM shows all active filters from the selected preset as readable chips — making it crystal clear which products will actually be touched:
- Visible filters: manufacturer, categories, tags, properties, stock, price range, weight range, date ranges (created/modified/release), visibility, tax class, delivery time, dynamic product groups, sales channel, EAN status, closeout, free shipping, SEO meta status
- Readable resolution: IDs are resolved to clear names (e.g. sales channel name instead of UUID)
- "With variants" appears as its own chip — you immediately know whether variants will be included
- "No filters active" is marked with red background and red border — an intentional warning against accidental bulk operations on the entire catalogue
Language selection for translatable fields
In bulk-edit, a language dropdown appears for translatable fields as soon as a value is entered. The value is set in the default language and additionally written to every selected language — one action, multiple languages simultaneously.
Fields with language selection
- SEO tab: meta title, meta description, SEO URL
- Custom fields: all custom fields marked as translatable in Shopware
- Shipping tab: packaging unit (singular/plural) — the only translatable shipping field
Fields deliberately without language selection
- Product unit / unit of measure (
unitId): only a reference to a unit (piece, litre, kg). The translation lives on the unit itself, not on the product - Language-independent fields: price, stock, EAN, weight, manufacturer, active status, dimensions, delivery time — these exist only once per product
Snapshot & revert
Before every bulk operation a snapshot of the previous state is saved automatically. Snapshots are kept for 30 days, viewable under PIM → Snapshots.
Revert options
- Full operation revert — all products back to previous state
- Per-product revert — only single products
- Diff view — before/after per field per product
Live preview before saving
Before confirmation, a table shows per product: current value, new value, diff marker for text fields and notes for non-editable fields.
Scope: selection or preset
- From current selection — selected listing rows
- From preset — all filter-matching products
- With/without variants
- Variants only with filter restriction
Validation modal with scroll-to-section
Save with empty required fields: 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.
Limits
- No hard maximum — tested with 10,000 products in one operation
- Snapshot retention: 30 days, then automatically deleted
- Editable fields are controlled by the config matrix