View Categories

History and Rolling Back an Import

Free and premium. Import and export history is in both. Rollback is premium only.

The History tab records every import, export and rollback the plugin has run. It is where you check whether a job worked, download a file you produced last week, and undo an import that went wrong.

What a history record holds #

  • Type: import, export or rollback.
  • Module: products, orders, and so on.
  • Status: processing, completed, completed with skips, failed or cancelled.
  • Total records, and how many were processed.
  • Counts for created, updated, skipped and failed.
  • Execution time.
  • The filters and columns the run used.
  • The file name, and a download link for exports.
  • A log, if logging was enabled.

Reading the counts #

The status alone does not tell you the run went well. An import can finish with a completed status and 300 failed rows.

  • Created should roughly match your row count on a first import.
  • Updated should match your row count when you were updating existing records.
  • Skipped matching your row count means the duplicate rule was Skip when you wanted Update.
  • Failed above zero means rows the plugin could not process. Enable logging and re-run a sample to find out why.

Downloads #

Export files stay in the uploads folder and remain downloadable from History until something removes them. Files are served through WordPress with a capability check, not by a public URL, so an order export containing customer addresses is not sitting on a guessable link.

If a record has no download link, the file has gone. Migration, a cleanup routine or a host-side purge will do that. The record survives, the file does not. Re-run the export.

Logs #

Turn on Generate Import Log under Settings and each run records a timestamped line per operation, visible from the record. This tells you which row failed and what the plugin objected to.

Logs make the history table considerably heavier. Turn them on when you are diagnosing something and off again afterwards.

Keeping history under control #

Under Settings, Enable History Auto-Delete trims old records after each run, keeping the newest N. The default is 100. On a store running an hourly import, turn this on or the table grows without limit.

Rolling back an import #

Before an import writes anything, the plugin records the previous state of every record it is about to touch. A rollback replays that journal in reverse: records the import created are deleted, records it updated are restored to their earlier values.

The two modes #

Strict refuses to start unless every affected record is still exactly as the import left it. Nothing has been edited, no stock has moved, no orders have come in against those products. Use it when you want a clean all-or-nothing undo, and use it for an import you are undoing immediately after running it.

Selective starts anyway and skips anything that has changed since the import, restoring the rest. Use it when time has passed and you accept that a few records will stay as they are. Nothing is silently overwritten in either mode.

The preflight check #

A read-only check runs first and classifies every journalled record:

  • Clean. Unchanged since the import, safe to undo.
  • Modified. Changed after the import. Strict refuses, Selective skips it.
  • Blocked. Something depends on it. A customer with orders attached cannot be deleted.
  • Already removed. A record the import created that has since been deleted. Nothing to do.
  • Deleted after import. A record the import updated and someone later deleted. Selective can re-insert it from the stored before-image, Strict will not proceed.

Nothing is touched during preflight. Read the report, then decide which mode to run.

When rollback is not offered #

The button is deliberately withheld unless the plugin can prove the journal is trustworthy:

  • The import must have finished a complete run. One that died halfway through, from a crash or a timeout, may have written journal entries without ever reconciling them, and an unproven journal is treated as no journal.
  • The journal must pass an internal consistency check counting every recorded change against every change made.
  • The import must not already have been rolled back. Each import can be undone once.

Exports are never rollbackable, since they change nothing.

Running it #

Large rollbacks run in the background in batches of 50, so you can close the browser. Progress appears as its own history record, which is why you will see rollback entries in the list alongside imports and exports.

You can cancel a rollback mid-run. Work already undone stays undone and is not re-applied, so a cancelled rollback leaves your data in a partially restored state. Note where it stopped before you cancel.

What rollback does not undo #

  • Product images downloaded during the import stay in the media library.
  • Categories and tags created as a side effect of importing products may remain.
  • Anything you changed by hand after the import is left alone, by design.

Rollback is a good safety net and a poor substitute for a database backup. Take the backup first, every time.

We develop trusted WooCommerce import and export plugins that help store owners, developers, and agencies move products, orders, customers, coupons, and reviews to build successful online businesses.