The Best Things About Migrating to Shopify

I previously wrote about some surprises migrating multiple Xero Shoes WooCommerce sites over to Shopify.

That post focused on the myths about Shopify and how some things that work really well in WooCommerce don’t quite translate to Shopify.

This post looks at the flipside: the expected changes that turned out to be enormous wins for Xero Shoes. 💪

From server reliability and instant reporting to a fast, usable admin, Shopify removed whole categories of work that used to consume developer, marketing, and customer service attention. 👇

The Benefits of Shopify

Benefit #1: Forget About Server Performance

If you're a developer you might be familiar with the anxiety right before a large launch or sale. If you didn't write the code correctly the site could crash when thousands of customers arrive at the same time.

Our developer team used to share HOLD gifs when we were on WooCommerce. Yes we handled large sales that had back-to-back million dollar days all handled in WooCommerce. So WooCommerce can do this… but that doesn't mean it's easy. Or without stress.

To ensure server reliability we had to be painfully specific with Marketing. We'd ask in advance (and repeatedly) how many emails they were sending, when they were sending them, and how long we can spread out the delivery to reduce the load on our server.

A detailed list of emails for a marketing campaign

With Shopify, this 👆 is work we no longer have to do. 🎉

That's the best case outcome for a platform migration. As an engineer I shouldn’t care when the emails go out. Send 1 email or send 500. It should make no difference on my day to day.

Not having to worry about server performance certainly relieves stress. It also unlocks the ability to forecast email effectiveness. Within 2 hours of an email going out we have enough signal to estimate the daily traffic. 

We actually did this for BFCM. A few times throughout the weekend we noticed an email wasn’t delivering and we sent another email or text that afternoon.

Black Friday revenue expectations by hour combined with our email and sms blasts.

If you're worried about server performance and dripping your email out over 4 hours. The earliest you could measure if an email is working is around ~6 hours. You lose the ability to pivot and send an email within the same day.

And all of this is enabled by Shopify servers so you don't have to worry about crashing.

I used to worry about server performance which meant relentlessly hounding and restricting marketing. Marketing no longer has to change their process because of developer concerns. I’m free to use my brain power on other parts of the business. And we have timely data unlocking the ability to pivot and maximize the sales window.

Benefit #2: Phenomenal Reporting

One of the weakest areas of self-hosted e-commerce software is reporting. You don't want the same server that serves customers webpages to also process huge database queries. Either you're going to have a slow website or slow reporting… or both.

That's why we used Metorik for WooCommerce. It's a fantastic reporting platform that lets marketers, finance, customer service, etc do as much searching & generating reports as they want without affecting our site.

With Shopify you can use their built-in reporting. You don't need to pay for extra services.

And best of all it’s easy enough to use that you don't need a data scientist to generate reports.

The AI in the Shopify reporting section is insanely good.

A natural language question to Shopify's reporting section.

To give an example from this week, I was on a call with a vendor who wanted to know the revenue breakdown by country in the EU. I didn’t have this data handy but I wrote a natural question in Shopify’s reporting. I had the answer 2 minutes later.

A Shopify report generated by AI.

This isn’t limited to me. Anyone on the team can now answer data questions in the moment while the conversation is still happening.

Reporting used to be asynchronous, specialized, and delayed. Now it’s immediate and available to whoever’s in the room.

Benefit #3: An Admin Designed to be Used

One of the most embarrassing parts of our WooCommerce site was how SLLLLOOOOOWWWWW the admin loaded. 🙈

It's not that you can't speed up the WooCommerce backend. It's that it's not customer facing. So no one advocates for it.

  • Loading default products screen takes 28 seconds 
  • Loading recent orders takes 13 seconds 
  • Loading a specific order takes 12 seconds

If you spread this out over a CS team with a dozen people it really adds up.

It's not just the total amount of wasted loading time. It's about stepping over an attention threshold.

If a task takes a few seconds I can stay focused. As soon as a page takes 10+ seconds to load I’m going to start opening new tabs and working on multiple tickets (or just open social media).

This isn’t just intuition. Productivity research as early as the 1960s and reproduced in 1993 & 2010 by Jakob Nielsen shows that 10 seconds is the point where users lose attention and start thinking about other things.

10 seconds keeps the user's attention. From 1–10 seconds, users definitely feel at the mercy of the computer and wish it was faster, but they can handle it. After 10 seconds, they start thinking about other things, making it harder to get their brains back on track once the computer finally does respond.

Slow admin pages nudge humans to context switch. You’ll use dozens of tabs, there will be half finished tasks, and you’ll probably forget why you opened a specific tab. That’s the downside of context switching. The WooCommerce admin is so slow we change our own process to compensate for the slow system.

For teams doing operational work, sustained focus is how work actually gets completed. When pages take 3 seconds to load you can enter a period of sustained focus. You can't enter flow if you're waiting 12+ seconds between pages. You'll inevitably get distracted by a DM, email, or other task breaking your focus and slowing productivity..

