Save the previous SKU when a variant SKU changes
When a variant's SKU changes, store the old SKU in the variant metafield custom.previous_sku. Warehouses, marketplaces and ERPs that still know the old SKU can be mapped to the new one. Shopify keeps no SKU history and its own Product updated trigger cannot watch the SKU at all.
When a variant's SKU changes, store the old SKU in the variant metafield custom.previous_sku. Warehouses, marketplaces and ERPs that still know the old SKU can be mapped to the new one. Shopify keeps no SKU history and its own Product updated trigger cannot watch the SKU at all.
One trigger, built-in Shopify actions only, no other app needed. Nothing in it is specific to a store, so it works as soon as it is imported.

What it needs
- The app's permission Product, Variant & Collection Data Access. See Permissions and data access.
- Nothing else: turning the workflow on switches the trigger Product Variant SKU Changed on in the app.
Install the Workflow Trigger Extensions app and grant Product, Variant & Collection Data Access on its Permissions page. Turning this workflow on switches the trigger on in the app.
Get the workflow
- Download the
.flowfile attached at the bottom of this page. - In your Shopify admin open Flow, click Import and choose the file.
- Check the steps, then click Turn on workflow.
The file is an export from Shopify Flow itself. Do not edit it by hand; change the workflow in Flow after importing it.
How it works
- Product Variant SKU Changed carries
skuChangewitholdSkuandnewSku. - The Condition continues when
skuChange.oldSkuis not empty, so a variant that gets its first SKU is skipped. - Update product variant metafield writes
{{ skuChange.oldSku }}tocustom.previous_sku(single line text).
Make it yours
- Create a metafield definition for
custom.previous_skuunder Settings > Custom data > Variants to see it in the variant editor. - Add Send internal email with the old and the new SKU for your warehouse team.
Next steps
- Product variant triggers, step by step - every field this trigger sends, with more examples.
- Workflow templates - all templates.
- Event history and troubleshooting - check that the trigger fired.
