Magento to Shopify Migration Case Study: Candle Delirium
Introduction / Timeline
The migration process from Magento 2 to Shopify for Candledelirium took around six months from start to finish.
During this time, the store was migrated from Magento 2 Community Edition (not Adobe Commerce) to the latest version of Shopify.
The duration reflects the full scope of the work involved, including preparation, data migration, custom development, testing, and final switch-over.
Theme Selection
Regarding the theme, we went with Prestige.
We chose it because it is one of the better Shopify 2.0 themes available and fully supports the Online Store 2.0 standard.
This allowed us to use sections across all pages and connect the migrated metafields directly to the storefront design.
Customer Data Import
The biggest challenge—and the part that slowed us down the most—was the existing customer import.
Shopify applies very strict validation rules for customer data, particularly for addresses and phone numbers, which must also be unique.
We spent a significant amount of time cleaning and correcting data from the old database just to get the customer import to pass successfully.
Product Import & Data Consolidation
For the product migration itself, we used Matrixify, but the process was significantly more complex because we had two data sources: Magento and Lightspeed.
Lightspeed, which was used as the POS system for the physical store, was not synchronized with the live Magento store, meaning product data differed between the two systems.
To handle this, we wrote custom PHP scripts to consolidate all product data into a single CSV while eliminating duplicates.
Products were primarily merged by SKU, and where that wasn’t possible, we matched them by product name.
In cases where naming differences existed, we used fuzzy logic scripts with a manual yes/no confirmation step to verify whether the records referred to the same product.
After the data was cleaned and merged, all essential product attributes were migrated into Shopify as metafields to ensure that no information was lost and that the store structure could be rebuilt reliably on the new platform.
Bestseller & New Arrivals Logic
The most serious custom development we had to do was the logic for bestsellers and new arrivals, broken down by collections.
Since Shopify does not offer this natively for groups of products, we set up a script on an external VPS using a cron job and the Shopify GraphQL API to analyze sales data and product creation dates.
Based on this logic, the script automatically assigns tags according to our predefined mapping, which keeps these collections updated automatically.
SEO Redirection Strategy
We implemented a total of 66,879 permanent 301 redirects.
This was a massive undertaking, but it was necessary to ensure that users visiting old Magento URLs did not encounter 404 errors and, more importantly, to preserve the SEO authority and rankings that had been built over the years.
SEO Monitoring & Optimization
SEO was handled actively throughout the entire migration.
We tracked rankings, visibility, and average position using Semrush, both before and after the switch.
The final switch to Shopify happened on September 22, and importantly, there was no ranking drop during or after the migration.
The data shows a steady improvement in overall average position immediately following the switch. This confirmed that the redirect strategy, URL mapping, and go-live execution were handled correctly.
This outcome was the result of experience, not luck.
By combining a large-scale 301 redirect setup with continuous SEO validation during the migration, we were able to preserve existing rankings and improve them further on the new platform.
The cleaner structure, better performance, and improved UX on Shopify contributed to stronger organic results after the release.

Custom Category Logic (Magento vs Shopify)
In Magento, we had a custom module that grouped multiple categories into so-called “supercategories” (such as Candles, Room Fragrance, and Bath & Body).
This module automatically identified the newest and best-selling items within those specific groups.
Since Shopify does not support this type of complex grouping natively, we developed a custom script running on our VPS that communicates with Shopify via GraphQL.
The script fetches products and collections, applies the same grouping logic, and updates specific metafields (set to true/false) to flag products as New Arrivals or Bestsellers within their respective smart collections.
The Final Switch
There was a short transition period rather than real downtime, largely caused by DNS propagation and nameserver constraints outside of our control.
We placed Magento into maintenance mode and updated the DNS records, while at the same time configuring iptables on our load balancer to redirect traffic to Shopify for users whose DNS had not yet updated.
Most of the disruption during this phase was actually related to a delay in Shopify’s SSL certificate provisioning.
We resolved this by removing and re-adding the domain in the Shopify admin, which forced the validation process to complete.
We also encountered a minor issue when Shopify briefly throttled our load balancer’s IP due to the high volume of redirected traffic coming from a single source, although by that point DNS propagation had already completed for the majority of users.
After the Successful Switch
After the migration, we identified an issue where the customer login page was defaulting to a Shopify internal URL (for example, /account/login on a Shopify domain).
We resolved this by adjusting the Customer Accounts settings in Shopify, ensuring that all account-related URLs were correctly mapped to the primary domain.
Conclusion
The product migration was a complex, multi-step process that involved consolidating data from two different sources.
We exported roughly 7,000 products from Lightspeed and around 6,000 products from Magento.
Due to significant overlap between the two datasets, we merged the data primarily using SKUs and UPCs as unique identifiers and applied fuzzy logic to match products by name where those identifiers were missing.
After cleaning the data and removing duplicates, we imported a final total of approximately 6,400 unique products into Shopify.
The new store was released at the start of Q4, after which the client experienced measurable growth in sales and improved customer retention.
The migration resulted in a more stable platform, a significantly improved user experience, and a store structure better aligned with customer behavior.
Overall, the move delivered clear benefits for the client, including higher conversion rates, better UX, and a more scalable foundation for future growth.
