Guide · Dry run
The dry run
Every import can be run twice: once as a dry run that writes nothing, then for real. The dry run is not a simulation of the importer — it is the importer, with the writes intercepted. That distinction is the reason its answer is worth anything.
What it catches that a file check cannot
The Check file step before it reads only the file: how many rows, how many items, which column names are recognised. Useful, but it never contacts your store. A dry run does, so it catches the things that depend on what is actually in the store:
- A row that matches nothing. "No product matches SKU CC3C-XX" — a typo in an identifier, or a product someone deleted since you built the file.
- A row that matches too much. An identifier that finds several products fails naming the ids, rather than editing whichever came back first.
- A category path or name that does not exist, and a category name that is not unique — with the clashing paths named.
- Values BigCommerce would reject: an unknown product sort, a page type that is not writable, a redirect type missing its entity id, a date in the wrong format.
- Rows that would email your customers. A customer row asking for a password reset says so out loud.
How to read the result
A dry run appears in History like any other run. Its per-row results are phrased in the conditional — "Dry run — would: …", and each action reads would create, would update, would delete — so a dry run can never be mistaken for a real one when you come back to it later. The results CSV downloads the same way.
Rows that would have been created do not have ids yet, so anything referring to "the record this run would create" says exactly that rather than printing a meaningless number. A child category whose parent only exists in the same file reads "under a category this run would create".
It covers every type
Products, categories, pages, blog posts, redirects, brands, customers and customer groups all honour the flag, and so do the bulk edit and the per-product editors — their Preview button is this same dry run.
When to use it
- Always, before a file containing DELETE or REPLACE.
- Always, on the first run of a file you did not produce yourself.
- Before any bulk edit with nothing ticked, since that covers every page the filter matches.
- After editing an exported file, to confirm your changes match rows the way you expect.
What it costs
A dry run reads from your store and changes nothing, so the only cost is API calls. It does not use a second one of your plan's daily imports either — but it does not save you one:
- An uploaded file counts once, when you upload it. The daily limit is checked at upload, before you have chosen dry run or real, so previewing a file and then running it for real together use one import — and previewing it and not running it still used that one.
- A bulk edit preview is free. There the limit is only checked when you Apply, so you can preview as often as you like.