Migrating From Magento Enterprise to Magento Community Version Successfully!

It’s really tough to decide and compare features of Magento (Community & Enterprise) version until-unless you know both versions thoroughly, inside and out. Before migrating from Magento Enterprise to Magento Community Version, first you need to understand following important factors:

What are your key Ecommerce business functionalities and requirements?

In a long run, what’s really good for your business?

What are you paying for Magento Enterprise? Is it really worth?

Can you just get the same functionality with the extensions on the free Community version?

There are a lots of powerful features that the Magento Enterprise offers to a business owner and most of the business owners are often attracted by these advanced support features. Although, they deploy Magento Enterprise hoping that this paid solution will increase their Ecommerce website profits, but soon they realise that it is hard to afford and continue paying the heavy charges for may unnecessary advanced Ecommerce functionalities. In the recent scenario, considering all above factors, many Ecommerce business owners have not found it worthful to go with $15,550 price of Magento Enterprise services and opted for migrating Magento Enterprise to Community version and save on licensing fees. In this blog, we have discussed two main processes to choose for Migrating Magento Enterprise to Magento Community Version. Before starting to discuss about migrating process, let us go through introduction and key features of both Magento Community and Enterprise versions:

What is the Magento Community Edition (CE)?

Magento CE is originated as an open source Magento software and also referred as “Community” which means it is free to download Magento, globally for anyone. Here, you can also do necessary modifications as per the suitability of your Ecommerce business requirements. Since past many years, Magento has shown its tremendous growth abilities. Now, there are globally more than one million people who have downloaded Magento and many of them have also developed extensions, customizations and other necessary changes. The Magento community shares knowledge, exchange tips, tricks, assistance to each other, and offer support by connecting on the forums of Magento Community site. Through this model, the Magento Community Edition development rapidly goes on to provide a powerful and basic solution for small business owners who are seeking a state-of-the-art Ecommerce platform.

Free and Open Source Magento Community Features:

The out of the box Magento Community Platform is a digital download and provides store owners and merchants amazing features and flexibility as mentioned below: 1. Free open source software with no yearly license fees. 2. Pay only for your domain, web hosting, and an expert Magento programmer. 3. Specially designed for developers and tech-savvy merchants. 4. Amazing array of features, with per-integrated Code-level access, Web Services API and Mobile HTML5 Theme. 5. Extensibility i.e. Extensions, API Integrations and Themes 6. Mobile Commerce 7. Multiple Stores 8. Multiple Store Views 9. Persistent Shopping Cart 10. Flexible Pricing Rules 11. Analytics and Reporting 12. Layered Navigation 13. International Commerce and Multiple Languages 14. Shipping Rules, Payment Configurations and Gateways. 15. Product Configurations 16. Cross-sells and Up-sells Related Products 17. SEO (Search Engine Optimization) 18. Flexible Couponing and Promotions. 19. Customer Accounts Management. After all, Magento Community is a free, open source software and can do almost anything, so very few people opt to pay $15,550 for Enterprise version. If you like to patch things together to make them work and keep rolls of duct tape everywhere, then Magento Community is a perfect fit for you. Magento CE is the perfect solution if you’re a developer or a tech-savvy merchant who wants to explore the flexibility of the Magento eCommerce platform. You can also modify and engage with this passionate community and can even contribute to the core code for guidance and support.

What is the Magento Enterprise Edition (EE)?

Like the most of things in life, you can also get what you pay for! Magento EE is the scalable and high performance Ecommerce solution for large and rapid-growing enterprises. Magento EE is tailored to user’s specific needs, offering flexible and enterprise class features for an Ecommerce solution. Moreover, it helps to boost online website revenue by driving more traffic and converting browsers in to buyers. Although, Magento EE shares the same base as Magento CE with an expensive licenses cost, still Magento EE demand continues to increase rapidly amongst retailers who need more advanced features and functionalities that the Magento CE can not provide. Magento EE offers a Service Level Agreement (SLA), available through a subscription and is backed by Magento’s dedicated support team. As part of their subscription plan, Magento EE also provides additional advanced features, product enhancements including priority patches for security and critical updates.

Magento Enterprise Advantages Over Community Edition:

Including all the functionalities provided by Community Edition, Magento EE also offers its users many other features and functionalities mentioned below: 1. Handles A Large Number of Products. 2. Full Page Caching with Quick Loading 3. Provides Backup / Rollback Systems Integrated Into Magento. 4. Better Scalability. 5. Advanced System Tax Calculation 6. Fast Checkout Flow. 7. Advanced Administrator Logging, Site Access Permission and Roles. 8. Convenient and Fast Customer Attributes Management. 9. Built-in ability to offer a Gift Wrapping option. 10. Helps to do Advanced Segmentation / Marketing for Clients. 11. Allows Hosting Private Sales For Clients. 12. Provides PCI Compliant Code. 13. Allows A Gift Registry. 14. Helps to Offer Gift Loyalty/Points For Clients. 15. Offers Online Gift Cards or Store Credits. 16. Built In Return Management Authorization. 17. Allows Solr Search. 18. Helps to Create Automated Email Messages. 19. Helps to Easily Create Multiple Custom Landing Pages. 20. Automatically Up Sell / Cross Sell Recommended Products. 21. Allows Customer-Assisted Shopping. 22. Allows Magento Technical Support. 23. Offer Auto-Generated Custom Coupons. 24. Allows to Attach Custom Banners to Coupon Discounts and Codes. 25. Helps to Improve Additional Functions. Magento Enterprise can be a better fit for people who rather have an all-in-one package that is fine-tuned from the get-go. Although, Magento EE might have some great additional functionality, but if you’re not using it then it may not worth it. While comparing the functionalities of above both editions of Magento (i.e. CE & EE), the best way to come to a decision is by weighing the benefits and costs.

