# What a change record holds, and when undo puts it back | BYOM blog

URL: https://byom.co/blog/every-change-leaves-a-receipt  
Markdown: https://byom.co/blog/every-change-leaves-a-receipt.md  
Last updated: 2026-10-02

> What Shopify records about changes and what it leaves out, how bulk edits and CSV imports overwrite data, what version control from software offers, and when a wrong price binds you.

By Kina (Checked by the BYOM team). Published 2026-09-15. 9 minute read. Series: In control.

## Key takeaways

- Shopify records order history well, but keeps no version history for product fields, so the old value of an edited title or description is not stored.
- A CSV import with a blank cell overwrites the existing value with blank, and an undo in a bulk editing app overwrites any edit made since.
- Under Citizens Advice's reading of UK law, once a contract exists a seller usually cannot cancel an order because the price was wrong.

Putting something back needs two things: knowing what was there before, and a route to restore it. A record of a change is only useful when it holds the first, and an undo is only possible when the first was kept. Shopify keeps both for some parts of a store and neither for others, and the difference is wider than most merchants expect.

This post maps where Shopify keeps a record, where it does not, how the common ways of making a large change behave when you try to reverse them, and what a rule of UK consumer law means for a price that was wrong for a few hours.

## What Shopify records on its own

Start with what exists. The order timeline holds a detailed history of each order, and the same feature covers draft orders, customers and transfers. Staff can add internal notes and comments to it, and comments can be edited for 5 minutes after they are posted. The store activity log records recent actions by the owner or a user, with the name of the person, app or channel behind each, and it displays at most 250 results.

What neither does is hold the previous value of a field. A reply in a Shopify community thread on reverting an accidental product description edit spells out the consequence: Shopify keeps no version history for product fields, so the old description is gone from the admin the moment the new one is stored. Before saving, Ctrl+Z works inside the editor. After saving, the thread's consensus is that you may not be able to revert.

A guide from Craftshift, a Shopify Partner development company, lists what Shopify does and does not save. Treat it as a partner's summary rather than Shopify's own statement, though it matches the community thread on product edits. It says Shopify saves theme version history, up to 20 recent versions, and orders, which are immutable once placed. It says Shopify does not save product edits, deleted products (it says there is no trash), content files, metafield values, collection membership rules, blog posts and pages, or bulk deleted customer records.

| Part of the store | Does Shopify keep history? | Source |
| --- | --- | --- |
| Orders | Yes, timeline and immutable once placed | Shopify Help Center, Craftshift guide |
| Store actions | Recent only, 250 results, view only | Shopify Help Center |
| Theme | Version history, up to 20 recent versions | Craftshift guide |
| Product fields | No version history | Shopify Community, Craftshift guide |
| Deleted products | No trash, per the guide | Craftshift guide |
| Metafield values | No history | Craftshift guide |

## How a bad bulk edit goes wrong

Shopify's bulk editor works like a spreadsheet inside the admin. You change cells in a table and click Save. The help page does not describe an undo, and it notes that the more information you try to change at once, the longer the changes take. It also warns that editing in bulk with Microsoft Edge can cause errors because of a limited URL length. The one safeguard in the design is that changes do not save automatically. Until you click Save, the old values are still there.

The CSV import is where a lot of silent damage happens, because its rules are specific. When you choose to overwrite products with matching handles, values in the file replace the matching columns in the existing products. Shopify's help page then lists three behaviours that surprise people.

- If a non required column in the file is blank, the matching value in the product list is overwritten as blank. Shopify's own example is a vendor name that becomes empty.
- If a non required column is left out of the file but exists in the product list, the existing value stays as it was.
- If a column in the file depends on other columns that are not in the file, existing data is deleted or removed. Shopify's example is including a SKU column without the Option1 name and value columns, which removes variant options.

The export page adds a warning that goes with it. Sorting a CSV in a spreadsheet program can cause product variants or image URLs to become disassociated, and re importing that file risks overwriting existing products with corrupted data. The export holds titles, descriptions, variants, pricing and inventory, but the images associated with each product are not included in the CSV file. If any single product has more than 100 variants, Shopify emails you the file instead of downloading it.

The sensible practice follows from the rules. Export the products you are about to change and keep that file untouched as the before snapshot. Make the change on a copy. After the import, compare a sample against the snapshot. The snapshot is your record of a change that Shopify does not keep.

> **The difference between a snapshot and a change record.** A snapshot says what the store looked like at one time. A change record says what changed, who changed it, and what it was before. You can build the second from two snapshots, but only if you have both.

## Version control, explained for a shop

Software developers solved this problem decades ago, and their answer is worth borrowing. The Git documentation defines version control as a system that records changes to a file or set of files over time so that you can recall specific versions later. It lists what that gives you: you can revert selected files or a whole project to a previous state, compare changes over time, see who last modified something that might be causing a problem, and identify who introduced an issue and when. The documentation says that if you break things or lose files, you can generally recover easily, with very little overhead. It also notes that the same approach works for nearly any type of file, including graphic designs and web layouts.

Look at how a Shopify store scores against that list. Reverting to a previous state is not available for product fields. Comparing changes over time is not available either. Seeing who modified something is partly there, through the activity log, within its 250 result limit. Identifying when an issue began is possible for orders and theme code and hard for product data.

Shopify acknowledges the theme side of this. On its theme management page, for custom theme development, it recommends considering GitHub version control to track and manage changes. The product catalogue has no equivalent built in, so the history has to come from outside.

A good change record is a single entry in such a history, written for a shop rather than a developer. It records what changed, who decided, when, and the value before. With those four, a person can reverse the change by hand even if no tool offers an undo button.

