Bulk-edit · 40+ actions with snapshot & revert
The core of PIM: select products or pick a preset, define actions, run - with a snapshot before every operation and restore for emergencies.
Bulk operation workflow
- Click Bulk edit in the product list
- Choose the source: Selection (checked rows) or Preset filter (all hits of a saved preset) - the article count with products and variants is shown
- Pick a tab on the left, activate one or more actions and enter values - actions from several tabs can be combined in one run
- With "Confirmation before applying" (default) an overview of all planned changes appears; deleting and clearing fields always require confirmation
- The operation runs in two phases:
- Snapshot phase: current values are saved
- Write phase: new values are written
- Progress with counter, phase and estimated remaining time - can be cancelled at any time
Actions per tab (overview)
Master data
- Status (active/inactive), top seller, clearance sale, free shipping
- EAN / GTIN: set, prefix, suffix or clear
- Release date (empty = released immediately)
- Listing configuration: show main product or expand variants
- Approval: approve, send back for revision, reset - only with an active approval workflow and for approvers
Assignment
- Manufacturer, essential characteristics (assign or remove template), warranty (from Shopware 6.7.14)
- Add or remove categories and tags
- Assign or remove properties, create new groups and options directly
- Add or remove visibility per sales channel (search & navigation, search only, navigation only)
- Visibility to variants, properties to variants
- Add the tier row from quantity 1
- Assign cross-selling: new group with name, position, type (dynamic product group or product list), sorting, limit and active status - existing groups are kept
Prices & stock
- Price: fixed price, increase %, decrease %, increase €, decrease €, purchase price + % or purchase price + € (products without a purchase price are skipped)
- Pseudo price (strike-through): fixed price, % above selling price, surcharge in € or remove - only set if it is higher than the selling price
- Stock: set, increase or subtract
- Assign a new tax class (gross price stays, net is recalculated)
- Order quantity (minimum and maximum, 0 = unlimited) and purchase steps
- Copy to variants: copy price tiers and cross-selling from the main product
- Tier linking: link, unlink or define tiers
Shipping
- Weight, width, height, length
- Delivery time, restock time
- Pack unit (singular/plural, with language selection)
- Base price (purchase unit + reference unit) and product unit
SEO
- Meta title, meta description and SEO URL as templates with variables, preview of the first three products
- Main category per sales channel
- Canonical variant: first variant, specific variant or remove
Custom fields
- All product custom fields by type, with language selection
Further tabs
For products with variants, the "Assign properties" action with the option "Also assign to main product" additionally writes the options to the parent product. With "Properties to variants" you reset variants to inheritance or copy the properties of the main product.
Including variants
There is no separate "Restrict to filter" switch in bulk edit. Which products are affected follows from the source (selection or preset filter). Whether the variants of the chosen products are changed too is defined by "Include variants by default" in the config matrix (Bulk edit tab). Individual actions such as "Essential characteristics" deliberately write only to the selected articles so that variants keep inheriting from the main product.
Data from the main product to variants
For values that should be identical across all variants:
- Prices & stock tab → "Copy to variants": copy price tiers and cross-selling (including products) from the main product to all variants; existing variant data is overwritten
- Assignment tab: "Visibility to variants" and "Properties to variants"
- Detail view of a main product: "Copy to variants" with a choice of price, pseudo price, purchase price, stock, delivery time, free shipping, weight & dimensions, EAN and active status, plus dedicated buttons for images and properties
Filter display with a preset filter
If you choose a preset as the source, PIM shows its active filters as readable chips - so it is clear which products will actually be affected:
- Visible filters: for example status, stock, with/without variants, manufacturer, categories, dynamic product group, sales channel, tag, tax, delivery time, price and weight
- Readable resolution: IDs are resolved to names (e.g. sales channel name instead of UUID)
- "No filters active" is marked red - a deliberate warning against accidental bulk operations on the whole catalogue
- Article count: products and variants are shown right above
Language selection for translatable fields
In bulk-edit, translatable fields show the "Channels & languages" selection. 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
Visibility to variants
This action transfers the visibility of every selected article to all of its variants - the same work as the button in the master data, only for many articles at once.
It deliberately runs after the visibilities have been written, so a channel assignment added in the same run is included. Errors per article land in the error list of the run as usual.
Binding and releasing tier prices
Tier prices can be bound to the base price or released again for many articles at once. Bound tiers keep their percentage share. They are recalculated automatically only when editing in the master data and in the variant window (setting "Update tier prices automatically"). After a price change via bulk edit, an import or an external system, use the recalculate button.
The "define tiering" mode goes one step further: you choose a price rule and specify the steps, which are then set for all selected articles.
Snapshot & revert
Before every bulk operation a snapshot of the previous state is saved automatically (can be switched off with "Create snapshot before changes"). Snapshots are managed in the config matrix in the Snapshots tab - directly reachable via "Manage snapshots" in the dialog. By default they are kept for 90 days, at most 50 snapshots; both can be adjusted (7 days to 1 year, 10 to 200 snapshots).
Revert options
- Restore snapshot - all products of the run are set back to their previous state
- Show diff - before (snapshot) and current (in the shop) per product and field, with search and "Only products with changes"
- Delete snapshot - individually or all
Confirmation and preview
There is no before/after table per product before running. Instead, confirmation before applying shows an overview of all planned changes. In the SEO tab a preview loads meta title, meta description and SEO URL of the first three products, and the variant generator shows the number and first combinations. The exact comparison is provided afterwards by the snapshot diff view.
Scope: selection or preset
- Selection - the checked listing rows
- Preset filter - all hits of a saved preset, limited by "Max. products via preset filter" (default 500, can also be set to unlimited)
- Variants - included according to "Include variants by default"
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 and settings
- Preset filters load at most 500 products by default (adjustable up to unlimited)
- Batch size (products per API call) and write size per API request control the load
- Snapshot retention: default 90 days and at most 50 snapshots, then automatic clean-up
- All settings are in the config matrix in the Bulk edit tab; who may use bulk edit and individual tabs is controlled by the function switches (see Permissions & superadmin)
Assignment - fix missing property translations on the spot
If a property option is missing in a language, Shopware shows the name from another language through the fallback chain. In the assignment this looks like mixed languages, without the cause being visible. The assignment tab makes it visible and fixable right there.
- Marking: Options without a translation are highlighted and labelled "no translation"; a summary with the count sits at the top.
- Translation dialog: The pencil icon on each option lets you enter the translated name directly - without leaving the Shopware property catalogue. Several languages can be maintained at once, each with its own text field and the associated sales channels for orientation.
- Sales channels are the benchmark: The check runs against the languages of the channels the affected products are actually assigned to - not the admin language, and not all channels of the shop. A sales channel filter takes precedence.
- "Also assign to the master product": The checkbox additionally writes the selected options to the parent product of the affected variants, and removes them there in removal mode. Can be preset permanently via a configuration option.
Clear fields - now including custom fields
The Clear fields tab empties selected fields: master data (manufacturer, delivery time, EAN, manufacturer number, weight, dimensions, release date, top seller flag, pack unit), SEO & marketing (description, meta title, meta description, keywords - for all or selected languages) and relations (all tags, all properties, cross-selling). Besides these, the custom fields of the products can be cleared selectively as well. As custom fields are translatable, the existing language selection applies here too; the values are included in the snapshot before clearing and can be restored. Deliberately without a select-all switch - a shop quickly has dozens of custom fields, and clearing all of them by accident would be far too sweeping.
Copy from default language
In the AI & texts section, the function "Copy from default language" transfers name, description, meta title, meta description and keywords from the default language into the selected target languages. Intended for sales channels with their own language that have no own texts yet: copy first, then maintain in detail or rewrite with AI. By default only empty fields are filled; overwriting can be enabled optionally.
A task-oriented overview is given on bulk edit Shopware products.
AI & texts
This tab appears as soon as ChatGPT, Claude or DeepL is enabled in the config matrix (Texts & translations tab) and additionally released for bulk edit. Mistral and Gemini are not available in bulk edit.
- ChatGPT / Claude: context, fields (product name, description, meta title, meta description, meta keywords), tone, target languages per channel, additional instructions and optionally individual texts per channel & language
- DeepL: translation into the selected target languages
Every product is sent to the API individually - with many products considerable costs can arise at the provider. More in AI text generation.
Generate and delete variants
In the Generate variants tab you create variants for many products at once - like the variant generator in the detail view, with the pattern from the config matrix or an own pattern for this run. Existing combinations are skipped or added to. Generated variants remain even after a snapshot revert.
"Delete variants" removes variants: with the recommended scope "Only without orders" variants with orders are skipped and counted as protected in the preview; "Delete ALL variants" deletes those too. Deleting is irreversible. Details in the variant generator.
Delete products
The Delete tab permanently deletes the selected products; variants and related media assignments are removed as well. It only appears if the "Delete products" function switch allows it and always requires confirmation.
Settings in the config matrix
In the Bulk edit tab: show missing translations, batch size, max. products via preset filter, write size per API request, create snapshot before changes, confirmation before applying, revert automatically on cancel and include variants by default. All tabs of the config matrix are described under Config matrix.
What's next
Continue to the Variant generator to create variants from properties automatically.
Frequently asked questions
How many fields can be changed together?
More than 40 actions in up to ten tabs, from status and prices to stock, shipping and SEO, categories, properties and custom fields. Several actions can be combined in one run.
Can I undo a bulk edit?
Yes. Before every bulk edit a snapshot is created, which restores the previous state in the Snapshots tab of the config matrix. Exceptions are generated and deleted variants and deleted products.
Are variants changed automatically?
That is defined by the setting "Include variants by default" in the config matrix. There is no separate "Restrict to filter" switch.
Do I see the progress for large batches?
Yes, with a counter, phase display, estimated remaining time and a cancel button.