How StoreVault works
Last updated 25 August 2026
StoreVault keeps versioned copies of your store and puts them back when something goes wrong. Nothing is ever written to your store without a plan you approve first, and a restore that overwrote records can be rolled back: we keep what it overwrote. A restore that only recreated missing records has nothing to undo, because undoing never deletes records from your store.
After you install
The first backup starts by itself. On a small store it finishes in a few minutes; a large catalogue takes longer.
The Status screen fills in as it goes: how many records of each type are stored, when each type was last captured, and how it is kept current. Products, collections, orders and customers arrive in real time; pages and articles within 15 minutes; themes daily; menus and redirects on the weekly comparison.
Nothing is required from you. There is no account to create and no setup to complete.
Put one record back
The most common repair: one product, page or collection was edited by mistake.
1. Find the record
Open Snapshots, pick the type, and search by title or ID.
Click the record to see its history: every stored version with the date it was captured and where it came from.
2. Pick the version you want back
The top row is the newest capture, marked Latest capture. Your store normally matches it already, so restoring THAT one has nothing to write. To undo a change, take the version from BEFORE the change: the row under it.
Use View to read a stored version, and Compare with previous to see exactly what changed between two of them.
When you have found the good one, press Restore this version.
Restoring the newest version makes sense in one case only: you changed something in Shopify just now and the backup has not captured it yet.
3. If the record is deleted
A deleted record keeps its history: open it from Snapshots the same way. The newest row will say Deleted, and it has no actions of its own - there is nothing to look at and nothing to put back in a tombstone.
Restore the version from before the deletion instead. It comes back as a NEW record with a new ID: Shopify does not let anything outside itself reuse the ID of a deleted record, so links, apps and reports that pointed at the old one will not follow.
4. Approve the plan
Press Build plan for this record. Nothing is written yet: the plan says what would change, record by record.
Press Apply restore. The result counts what happened to every record it touched, and names the ones you should look at yourself.
Put the store back to a moment in time
Use this after a bad import or a bulk edit, when many records changed at once. It puts damaged records back; it does not remove records the import added, so delete those yourself.
1. Choose what and when
Open Restore. Tick the types you want. An empty selection is not a plan for everything: tick at least one.
Set the date, and set the time too. Dates and times are UTC. This matters: with today's date and an empty time you get the latest stored copy, which already contains the mistake you made today, and the plan would correctly report that nothing differs. With an earlier date, an empty time means the end of that day.
The minute you enter is included in full, so pick a minute or two before the change you want to undo.
Leave both empty to compare against the latest stored version of each record.
2. Read the plan
The table shows, per type, how many records are in the backup, how many already match your store, how many would change, and how many are missing and would be recreated.
Nothing has been written at this point. If the numbers are not what you expected, change the moment and build the plan again.
A restore puts stored records back; it never deletes records. Anything created after the moment you picked stays in your store, so a bad import is undone by restoring the records it damaged, not by removing what it added.
3. Apply it
Press Apply restore. Progress is shown while it runs, and the result lists what was written.
A record that no longer exists in your store comes back as a NEW record with a new ID where we can create it again. Links, apps and reports that pointed at the old ID will not find it, and the result says so per record.
Undo a restore
Before overwriting anything, StoreVault saves the state of every record it is about to write. That is what Undo this restore uses.
The button appears on the restore once it has finished. You get a plan first, as always, and applying it returns every record we overwrote to the state it was in before that restore.
Two things stay as they are. Stock levels: the rollback does not include them, and each level in the result says what it was and what it was set to, so you can put those numbers back yourself. Records we recreated: they came back under a new ID, and undoing a restore never deletes records from your store.
Proof that the backup works
A restore drill re-reads stored copies, decrypts them, re-checks their checksums, and compares a sample against your live store. Nothing is written to your store during a drill. On a large store each drill reads a different sample, so the whole backup is covered over time, and the receipt says how much that run checked.
The receipt is emailed to your store contact address in Shopify whether it passed or not, and every receipt is kept on the Drills screen.
Free plans run a drill monthly, paid plans weekly.
Take your data out
Settings, Export your backup. JSONL contains the complete stored record; CSV is a flat summary for spreadsheets and collapses nested data such as variants or line items.
An export holds the LATEST stored copy of each record, not its history. Older versions stay in the app and are not part of the file, so an export taken before erasing keeps your current data but not the versions behind it.
Export is available on every plan, including Free, and covers orders and customers as well.
Export files are encrypted at rest and deleted after 7 days. A file built for a customer data request lives 30 days, matching the window Shopify gives you to answer it. Create a new export any time.
Themes
Themes are backed up and versioned. From a theme's record in Snapshots you can export a copy of that version's files as a .zip.
A restore also writes theme files back into the theme they came from. Permission to edit themes is separate from the rest of the app: we ask for it on the Restore screen, and until you grant it StoreVault only reads your themes.
StoreVault never creates a theme and never publishes one - that is Shopify's rule for apps and our own preference. If the theme itself was deleted, upload the .zip yourself in Online Store, Themes, Add theme, Upload zip file.
What restore does not cover
Orders and customers are backed up, compared and exportable, but they are never restored in place. Shopify can only create a new order, not bring the original back, so we do not call that a restore.
That is why their version history has no Restore this version link, and why the record page says so above the table: the button is missing on purpose, not by accident. Use Settings, Create export to get the data out.
Blogs, articles, menus and URL redirects are backed up, searchable and exportable, but they are not written back to your store yet.
Product images and other media, and which products sit in a manual collection, are not restored.
Inventory levels are captured up to four times a day and restorable on paid plans, physical count only, always after a plan that lists every location with its before and after. On Free they are not captured at all, so there is nothing to restore later.
Plans and limits
Your plan sets two things: how many products are covered, and how far back the version history goes. The number of orders is not one of them - a store with thousands of orders and a small catalogue pays the same as a small store with the same catalogue.
Going over your plan does not touch anything already stored. New snapshots pause after a grace period, and restoring stays available the whole time. A backup that asks for money during an emergency is not a backup.
Access to what is already backed up never depends on your plan.
Erasing your data
Settings, Erase everything sends a confirmation link to your store contact address in Shopify. The link opens a screen inside the app that asks you to confirm; nothing is erased until you press the button there. Confirming destroys the encryption key for your store, which makes every stored snapshot permanently unreadable, and removes the records.
This cannot be undone, by us or by anyone else. Export first if you want a copy.
Erasing also stops the backup for good: nothing more is captured, and the app keeps saying so. To start over with a clean slate, remove the app and install it again.
One detail about our own disaster recovery: encrypted key-escrow copies of encryption keys expire within 7 days, cannot be decrypted on our servers, and keys of erased stores are excluded from any restore we perform.
To erase the data of a single customer instead, use the customer privacy request in your Shopify admin: it is narrower and leaves the rest of your backup alone.
Uninstalling is different: your backup survives about four weeks first, because apps get uninstalled by accident. Shopify confirms an uninstall 48 hours after it happens, and the 25-day countdown starts from that confirmation.
Still stuck
Write to support@storevault.app with your store domain and, if it is about a restore, its number from the Restore screen. We answer every message.