One of my clients was facing another five figure licencing fee for Magento EE when we got talking about the actual benefits of Magento EE over CE. The main reason the client was using EE was to have access to EE support. The site is a major retailer and any kind of downtime would cause substantial financial loss. In the 3 years of using EE we had contacted the support twice, both times with less than stellar results.
EE Support review
The first time we used EE support was when we encountered an issue with frequent db deadlocks that would prevent our cron jobs from running. That issue took more than a month to resolve and required substantial effort on our end. The second time we used support was when applying SUPEE-6285. SUPEE-6285 was breaking most of our third party extensions due to a change how admin access permissions were handled. We wanted to patch our site as fast as possible but in our case the fallout from adding the patch, refactoring massive chunks of code and testing was more than a week of additional work. We asked Magento for guidelines and tools to aid the process but all they offered was a link to a 3rd party script. Considering that there are probably 1000s of EE installs, I was under the impression that the EE support would work 24/7 to develop tools to aid the refactoring. Simply linking to a untrusted source for a support script and not providing anything on their own was a massive disappointment.
All in all we came to the conclusion that EE support is not worth the licensing fees. There are several features that EE offers that CE doesn’t provide. We decided to evaluate what features we actually use and if there are plugins available that could replace them.
Lost Functionality
After some research we found that we would lose the following EE functionality when downgrading to CE:
- Full page cache
- No more website restrictions
- Store credits
- Gift registry
- Cart reminders
- Customer attributes cannot be edited in admin panel anymore
- Customer segments
- Catalog events
- Invitations
- CMS hierarchies
- Banners
- RMA
- Admin activity log
In our case we were only using 5 of these features which we replaced with the following modules:
Full page cache
Mirasvit FPC – $149
This plugin actually is much better than the EE FPC. Its comes with a spider that offers much more control, nice analytics and nice debug tools. It offers the same performance as the EE FPC.
No more website restrictions
Bubble Extensions Require Login – FREE
Store credits
Ahead Works Store Credit and Refund – $159
Gift registry
Ahead Works Gift Card / Certificate – $139
Cart reminders
We had already replaced this in our EE install with Smartfocus
All in all it cost us less than $500 to replicate the missing EE functionality. While downgrading all our existing 3rd party modules I made some interesting observations. I diffed some of the EE and CE modules and noticed that there was virtually no difference between any of them. Most of the EE modules cost around 3x what you pay for the CE version. So in the long run there is potential for savings on that front as well.
Steps
There are some tutorials out there on how to handle certain aspects of the downgrade, but no fully conclusive guide. I found these guides particularly helpful: 1, 2. I won’t do a full step by step tutorial either because I don’t think there is a one size fits all solution for a EE to CE downgrade. I will touch on some key aspects though, that should be universal for every installation.
To start we scrapped the entire code base, installed CE, reinstalled all 3rd party modules and our custom extensions, and added a new theme.
One of the issues when downgrading is that EE and CE have different password hashing mechanisms. I wrote a simple extension to handle that.
Furthermore some database updates were necessary:
Remove EE model references from db
DELETE FROM eav_attribute WHERE source_model LIKE 'enterprise%' DELETE FROM eav_attribute WHERE backend_model LIKE 'enterprise_targetrule%' DELETE FROM eav_attribute WHERE backend_model LIKE 'enterprise_giftcard%' DELETE FROM eav_attribute WHERE attribute_code IN ('gift_wrapping_available', 'gift_wrapping_price') DELETE FROM core_resource where code like 'enterprise_%'
Fix URL rewrites
$dbCon = Mage::getSingleton('core/resource')->getConnection('core_write'); $dbCon->query("UPDATE eav_attribute SET backend_table = NULL WHERE attribute_code = 'url_key'"); $dbCon->query("UPDATE catalog_product_entity_varchar new INNER JOIN catalog_product_entity_url_key old ON (new.attribute_id = 97 AND new.entity_type_id = 4 AND old.entity_id = new.entity_id) SET new.value = old.value;"); $dbCon->query("update eav_attribute set backend_model = NULL where backend_model = 'enterprise_catalog/product_attribute_backend_urlkey'"); $dbCon->query("update core_config_data set value = '.html' where path = 'catalog/seo/product_url_suffix'"); $dbCon->query("update core_config_data set value = '.html' where path = 'catalog/seo/category_url_suffix'");
Conclusion
After using EE for many years, going through a downgrade and having dealt with EE support I firmly believe that for most use cases having a EE license is not necessary. For most shops it should be significantly cheaper to run a CE install with some additional modules than to pay the annual EE license fee.
Advantages of CE
- No annual license fee
- Cheaper modules
- Significantly larger theme selection
Disadvantages
- Loss of EE support
- Additional plugins to replace EE functionality add additional complexity