All posts

Compare Shopify Product Versions Before a Revert

Compare Shopify product versions in the revert preview before you confirm a write. The preview shows before and after values for the proposed change, including variant price and compare-at price fields. Use the difference to choose an individual field revert or point-in-time restore. SO: Product History & Revert presents that comparison before it writes the revert to Shopify.

Social card about comparing Shopify product versions before a revert

Open the product history entry you need

History is available per product, and the admin link extension opens it from the product page. Start there when you already know which product needs attention. You can then narrow its records without working through unrelated product activity.

The history page provides four filters:

  • Changed field
  • Change type
  • Date range
  • Free text

For a price edit and an image reorder close together, begin with the changed-field filter to isolate the price record. Use the date range to keep the surrounding activity visible while excluding older entries. Change type and free text give you two more ways to reduce the result when several records remain. The filters identify the entry to inspect; the revert preview supplies the values needed for the decision.

Compare the price before confirming the revert

A changed-field label tells you that a price changed, but it does not tell you whether the proposed replacement is the value you want. Open the revert preview and compare its before and after values. The variant comparison covers price and compare-at price, so those fields remain distinct during the review.

In the worked example, the price should return to its previous value while the compare-at price should remain as it is. Select the individual price field rather than treating both monetary fields as one change. Individual fields can be reverted to a previous value, and the preview shows the comparison before you confirm that operation.

Keep the image reorder out of this price decision. Returning one field to an earlier value does not require a broader restore. The current and proposed price values answer whether to proceed with the field revert; the separate image change must be judged against the scope of the action that could affect it.

Check the point-in-time restore boundary

Point-in-time restore puts a product's own details back to the entry you select. It does not turn every recorded difference near that moment into a write. Read the restore boundary as a scope decision, especially when the history around the chosen entry contains changes to different parts of the product.

Comparison of what point-in-time restore puts back and what it leaves alone

That boundary separates the two changes in the example. The price entry can support an individual field revert after you verify its values. The image reorder remains outside the point-in-time write, so choosing an earlier moment is not a way to return the images to their earlier order.

Use the selected history moment for the product details covered by that action. Handle any excluded area as a separate decision rather than assuming the timestamp expands the restore scope. This keeps the confirmation tied to what the app will write, not every difference visible around the same time.

Rebuild the version at the selected moment

Each captured change is stored as a JSON Patch and appended to the product's activity history. A selected version is therefore reconstructed from recorded state and changes rather than treated as a detached copy. The app can determine the product state at a chosen moment from the checkpoint and change records associated with that history.

Flow from the newest checkpoint through recorded changes to the rebuilt product state

Reconstruction and restore scope answer different questions. The recorded sequence establishes what the product looked like at the moment you chose. The restore boundary determines which parts of that rebuilt state the point-in-time action can write back. For the example, knowing the earlier image order does not place images inside that write.

A restore to a moment older than the plan's retention window is refused. Select an entry that remains inside the retained history before evaluating its preview. The app does not use an out-of-window moment as the source for a point-in-time restore.

Confirm the proposed write

Before a revert writes to Shopify, the app records what it is about to write. Match that proposed state against the preview rather than relying on the history entry's field name. For the price edit, confirm that the previous price is the intended replacement and that the compare-at price is not part of the selected field action.

Revert operations are idempotent, so the same revert cannot be applied twice. That protection prevents duplicate application of one operation; it does not widen the fields or product areas included in the request. If the image reorder still needs attention, another submission of the price revert will not change its scope.

Reverts and snapshots are unlimited on every plan, while the retention window still controls how far back you can select a source moment. Check availability before building a comparison around an older entry. Once the entry is available, use its before and after values and the stated restore boundary to decide which action to confirm.

More posts on the app are on the blog.

Read more posts