Case Study — WooCommerce → Shopify Migration
A Custom WooCommerce Store, Re-platformed to Shopify — Without Losing the Hard Parts
A fully custom, self-hosted WooCommerce store moved onto Shopify — including a multi-carrier shipping engine, hazmat classification and all, rebuilt as a store-exclusive app fast enough to beat Shopify's checkout timeout.
- Platform
- Woo → Shopify
- Shipping app
- Store-exclusive
- Carrier calls
- Parallel cURL
- Host
- Google Cloud

- Client
- Direct-to-consumer eCommerce retailer
- Industry
- Retail / eCommerce
- Year
- 2024
- Services
- Shopify migration, Custom Shopify app, Carrier rate integration, Performance engineering
The client had spent years building their store the way serious eCommerce teams used to: WordPress and WooCommerce, self-hosted, every line of code theirs to change. That freedom was also the problem. The business now ran on custom logic — multi-carrier shipping math, hazardous-goods rules, three tiers of customer pricing — and they wanted the operational calm of Shopify without throwing any of it away.
01 — The Challenge
A SaaS Platform That Doesn't Let You Touch the Parts That Matter
Shopify takes a lot of hard problems off your plate. It also takes away the keys. Moving a store that depended on deep custom code meant re-solving each piece inside a platform that owns the checkout, meters your code access, and enforces its own performance rules.
- 01
Code access shrinks to a theme
WooCommerce gave the client full server and code control. On Shopify you get the theme, App Store apps, and tightly scoped custom apps — everything else runs through APIs, on Shopify's terms.
- 02
The checkout isn't yours
Cart and checkout flow are controlled by Shopify. Any custom behaviour — pricing, shipping, validation — has to hook in through a supported API rather than a plugin dropped into the codebase.
- 03
A shipping engine, not a shipping setting
The original store priced every order against multiple third-party carriers — eShipper, KH Ship, UPS, USPS and more — with hazardous-product classification and per-shipment cost adjustments layered on top. None of that maps to Shopify's built-in rates.
- 04
A timeout that fails the sale
Shopify calls the shipping-rate endpoint with a strict timeout. If the response is slow, the shopper sees “Shipping not available” and the order dies. A faithful port of the old plugin would have been correct and useless.
- 05
Pricing that changes per customer
Normal customers, Artists and Wholesalers each see different prices, with quantity-based tiers on top — and the tiers had to render as a clean, readable table, not a wall of variants.
02 — Our Approach & the Technical Journey
The Fix Was Concurrency, Not a Bigger Server
The shipping problem looked like a hosting problem. It wasn't. The old plugin asked each carrier for a rate one after another; on Shopify's clock, the sum of those round trips was the whole budget. Speeding up any single call barely moved the number.
Milestone
Map the plugin before touching it
We reverse-engineered the WooCommerce shipping plugin end to end — every carrier integration, the hazmat classification rules, the cost adjustments — so the Shopify rebuild matched the real behaviour, not a summary of it.
Dead end
A straight port on shared hosting
Re-implementing the same sequential carrier calls behind a Shopify rate endpoint reproduced the exact failure we were hired to remove: on a busy cart, the combined carrier latency blew past Shopify's timeout and checkout showed “Shipping not available.”
Breakthrough
One store-exclusive app, calls fired in parallel
We rebuilt the engine as a custom Shopify app exclusive to the client's store, hosted on Google Cloud, and rewrote the rate logic to call every carrier concurrently with PHP cURL multi-handles. Total response time collapsed to roughly the slowest single carrier — comfortably inside Shopify's window.
Before — sequential rate calls
After — parallel rate app on GCP
Moving to a faster host helped at the margins; running the carrier calls concurrently instead of serially is what actually put the response back inside Shopify's budget.
03 — The Solution
The Custom Logic Survives — Shopify Just Doesn't Know It's There
The shopper sees a normal Shopify checkout. Behind it, a purpose-built app does the same work the old WooCommerce plugin did, faster and with less to maintain.
A store-exclusive Shopify app
Not a public App Store listing — a private app scoped to this one store, so the client keeps the custom behaviour they need without giving up Shopify's managed platform.
Tuned Google Cloud hosting
The app runs on a fast Google Cloud server configured for Shopify's traffic patterns, keeping the rate endpoint responsive under real checkout load.
Parallel carrier rating
Every third-party carrier call — eShipper, KH Ship, UPS, USPS and the rest — fires at once via cURL multi-handles, with hazardous-goods classification and shipment cost adjustments applied to the merged result.
Role-based & tiered pricing
Normal, Artist and Wholesaler pricing plus quantity breaks, resolved through Shopify's APIs and presented as a clean tiered-pricing table on the product page.
04 — Key Results & Impact
What the Migration Delivered
0
Checkout-killing rate timeouts
Every quote returns inside Shopify's window
1
Store-exclusive Shopify app
Full custom logic without leaving SaaS
4+
Carriers priced in parallel
eShipper, KH Ship, UPS, USPS…
3
Pricing tiers preserved
Normal, Artist, Wholesaler + quantity breaks
05 — Why This Matters
SaaS Limits Are Design Problems, Not Dead Ends
Re-platforming to Shopify is easy to sell and hard to do well when a store runs on custom code. The trap is treating the platform's constraints as walls instead of as a brief.
We kept the client on managed infrastructure, kept their shipping and pricing logic intact, and made the checkout faster than it was on the store they controlled outright — because the real work was picking the right fix (concurrency) over the obvious one (a bigger box).
Shopify Migration · Custom Shopify App · Carrier Rate Integration · Performance Engineering
Building something that has to be reliable?
Talk to a senior engineer about AI-accelerated delivery or a production RAG / agent system. We work with teams across the US, Canada and beyond.
Book a Discovery Call