## Backup apps, and what restoring really does

A category of Shopify apps exists to fill the gap. They take scheduled copies of products and other store data, and some also offer to undo a specific edit. Two limits are worth knowing before you rely on one. The first is retention. The help page of a bulk editing app, Ablestar, says edit retention periods vary by plan, typically ranging from 30 to 180 days. An undo that depends on that history stops working when the record ages out.

The second is what an undo overwrites. The same page says that when you undo an edit, the value of the entire field gets set back to what it had before the edit, and that if the field was modified between the edit and the undo, those changes will be overwritten. A restore from a daily backup behaves the same way, because it brings back the state as of its snapshot. If a colleague corrected a typo this afternoon and you restore last night's copy, the typo returns.

Restoring is therefore a decision with its own risk. Check what has changed since the snapshot before you restore, and restore the one field or product that is wrong, not the whole catalogue.

- **20** recent theme versions Shopify saves, according to a Shopify Partner's guide (Craftshift, Shopify backup guide, 2026)
- **30 to 180 days** how long one bulk editing app keeps edits for undo, by plan (Ablestar support, 2026)
- **100** variants on one product above which Shopify emails the CSV export (Shopify Help Center, exporting products, 2026)

## When a wrong price reaches customers

The most expensive silent edit is a price. Citizens Advice, the UK charity that advises consumers, explains what a shop can do when a price was wrong. If you take an item to a till and are told the label is a mistake, you do not have a right to buy it at the lower price. Online it depends on whether a contract exists, and that depends on the seller's terms and conditions. Citizens Advice says you will have a contract either once you have paid or once the company has sent the item.

Once a contract exists, Citizens Advice says the company usually cannot cancel the order, even if it realises it sold at the wrong price. Its page notes an exception where the mistake was genuinely unintentional and should have been obvious to the buyer. If the contract has not formed, the retailer has more room, and may cancel when it finds the error before fulfilling the order. If you paid more than the advertised price, you can ask for the difference back, and the advice to a buyer is to keep evidence of the advertised price.

For a merchant the lesson is about timing and terms. Your terms and conditions decide when a contract forms. A price that is wrong for four hours on a busy day may generate orders you are bound to fulfil. The record that helps you here is the one that shows when the price changed, to what, and from what. Shopify does not hold that record for you.

Time matters as much as content. The activity log keeps a rolling window, an app's undo keeps a plan dependent number of days, and a sale becomes a contract at the point your terms set. A record kept in your own files has none of those limits, which is the reason to want a copy of your own.

## What a useful record holds

Pulling the threads together, a record that supports an undo and answers a reviewer holds a short list of facts, and each exists because something above would otherwise be missing.

- The old value and the new value, per item. Without the old value no undo is possible by any tool.
- The person who approved it and the time. This is the part the activity log gives only for a short span.
- What the store answered. A change attempted is not a change made, and batch edits can land in part.
- Whether the change can be reversed, and for how long, so nobody discovers a retention limit during a crisis.
- A way to find it later, such as a short reference, so a team can match a customer complaint to a change.

Batch changes need particular care. A bulk edit of 200 products is 200 separate writes, and a failure in the middle can leave some updated and some not. Shopify's bulk editor reports errors when invalid data blocks a save, for example missing SKUs or metafield validation errors, and asks you to fix them and save again. A record that logs a batch as one line, done or not done, hides that. One line per product shows which ones landed, which makes a partial undo possible.

A small store can start with a spreadsheet. Give it columns for date, product, field, old value, new value, who approved it and what Shopify showed afterwards. It is tedious, and it is also the structure every audit trail uses. Software that writes the same columns for you is saving typing, not inventing a new idea.

## Where BYOM fits

In the BYOM Shopify app, a product change can be undone. The undo is a proposal that puts back exactly what was there before, and you confirm it like any other change. If only some products in a change landed, undo restores only those. In the BYOM app, undo covers supported write types for 24 hours after the change.

The product page: [See receipts](https://byom.co/receipts).

## Sources

- [Shopify Help Center, timeline, 2026](https://help.shopify.com/en/manual/shopify-admin/timeline)
- [Shopify Help Center, activity logs in the Shopify admin, 2026](https://help.shopify.com/en/manual/shopify-admin/activity-logs)
- [Shopify Community, can I revert an accidental product description edit, 2026](https://community.shopify.com/t/can-i-revert-an-accidental-product-description-edit/58646)
- [Craftshift, Shopify backup complete guide, 2026](https://craftshift.com/shopify-backup-complete-guide/)
- [Shopify Help Center, bulk editing, 2026](https://help.shopify.com/en/manual/shopify-admin/productivity-tools/bulk-editing)
- [Shopify Help Center, importing products with a CSV file, 2026](https://help.shopify.com/en/manual/products/import-export/using-csv)
- [Shopify Help Center, exporting products to CSV, 2026](https://help.shopify.com/en/manual/products/import-export/export-products)
- [Git documentation, about version control, 2026](https://git-scm.com/book/en/v2/Getting-Started-About-Version-Control)
- [Shopify Help Center, managing themes, 2026](https://help.shopify.com/en/manual/online-store/themes/managing-themes)
- [Ablestar support, undoing a product edit, 2026](https://support.ablestar.com/article/39-undoing-a-product-edit)
- [Citizens Advice, if something is advertised at the wrong price, 2026](https://www.citizensadvice.org.uk/consumer/somethings-gone-wrong-with-a-purchase/if-something-is-advertised-at-the-wrong-price/)
