
A WooCommerce to Shopify migration looks like a weekend job on paper. Export a CSV, import a CSV, point the domain at Shopify.
The export is the easy part. The work is in everything WordPress was quietly doing for you: product add-ons, years of old links, the delivery rules a plugin handled.
In 2022 we moved Jenna Rae Cakes, a Winnipeg bakery, from WordPress and WooCommerce to Shopify in 74 days, and I'll use their real numbers as we go.
Shopify's own guide to migrating from WooCommerce lists four kinds of data you might move: products, customers, historical orders and reviews.
Shopify imports products from a CSV, but the guide says you need to edit the WooCommerce export first. Shopify's first-party Store Migration app skips the editing. It's in early access, though, and only available for certain stores.
The bigger catch is options. A Shopify product can have up to three options and 2,048 variants, and a WooCommerce product with more than three options won't have its options imported. Past those limits, Shopify points you to an app or to theme code that collects line item properties.
Customers can come in through a customer CSV, again after you edit the WooCommerce export. Passwords stay behind. Shopify can't migrate customer passwords from another store by CSV, so after the import you invite customers to create new ones. Decide how you'll tell them before launch day.
Shopify's migration overview only lists the CSV route for products and customers. For order history, blog posts and pages, it points to migration apps or Shopify's APIs. WooCommerce reviews can't be exported to Shopify directly, so they come in through a third-party app. A short policy page is faster to copy and paste.
Three options is plenty for a t-shirt. It isn't close for a custom cake.
Custom cakes are the most complicated thing Jenna Rae Cakes sells, and every option on their WooCommerce builder had to keep working on Shopify. That meant mapping 45 products against 16 option and rule columns. The builder now runs on Bold Product Options, extended with our own code, and follow-up options nest under the choice that opens them, up to three levels deep.
A migration is also your best shot at cleaning up the catalog. On the old site, anything sold for both pickup and shipping existed as two products, so every change meant editing both. We merged them into one listing per product, with each product's rules stored in its data instead of in a second copy. On the data side, 24 WooCommerce fields came across, plus 8 new fields for sizing, flavours, tastings, care instructions, prep times and more.
Shopify has its own link structure, with products under /products/ and blog posts under /blogs/. Your WordPress links almost certainly won't match, and Shopify warns that old links to specific pages likely won't load for customers.
The fix is URL redirects. In the Shopify admin, go to Content > Menus and click View URL Redirects. Add them one at a time or import a CSV, using Shopify's sample file as a template. The cap is 100,000 redirects, or 20,000,000 on the Plus plan.
One catch: Shopify only redirects broken URLs. If the old address still loads a page on the new store, the redirect won't fire, so test them again after the domain moves.
For Jenna Rae Cakes, we redirected 694 old WordPress links before the switch: 400 image links, 167 blog links, 68 product links and 59 page links. Image links were the biggest group by far, so don't leave them off your list.
We moved 155 published blog posts, going back to March 2016, with their original dates, so the new store opened with six years of recipes, launches and news. We also moved 350+ images from WordPress.
On your own move, keep the original publish dates, so a 2016 recipe still reads as one. And move the images inside your posts: they usually load from your WordPress site and will break once the domain points at Shopify.
Delivery logic isn't on Shopify's list of data to migrate. In its WooCommerce guide, shipping is a setup step after the imports. Out of the box, Shopify lets customers pick up online orders at your retail locations, and local delivery can cover a set distance or certain postal codes.
Jenna Rae Cakes' cart had to do a lot more. The old site was two shops in one: customers picked a shop for pickup and delivery, or a separate one for shipping, before they could browse. Their January 2022 brief put it plainly: "Combine 'local pick up + delivery' and 'shipping' into one intuitive shop and cart."
Now customers shop one catalog and choose how to get their order in the cart, and the cart knows each product's rules:
Pickup, delivery and the shipping date picker run on Zapiet, and we wrote our own code for the rules the apps don't cover, like the midnight refresh and the checkout checks.
So write every rule down before you shop for apps: prep times, blackout dates, which products can ship, what checkout has to collect. If nobody wrote a rule down, it won't make it to the new store.
Ours took 74 days from signed contract to live store.
Two habits worth stealing. Do the full export early, since you can't plan a move until you know what's in the old store. And test like a customer: Shopify's guide includes placing test orders, and I'd run one through every delivery method you offer.
Jenna Rae Cakes went live three weeks before Mother's Day. I wouldn't cut it much closer for any store with a peak. Staff need time on the new admin, and you want real orders running through the new cart well before the rush.
Jenna Rae Cakes has run on the Shopify store we launched on April 18, 2022 ever since. Klaviyo email, Okendo reviews, a private order calendar app for staff, courier delivery, wholesale log-ins and photo templates have all gone into that same store.
That was the point of the move: a platform the business can keep adding to. It's how we run a Shopify website redesign, too. We map the business before anything moves, and we stay to build on it after.
Big catalog, years of content, rules nobody wrote down: on a free call, we'll look at what you've got and tell you straight what moving it takes. You'll talk to a developer, not a sales rep. Book a free discovery call.