One of the best things about Shopify is how fast the admin is.

  • Loading default products screen takes 3 seconds
  • Loading recent orders takes 3 seconds 
  • Loading a specific order takes 3 seconds

The Shopify admin is designed for task completion. It's designed so you can mono-task. Complete a task start to finish and move onto the next item on your list. Admin speed determines whether work is completed sequentially or fragmented across dozens of half-finished states.

Conclusion

I was prepared (and excited) for site reliability from Shopify. That saves engineers like myself some grey hairs.

But looking at all of these benefits together I’m struck that Shopify removed whole categories of work:

  • Devs had to manage marketing email sends
  • Data questions required special training
  • CS agents were fighting human nature just to get their work done

WooCommerce can do all of these, but the default is slower with more interdepartmental coordination.

Shopify isn’t necessarily better at e-commerce but it lets us spend more time actually doing e-commerce.

Three Surprises From a Shopify Migration

Shopify Migration Surprises

If you’re an ecommerce developer or considering replatforming an ecommerce site to Shopify, this post is for you.

It’s the last day of the year and I’ve spent more than half of it working on large multi-store migration for Xero Shoes. Earlier this spring, a decision was made to move all of our websites to Shopify.

The two main sites are XeroShoes.com and XeroShoes.eu, with a wholesale site scheduled to move in early 2026.

We migrated years of data, worked with a Shopify Platinum Partner agency to build a new theme, and most importantly, ended up with an apples-to-apples comparison of the same business running on WooCommerce versus Shopify.

And the results were illuminating.

Surprise #1 — Shopify Can Be Much Slower

One of the key selling points of Shopify is that it's fast. Other platforms can be fast, but only if you invest in performance engineering. Shopify’s promise is that speed comes out of the box.

My expectation for this migration is that Shopify, with thousands of engineers, could certainly make XeroShoes.com load as fast as a small team of 4 coders could. 

What surprised me wasn’t a small regression. It was the magnitude of the change. In our case, Shopify is nearly twice as slow as the WooCommerce site it replaced.

Here’s the performance before & after migration.

Before the migration, our homepage loaded in 5.76 seconds on a 3G mobile connection.

After the migration, that number jumped to 11.44 seconds. Nearly double the load time.

It wasn't just the homepage. Our product detail page (PDP) went from 6.51 seconds to 9.38 seconds on 3G mobile. An almost 50% increase.

We have a lot of work to do. We'd love to improve the homepage performance by 5-6 seconds. And the PDP performance by 3-5 seconds.

It’s worth restating why performance matters so much:

  • Improving SEO rankings. Google prefers faster websites.
  • Improving conversion rate. The slower the site the more people drop out of the funnel.

The lesson I take is that Shopify probably is very fast for a straightforward ecommerce store. If you’re selling t-shirts you’re going to be fine. But if your business has any bespoke aspects you’ll still need performance engineering. Maybe another agency. But in our case we'll handle this in-house.

Surprise #2 — The App Ecosystem Is Unreliable

One of the assumptions I had going into this migration was that Shopify’s app ecosystem worked like mobile apps: you install them, configure a few settings, and they just work. For anything non-trivial, that turned out not to be true.

The app ecosystem is one of the main reasons people pick Shopify, but many apps aren’t isolated add-ons. Apps that affect the front-end often require deep theme-level integration and shared frontend code ownership.

It’s the apps that make Shopify used by most major online brands. We installed a few obvious apps that are highly recommended in the community. Matrixify is very useful for importing and exporting data and is working extremely well. As are some other well recommended apps like Klaviyo, Elevar, and Data Feed Watch, etc.

This difference became very clear when we tried to recreate a piece of variation merchandising functionality we had previously built on WooCommerce.

Variation Merchandizing on WooCommerce

About a year ago we built custom functionality for our WooCommerce site that lets us take a new color for an existing product and highlight that specific variation on a landing page.

This is really useful when we want to have a landing page that shows all of our new products on one page.

In this example, showing the black leather shoe alongside the brown leather shoe captures two different buying intents that would otherwise be obscured behind a single product image.

Variation Merchandizing on Shopify

Now how hard do you think it was to find comparable functionality on Shopify?

We asked our platinum partner and did our own research and found 5 potential apps. The apps claimed to let you split parent products into variations on specified collection pages.

And here’s the first surprise: they didn’t work… at least not initially. We tested all 5 apps and only 2 of them showed promise at working. The other 3 failed entirely.

We reached out for support and one of them had excellent support. That made the final selection easy.

After 20 emails back and forth and a few code snippets we had variation merchandising functionality working 7 days before Thanksgiving. Pfew! Just in time. 😅

So we made code changes to our theme and our app developer made code changes to their system to get this functionality working. At least now that it’s installed you don’t need to worry about it breaking (unlike other eCommerce platforms). Right?