Migrating Magento Enterprise to Community Version

If you have initially owned the Magento Enterprise version (EE) and now would like to revert to free Magento Community version (CE), then it may come to your mind, how to do it successfully?

There are Two Valuable Approaches you can follow i.e.

Removing Unwanted Magento EE files

Migrating the most usable code from EE version to CE version

First approach, guides you to downgrade your installation of Magento EE by;

Removing all enterprise related files

In a normal setup you can perform it as mentioned: rm -rf app/code/core/Enterprise rm -rf downloader/template/enterprise rm -rf app/design/install/default/enterprise rm -rf app/design/frontend/enterprise rm -rf app/design/adminhtml/default/default/layout/enterprise rm -rf app/design/adminhtml/default/default/template/enterprise rm -f app/locale/en_US/Enterprise_*.xml rm -rf skin/adminhtml/default/enterprise rm -rf skin/frontend/enterprise rm -rf skin/install/default/enterprise rm -f app/etc/modules/Enterprise_*.xml rm -f app/etc/enterprise.xml rm -rf app/locale/en_US/template/email/enterprise/ rm -rf js/enterprise rm -rf errors/enterprise rm -f LICENSE_EE.txt rm -f LICENSE_EE.html Now, replace the version from the community edition with the complete app/code/core/Mage folder. Of course, this will remove all core hacks. Download the archive and replace the files, but always ensure to use the right community edition version on which your enterprise version was built upon.

Login Fixing

After replacing the files, enter the shop. In current Magento versions, you will fail to log in, both in the front-end in the back-end. But don’t worry, Stay cool and calm! There is a different hashing mechanism for passwords in the Magento enterprise version. After removal of the enterprise files, Magento uses the next best version i.e. the community one. The login fails due to a different hash algorithm. If you thoroughly understand the problem, then this can be fixed easily. The file app/code/core/Enterprise/Pci/Model/Encryption.php contains the algorithm used by the EE version. You can create your own model to replicate the behavior. Then, command Magento for the rewrite process: Module_Namespace_Model_Encryption Now, both front-end and back-end login should work as before without any need to change passwords.

Remove enterprise attributes

Log in into the back-end and check the whole working as expected. Now, click around to create a new product. While creating a new product, it should fail, as your database still carries enterprise attributes that automatically loaded by Magento and the according source files aren’t present there anymore. It can also be fixed easily by removing the unwanted attributes: DELETE FROM eav_attribute WHERE source_model LIKE 'enterprise_%'; DELETE FROM eav_attribute WHERE backend_model LIKE 'enterprise_%'; DELETE FROM eav_attribute WHERE attribute_code IN ('gift_wrapping_available', 'gift_wrapping_price'); Important: Before doing this, always make sure, you don’t require any related data.

URL Index Fixing

Next step is to re-index the URL index and if you run on 1.13.x, it will fail. This happens because in the enterprise edition, Magento uses different database tables for url rewrites and actually the complete database layout is solely different. Also, you have already removed the necessary files to fill those tables. So you should further request Magento to use the standard table layout: UPDATE eav_attribute SET backend_table = NULL WHERE attribute_code = 'url_key'; This will again make your re-indexing process to work and your most of the URLs will be changed, primarily from the pages of products detail. This may act on any number of URLs from none to all, depending on usability of URL keys with old installation. Clear the rewrite table, to use the URL keys from the enterprise setup and retrieve required IDs and copy the URL keys: TRUNCATE TABLE core_url_rewrite; SELECT @entity_type_id:=entity_type_id FROM eav_entity_type WHERE entity_type_code = 'catalog_product'; SELECT @attribute_id:=attribute_id FROM eav_attribute WHERE attribute_code = 'url_key' AND entity_type_id = @entity_type_id; UPDATE catalog_product_entity_varchar new INNER JOIN catalog_product_entity_url_key old ON (new.attribute_id = @attribute_id AND new.entity_type_id = @entity_type_id AND old.entity_id = new.entity_id) SET new.value = old.value; Important: Afterward, ensure to re-index everything in Magento’s back-end.

Templates Fixing

It is an important functional step. Without using the enterprise features, your shop should work as before. It is likely that in your layout xml files, you find references to enterprise blocks. So, find them: $ grep -rn '"enterprise_' app/design/$your_design Remove every reference and the exception. Your online shop might look unique, depending on your implemented layout. As a rule of thumb, go through the code from the removed enterprise template and layout xmls and see its effects or the styles on shop. Same procedure can be followed for CSS and JavaScript files.

