Migration from Magento Enterprise to Magento Community: Our Lead Dev Explains
Why pay for functionality you don’t use? As the lead developer for Command C, I led the migration of a client website from Magento Enterprise to Magento Community earlier this year. I’ve explained the process below to share what we learned. It may help you decide if a similar move might be right for you.
Warning: This post is nerdtastic.
What We Did
Based in Boston, Shambhala has been publishing books on eastern religion and philosophy since 1969. Since launching shambhala.com, the Shambhala team had been using Magento Enterprise.
The Magento team has built a variety of performance enhancers and user-facing features into the Enterprise Edition (EE) that do not exist within the Community Edition (CE) framework out of the box. But only a handful of EE features were actually necessary for the day-to-day operations of shambhala.com. Since Magento is open source software that was quite literally built to be extended, all of the features Shambhala needed could be built onto CE. We set out to see how this transition might happen.
We started with our thorough code audit process. We catalogued all site functionality, including existing modules, integrations with external providers, fulfillment centers, accounting reports and so on. Together with the Shambhala team, we ensured that all operations were accounted for and desired functionality documented. The code audit highlighted a few core EE functions that would need to be replaced in order to transition to CE. For example, this project required substitute solutions for:
- the integration of e-gift cards, both as products and payments
- gift wrapping, which needed to exist independent of gift messaging
There are three ways that the site could have been transitioned to CE:
1) Rebuild the entire site on CE, migrating EE data. This would meaning building on CE from the ground up and importing all site data, including products, order histories, customers, etc. In addition to requiring additional theme development hours, the data migration process between editions is unpredictable. It can result in corrupted or missing data — the scale of which may differ depending on external factors, making a deployment with live data partially untestable. Shambhala’s data set is also reasonably large. This increases the downtime needed to create a live cutover of the database that does not subject the systems to orphaned orders, customers or products.
2) Start the store from scratch on CE, abandoning EE data. We could have scrapped all existing data, keeping an archive for historical reference but essentially starting over again. This was the least desirable of our options because the historical data would not be stored within the platform. Shambala’s team would have access to it, but the platform would not show cumulative data – just data from the point of the rebuild.
3) Transition in two steps. After deciding options 1 and 2 above were unattractive, we proposed a two-step transition process. This would first give us a stage environment that would provide a safe space for ample testing of the CE version of the site.
How We Transitioned
We first uncoupled EE code and database attributes and transitioned the core to the version of CE that their version of EE was released in conjunction with.
Next, we upgraded CE to the most recent release.
(This is where the fun starts.)
The Magento framework does an excellent job keeping theme assets and functionality separate; they’ll often meet within a site’s template files, and so much of our review was focused therein.
We reviewed and documented every post-transition issue with both the frontend and administrative sections of the installation. We then systematically corrected each issue or added missing functionality as required.
Several 3rd party extensions that had been in heavy use required upgrades or changes to work within the new system. A variety of layout and template files required CE alternatives to be applied in place of their EE counterparts.
At this point, all historical data existed within the stage installation, and the Shambhala team could begin their review. First we ensured the theme and existing customer/order data was in line. Next we proceeded to test transactions end-to-end. We coordinated with Shambhala’s fulfillment providers to test and adjust order exports and shipping information imports as required.
Shambhala.com also integrates with an onsite product inventory system that required small adjustments to work properly in the new environment.
The Origin and Attraction of this Migration Idea
Shambhala was looking to upgrade their version of EE in order to achieve compatibility with several third party extensions that did not support their older EE version. During this process, it became apparent to the Shambhala team that a migration from Magento Enterprise to Magento Community might be possible and would represent a significant cost savings. (They had recently received their next EE license term invoice.) We then completed the initial review to determine the feasibility of the transition and propose a transition plan.
Though Shambhala’s overall popularity and usage led us not to recommend an altered hosting environment in this case, a transition from EE to CE can also represent cost savings within your hosting solution. EE requires a very strict configuration and sometimes more resources all around, depending on the number of SKUs in your shop. CE hosting requirements can be a bit more flexible. CE sites also benefit sometimes from additional customization and flexibility in fine-tuning at the server level.
Project Pitfalls & Length
The pitfalls get pretty technical, but one with easily-understood implications is that EE and CE use different encryption algorithms for passwords. We had to write a new encryption model that ensured all users could still login with their same passwords once the site was transitioned to CE. The two-step transition that gave us a staging environment allowed us to discover and resolve issues like this.
The actual transition of the site to CE was completed between November 2014 and February of 2015. Our team took break in production over the holidays to allow Shambhala and their fulfillment center to focus on the holiday shopping season.
Extremely thorough testing of the new CE platform began in earnest in January of 2015 and continued through March. This was a cooperative effort between our team and Shambhala’s.
Other functionality enhancements occurred during the first weeks of April. For example, finalization of a new gift card system added functionality above and beyond what came with EE out of the box and what we initially implemented on the new CE platform.
To assist Shambhala’s accounting department, we deployed the new systems on an easily markable date, overnight between April 30 and May 1.
In both February and April, dry runs of the live deployment were completed to minimize the number of unknown variables that might exhibit themselves at deployment. Three layers of fallback plans for transitioning back to EE if required were set in motion prior to deployment as well.
In total, this project took about six-months. It included two of our most senior Magento developers, server administrators and project management team.
Is Migration from Magento Enterprise to Magento Community Right for Me?
First see if you meet these three characteristics:
- your shop serves less than 50,000 SKUs
- your version of Enterprise is EE 1.10 or newer
- you do not find that you utilize Magento’s Enterprise Support frequently
If you fit with the above specifications, a code audit will help you determine whether or not your site’s Magento Enterprise features can be transitioned to Magento Community. The savings can be significant, so we think it’s worth a look.