Green Planet Print: fabric stock locations

Green Planet Print ships fabrics from a different warehouse than wallpaper. Almost every fabric variant was still tied to the wallpaper warehouse, so orders were routed and labels printed from the wrong place. I moved about 39,000 variants safely and added Shopify Flow so the problem does not return.

Shopify · Backend

Results

About 39,000 fabric variants moved to the right warehouse, with Flow to keep them there.

Problem

New fabrics are created by duplicating a product, which sends them to the default warehouse. Orders were assigned to the wrong location and shipping labels were bought for the wrong address. An order's location could not be changed, because the variant was not stocked anywhere else. The scale was over 500 products and tens of thousands of variants in a live store.

Solution

A command-line tool on the Admin API with backup, dry run, pilot, log, resume, verify and restore. Each change is planned from a snapshot, tried on one product with a rollback test, then run in batches with a log and a read-back from the store. Flow workflows now fix new fabrics and furniture the moment they are created or get a new variant.

Key decisions

  1. Chose a tool with backup, pilot and restore over hand edits or one bulk mutation

    Why It is a live store with orders, so there had to be a way back. Restore re-sets stock quantities too, not only the activation.

  2. Chose to keep the tool outside the theme repository

    Why Backups contain order data and do not belong in git.

  3. Chose batches of twenty aliased mutations per request

    Why The mutation handles one item per call, and aliases give a steady pace and an exact log per item.

  4. Chose to call out every deviation from the spec before writing

    Why A strict reading would have skipped almost all the variants, so the change was agreed explicitly.

Have a similar task?

Send a link and a few lines about what you need. I reply within 1 business day with questions or a fixed estimate.

Get a fixed estimate
  • The estimate is the priceHours and total agreed before work starts. No re-estimates.
  • No prepayment on small projectsProjects up to 20 hours usually need none.
  • 30-day warrantyCritical bugs from my work get fixed free, even after that.

My gift: start a Shopify store for €1 for your first month

Open your store through my partner link and try Shopify for yourself. When you need a theme, an app or a migration, I'm one message away.

Claim the €1 month (opens in a new tab)

Affiliate link: I may earn a commission if you sign up. The offer is set by Shopify and may vary by region.