Third party extensions Checking

Go through, both in the community and local folder to find all the installed third party extensions, and look for any of enterprise-only behavior extended by them. Also clearly look for those extensions that won’t work anymore or bring the shop down. Before going live with the downgrade, always make sure you check all extensions.

Wrapping up

Now, based on your old enterprise version, you will have a working community edition. Until-unless the process is finished completely and live, it is recommended not to delete any tables associated with enterprise. If you feel confident, then only you should delete them and before doing it live test it excessively on your local setup. However, you may not succeed with the above downgrading approach. Also, this approach may cause high risk of missing and corrupted data. Also, in this way downgrade would be more error prone and take longer time. Therefore, the more lengthy but better approach, which also successfully works is rebuilding the fresh site on community (CE ) version. So it is recommended to follow this Second approach:

In the Second Approach; Start with a new community install and transfer your design, code, data and modifications from EE to CE.

Migrate the best functional code as a key from EE to CE version.

A thorough project analysis is essential, before following any of these two approaches

Starting Analysis

Following steps should be followed in starting analysis: 1. Any custom changes/modifications done in EE version should be identified or documented and make sure if all these can be contended in CE version. 2. Installed Extensions should be listed and also the availability of CE extensions be checked on Magento Marketplace. 3. Web hosting account should be created to load the CE version for migration. Until-unless you are confident that EE version can be replaced with CE version, the original EE installation should not be disturbed.

Step by Step Migration

Analysis: Analyse the project scope, during initial study such as the project requirements, database structure, functionality flow, template structure and front-end design. Tasks Planning: As Magento constitutes a large database and code base, so to make it convenient tasks should be planned distinctively in following manner: 1. Migrating Themes (CSS and HTML) 2. Migrating Database 3. Reinstalling third party extensions

Migrating Theme

1.1 Integrating Template (HTML): The enterprise edition template copied to community edition. 1.2 Integrating Skin (CSS): The enterprise edition skin (CSS) copied to community edition. 1.3 Assigning new theme to magento front-end store. 1.4 Integrating local code in template.

Migrating Database

2.1 Product data export to CSV format. 2.2 Creating attribute groups, products attribute set, and attributes as per enterprise edition. 2.3 Assigning images to products, putting images into media/import folder and changing images path in CSV according to /media/import folder. 2.4 from CSV file, import the product data by increasing import file size.

Fresh installation of compatible third party extensions on CE version.

3.1 Integration of banner slider extension. 3.2 Integration of one page checkout extension. 3.3 Adding zoom plug-in for product details page. 3.5 Integration of Custom_Login_Redirect extension. 3.6 Integration of Angelleye_PayPal_BML_Banners extension. 3.7 Integration of BL_CustomGrid extension. 3.8 Integration of ParcelPro_Carrier extension. 3.9 Integration of Ebizmarts_MageMonkey extension.

Also note some other issues

1. Customer login section template-Enterprise version doesn’t work: In new community version (i .e 1.9.0), form validation method change. Instead of using the legacy EE version, use community version base template. 2. Data import-Product & Customer data: On creating same attributes and attributes set, import in community version and export from enterprise version is possible. Still, from EE version it would be difficult to directly import subscriber and order data in CE version. For this purpose, a custom script is essential to be written. 3. Managing URL Re-direct: Enterprise version has in-built url-redirect functionality, while Community has url redirect management functionality. 4. Manual/Auto Indexing: There is auto-data indexing in enterprise edition for Stock Status, URL Redirects, Product URL Rewrites, Category URL Rewrites, Catalog Search Index, Catalog product price and Catalog Product/Category Index; while index management is manual in community edition.

The Biggest Issue

‘Speed’ may be the biggest downside after the above migration procedure. There is no doubt, due to indexing and cache management, Magento Enterprise version site is much faster. Some merchants may be wooed for various Magento Enterprise functionalities of finest quality, but in real sense, such craze is an unnecessary hyped. Without any doubt Magento Enterprise edition is the high performance eCommerce solution for large and fast-growing businesses. Its faster loading time, PCI Compliant stuffs with outstanding features and performance definitely boosts online revenue, but on the other side its fixed & huge license fee may drain their yearly revenue. On Magento CE you have to do some ultra tuning-up including Varnish and memcached installation. Therefore, the most prudent step to cut the cost is to rebuild the site with fresh installation of Community version and thereby adding extensions comparable to the additional functionalities of Magento Enterprise. Downgrading Magento is a complicated process so it would be really tough to do this without an expert knowledge and experience. At TBI, we have a team of Magento experts who are ready to complete all your Magento downgrade tasks securely and within a minimum of downtime. We are here to help you to be compliant and completely tension free as we perfectly migrate your website functionality down from enterprise to community version. If you have any doubt or require more information on migrating Magento EE to Magento CE version then don’t hesitate to reach us and hire our dedicated magento developers for seamless migration. You can also write to us on: contact@brihaspatitech.com. You can share your views and suggestion by commenting here below: