Restore a Deleted Shopify Product from History
When Shopify deletes a tracked product, SO Product History & Revert keeps the deleted snapshot as an audit record and offers a Restore action. The restore recreates the last recorded state as a draft. Publishing to sales channels is optional and off by default.
Find the deletion and Restore action
Open the deleted record in product history and choose Restore. The products/delete event archives the snapshot instead of discarding it, so the deletion line remains available after recovery. For a product that still exists, you can open its history per product or use the same history entry in the product action menu in Shopify admin.
Recovery does not remove the archived deletion from the audit trail. The restore receives its own record under the staff member who triggered it, resolved from the staff identity attached to the online access token. The log therefore retains the deletion while recording who started the recovery.
Review the exact fields before publishing
Deleted-product recovery uses the last recorded state rather than a blank product. Its scope reaches the main product record, variant configuration, inventory details and the associated data captured before deletion:
- Product fields: title, description, handle, vendor, product type, template, tags, SEO and status.
- Options and variants: price, compare-at price, SKU, barcode, tax settings, inventory policy, unit pricing, weight, unit cost, harmonized system code, country and province of origin, and stock per location.
- Associated data: product and variant metafields, images with alt text, each variant's own image, collections and the product category.
The archived status belongs to the recorded state, but the recreated product still begins as a draft. Check its options, variants, metafields, images, collection memberships, category and stock per location before you publish. That review keeps the decision about sales-channel availability separate from the recovery of product data.
Check the source used for deleted images
Shopify deletes a product's media with the product. Deleted-image recovery therefore needs a source outside the removed Shopify product; the sequence below shows which source is used at each point.

A restore can finish with warnings for an image whose bytes are no longer held, a collection or location deleted since capture, or a state captured from a webhook rather than a full read; those warnings do not fail the restore.
Keep the recreated product in draft
A deleted-product restore always creates a draft, including when the last recorded status was active. Publishing remains a separate opt-in choice, and that option starts off. Leaving it off does not reduce the fields rebuilt from the recorded state.
Use the draft to inspect the recreated product before choosing its sales channels. Compare variant prices, SKUs, images, metafields and collections with the archived record, then publish only after the product is ready to return. You control that publication decision independently of Restore.
Stock restoration has an additional boundary. The app reads stock with read_inventory and confirms a location with read_locations before writing stock back. A location that has been deleted since capture is reported through the restore warnings instead of causing the full recovery to fail.
Separate restored data from records that stay behind
Recovery recreates product data; it cannot transfer every record connected to the deleted Shopify product. The comparison below identifies the identity, commerce records and product structures that remain outside the replacement.

A product that was never tracked has no recorded state to restore. The same gap applies when a shop reaches its tracked-product cap: new products receive no history, and the app warns about the condition on the home page and in Billing. If Shopify deletes one of those untracked products, no archived snapshot exists for recovery.
Use each archived deletion once
After a successful recovery, the archived record is marked as restored. A second click on that deletion cannot create another copy of the product. If you later delete the recreated product, the new deletion becomes restorable again because it is a separate deletion event.
Reverts and snapshots are unlimited on every plan. Plans differ only in the number of products tracked and the length of retained history, so recovery still depends on the product having been tracked when its deletion occurred and that record remaining inside the applicable history window.
More posts on the app are on the blog.