On Thanksgiving, production behavior changed without a deployment on our end. The variation merchandising functionality, previously tested and stable, suddenly manifested a brand-new bug.

Users can no longer click thumbnails to change the product color. This isn’t a website crashing bug. But it is certainly not helpful. It's a clear demonstration that when critical functionality depends on third-party apps, you no longer fully control the production behavior of your site. At any time a Shopify app could break and the only thing you can do is disable the entire app. 😱

We emailed our app developer for help on Black Friday. The bug was finally resolved on our site on Wednesday December 3rd. Completely missing the Black Friday Cyber Monday sales weekend and the most important 5 days of the year. 😭

With WooCommerce, we wrote the merchandizing functionality ourselves in a single sprint and didn’t need to upgrade it all year. It worked and we were able to freeze our working code in place. Ensuring success over critical sales weekends.

Surprise #3 — Yes, You Can Break Shopify (and unfortunately We Did)

The biggest myth about Shopify is that you can’t break the checkout. 🛒 

With other eCommerce platforms when you install a new plugin and you must always make a test purchase to make sure that none of the new functionality breaks the checkout.

On Shopify this is theoretically impossible. This is a huge part of what makes Shopify so reliable and the default choice in the eCommerce world.

And while the promise of an unbreakable cart is tempting. It’s not true.

We experienced a subtle but serious regression that corrupted cart data when users added items to the cart. Instead of adding the selected size to the cart it always added the lowest size. And because the checkout flow otherwise appeared normal, most users did not catch this subtle but important mistake. 😱 

The bug was live on our site for most of the morning before we detected it. And the bug affected over five-figures of sales 💸🔥. 

Nearly all orders during this time needed some sort of CS involvement and/or a refund. 

So while you technically can’t break the Shopify checkout, it can create a false sense of invulnerability around the much larger surface area of code that feeds into it.

Conclusion

In a short timeframe, we migrated two enterprise-scale sites, moved years of data, resolved a large volume of issues, and successfully launched ahead of the most important sales period of the year.

The biggest lesson from this migration is that Shopify doesn’t eliminate complexity or work. Performance, app integrations, and frontend behavior is where most of the real work ended up.

  • Your website won't magically run faster on Shopify than another platform
  • Shopify Apps aren't as self sufficient or reliable as apps for your phone
  • The sense of invulnerability with Shopify allowed a bug to manifest that risked 5-figures of revenue

Shopify isn’t magic… but it is powerful when you understand its tradeoffs.

If you go in with clear expectations and are willing to invest where the platform draws its boundaries, it can absolutely support a large, growing business. We just know now where to be careful.

Amazon FBA or Shopify? Which Fulfillment Network Is the Best?

Amazon FBA vs Shopify Fulfillment Network

If you are are an eCommerce merchant you've probably heard about fulfillment networks or 3rd party logistics (3PLs). Fulfillment networks like Amazon FBA & Shopify Fulfillment Network (SFN) are incredibly powerful. If you can afford the cost they’ll store, pack, and ship all of your orders for you.

They handle an entire area of your business for you. For a merchant this is 25-35% of your responsibility. So being able to outsource this obligation and focus on other areas of your business can be massively helpful.

But calculating if a 3PL is worth the cost is complex. Shipping costs themselves are a nightmare of complexity. If you have more than 1 item in your store you will probably just understand the range of shipping costs to get several items from point A to point B. Trying to figure out a fair cost for the 3PL on top of regular shipping costs is challenging to say the least.

And there are challenges beyond just costs. You have to order and send in your products according to their schedule and in their preferred formatting. With all of that overhead switching 3PLs is painful and costly.

So fulfillment networks have some serious costs. But they also allow eCommerce entrepreneurs to live that idyllic lifestyle where you order piña coladas on the beach while your business continues to generate revenue. 🏖

Let’s look at the costs, procedures, and the tradeoffs for two of the biggest fulfillment networks: Shopify Fulfillment Network (SFN) and Amazon FBA so you have a baseline understanding of when and how you'd set up a 3PL for your own e-commerce store.

Continue Reading…

How to Process Credit Cards Manually with Stripe

Entering Credit Card with Smartphone

Most e-commerce platforms let you create orders manually. That way even if you're at a conference or a potential customer calls you you can capture those orders.

While many systems let you create orders manually they don't always let you charge a credit card which kind of defeats the purpose. But even if your e-commerce platform doesn't let you process credit cards if you use Stripe you're in luck. They make processing credit cards really easy.

Continue Reading…

Learn how to use Shopify on Lynda.com

Over the past couple weeks I've been pretty busy. So busy that I completely forgot to do those traditional business things like get business cards. facepalm

That's okay though – because I'm able to announce two projects this week.

I've spent part of my time consulting for some amazing e-commerce businesses (<- future post). And I've spent another part creating e-commerce content for Lynda.com. And today I'm happy to announce that we created and launched Learn Shopify: The Basics.

Continue Reading…