How Nexus Apparel Migrated 10,000 Products to Shopify in 5 Days Without Downtime
Day 1: The Tactical Audit (Monday)
Goal: Identify the “Showstoppers.”
We didn’t look at colors or fonts. We looked at data structures. We ran a deep SQL query on their `wppostmeta` table.
- Discovery 1: They had 80,000 “Orphaned” variation images. The database was 12GB.
- Discovery 2: Their SEO plugin (RankMath) had unique canonical tags for every color variant. We needed to map these to Shopify’s handle structure or lose SEO.
Action: We spun up a Shopify Plus sandbox instance. We installed Matrixify (our tool of choice for heavy lifting).
Day 2: The Data Heist (Tuesday)
Goal: Move the heavy assets.
Moving 10,000 products with 5 images each = 50,000 images. Importing images via URL is slow. Shopify has API rate limits.
The Strategy:
- Image Sideloading: Instead of asking Shopify to fetch images from the slow WooCommerce server (which would crash it), we uploaded all 50GB of images to a dedicated S3 bucket.
- CSV Construction: We built a 40,000-row CSV pointing to the S3 URLs (fast) instead of the Woo URLs (slow).
- The Batch Import: We ran the import overnight.
Result: By Wednesday morning, 10,000 proudcts were in Shopify. 100% perfect.
Day 3: The Theme Sprint (Wednesday)
Goal: Brand Parity.
Nexus didn’t need a “redesign.” They needed “stability.” They liked their current look. We chose the Dawn 15.0 theme as our base.
The Execution:
- Header/Footer: Replicated their Mega Menu using Shopify Navigation nested lists.
- PDP (Product Detail Page): Their WooCommerce site had a custom “Size Guide” table. We used Shopify Metaobjects to build a dynamic size guide that changed based on the “Product Type” tag (Shirt vs. Pants).
- PLP (Collections): We set up “Smart Collections” based on product tags.
Speed Check: The old site loaded the PDP in 4.8 seconds. The new Dawn theme loaded it in 0.9 seconds.
Day 4: The Integration & SEO Bridge (Thursday)
Goal: Wire the connections.
- ERP Connect: They used NetSuite. We installed the Celigo integrator app. We ran a test sync. Inventory levels flowed correctly.
- Payment Gateway: We activated Shopify Payments and PayPal. We placed a $1.00 test order. It worked.
- The Redirect Matrix: This was the critical path.
- We exported 15,000 URLs from Screaming Frog.
- We used a Python script to fuzzy-match old slugs to new handles.
- We identified 500 “Top Traffic” pages and manually verified their redirects.
Day 5: The Cutover (Friday)
Goal: Go Live.
09:00 AM: We put the WooCommerce site into “Maintenance Mode.” 09:15 AM: We ran the “Delta” script to grab the 450 orders placed since Tuesday. 09:45 AM: Delta Import complete. 10:00 AM: Updated DNS records (Cloudflare). 10:05 AM: Shopify SSL propagated. 10:10 AM: First live order received ($125 order for a Denim Jacket).
Result: Zero downtime. The customer who was browsing at 09:59 saw the old site. The customer who refreshed at 10:05 saw the new site.
The Aftermath: 90 Days Later
The results of rapid re-platforming were immediate.
- Server Costs: Reduced from $800/mo (AWS) to $0 (Included in Shopify).
- Dev Costs: Reduced from $2,000/mo (retainer) to $0.
- Traffic: Organic traffic held steady (0% loss), then grew 15% in Month 2 due to Core Web Vitals improvements.
Ready for Your Sprint?
You don’t need 3 months to migrate. You need a plan. If you are facing a deadline or a crashing server, Contact Presta for an Emergency Migration Sprint.
Frequently Asked Questions
Did they lose customer passwords?
No (and Yes). As explained in other articles, we didn’t migrate passwords. We sent an “Activate Account” email via Klaviyo on Friday afternoon. 65% of customers activated within 48 hours.
How did you handle 50,000 images so fast?
The S3 bucket strategy is key. Relying on Shopify to scrape a slow server is the #1 reason migrations fail/time out.
What about their blog?
We migrated their 200 blog posts using the same Matrixify process, ensuring we kept the original “Publish Date” to preserve SEO freshness signals.