Skip to main content

Jobs, limits and retention

Every change made with Product Studio is a job: sheet saves, bulk actions, price changes, imports, reverts and exports. The History tab lists them with their type, user, status and counts; filter by type or show only your own.

Life of a job​

StatusWhat happens
PreparingThe changes are calculated per product. For an import, the file is read, duplicates are flagged and products are matched.
Waiting for reviewYou see the result and exclude products. Nothing is saved yet. Discarding the review cancels the job.
SavingEach product is read again and saved when its value is still what the review showed. If someone changed it in the meantime, the product is reported as a conflict and left as it is.
Done, done with errors, stopped or discardedThe end states. "Done with errors" means some products failed while saving, for example because of a missing permission.

Exports skip the review and go straight to "running".

Price changes (see Pricing) have three more statuses. "Scheduled" jobs are applied at a date and time by the scheduled task lae_product_studio.pricing_schedule, which runs every 5 minutes. Jobs above the approval thresholds of the configuration are "Waiting for approval". "Rejected" is final, and nothing was changed. The check of the Prices tab is a draft job: it is not listed in the history until it is applied, scheduled or sent for approval.

Jobs of up to 100 products (setting "Run changes of up to this many products immediately") run in the request, for at most 20 seconds; the rest continues in the background. Larger jobs run on the message queue in batches.

If a worker stops in the middle of a job, the job keeps a lease of 5 minutes. A watchdog task (every 5 minutes) continues jobs whose lease expired. Products that were already saved are skipped, so nothing is saved twice. A job that failed can be resumed from its page.

Report​

Every job has a CSV report with one row per product (or per file row for an import): the status, the changes before and after, the error code and the message. The job page lists the same with a search and a status filter.

The report, the messages on the job page and error notifications are in the language of the administration user who opens them. The error codes (INVALID_FIELD_VALUE, CONFLICT, ...) stay the same in every language, for filtering.

Revert​

"Revert changes" creates a new job with before and after swapped, and the same review. A value that was changed after the job is reported as a conflict and kept. Reverting needs the "Revert changes" permission and is possible as long as the job is kept.

Limits​

LimitDefaultSetting
Products per bulk action or export50,000Maximum products per bulk action or export
Import file size50 MBMaximum import file size (MB)
Rows per import100,000Maximum rows per import file
Run immediately100 productsRun changes of up to this many products immediately
Products in the sheet250 per page
"Check quality again" immediately500 productsLarger selections are queued

Retention​

A daily cleanup task removes:

WhatWhen
Uploaded and exported filesAfter 7 days (setting "Keep uploaded and exported files")
Jobs that were reviewed but never appliedAfter 7 days (same setting)
Finished jobs with their items, report and revert dataAfter 90 days (setting "Keep job history")
Unfinished draft jobsAfter 1 day
Checks of the Prices tab that were never applied, scheduled or sent for approvalAfter 2 hours
Price historyAfter 400 days (setting "Keep price history (days)")
Audit events (changes to rules, views and import profiles)After 365 days

Files are stored in Shopware's private file system (files/lae-product-studio/ by default), so they are not publicly reachable.

Before a large change​

Every job can be reverted, but make a database backup before large imports and bulk actions anyway, especially the first time you use a new import profile.