Downgrading from Magento Enterprise Edition

Downgrading from Magento Enterprise Edition

By Brad Leslie, Certified Magento Developer at InteractOne

Magento Enterprise Edition (EE) is the premium version of Magento’s eCommerce platform and currently has an $18,000/year price tag. While EE is typically recommended for shops that have a high sales volume and/or a large product catalog, that price tag can become a burden quickly given the right series of events.

If EE has to be abandoned, that doesn’t mean that Magento has to be also. Magento’s open source Community Edition (CE) is completely free. CE is actually what EE is built on top of, so with the exception of some more powerful features like customer segmentation and automated admin processes, CE and EE are virtually the same.

Note: Before beginning the downgrade, evaluate which EE features are being used within the current installation and determine whether they’re necessary. If so, there may be a CE extension available. This is also a good time to clean up the web root, remove any unused or unwanted extensions and make sure that the install is in good shape.

The biggest problem with downgrading from EE to CE is derived from the differences in password hashing. While there are a few ways to deal with this, the easiest is to create a custom module that contains the code in app/code/core/Enterprise/Pci/Model/Encryption.php and tell Magento to use that for the encryption model. Since the password hash is different between CE and EE, skipping this step means that all passwords (admin and otherwise) must be reset. While there are more graceful ways to handle resetting every customer’s password, it is rarely a viable option for shop owners.

With the encryption model taken care of, it’s safe to delete all references to EE from the file system. This typically includes:

  • app/etc/enterprise.xml
  • app/etc/modules/Enterprise_*.xml
  • app/code/core/Enterprise
  • app/design/frontend/enterprise
  • app/design/adminhtml/default/default/layout/enterprise
  • app/design/adminhtml/default/default/template/enterprise
  • js/enterprise
  • errors/enterprise
  • skin/frontend/enterprise
  • skin/adminhtml/default/enterprise
  • *

At this point, all of the core EE references have been eliminated from the file system. The remaining file system shouldn’t have any other references to EE, but that should be double checked. Any EE-specific extensions that were installed will need to be evaluated and replaced, if necessary.

Now that the file system is cleansed of all references to EE, the only issues remain in the database. Specifically, EE attributes and URL keys. In regards to EE-specific attributes, there are a couple of options. The simplest being to delete all of them, which will work, but also eliminates the ability to access that data. Alternatively, EE-specific attributes could be converted to CE attributes using custom source and / or backend models. This allows the site to continue using those attributes down the line without the EE license, which can be useful for reporting, customer service, etc.

URL keys in EE use a different backend table, so the ‘url_key’ attribute needs to be updated to use the standard table. Once that has been completed, it’s possible that many URLs within the site no longer work. The reason being that those URLs have rewrites referencing the EE backend table. Clearing out the ‘core_url_rewrite’ table and copying the URL keys will fix this issue.

Downgrading from EE to CE is sometimes necessary, but doesn’t mean that sacrifices have to be made. There are a lot of successful CE extensions that emulate EE features. Many of which are paid extensions, but they directly impact the user experience and, ultimately, conversions.

If you need to downgrade from EE to CC, InteractOne can help. Contact us today!