Upgrade Magento 2.3 to 2.4
If you’re a current Magento customer, you’ve probably seen information recently about Magento 2.3 nearing End-of-Life (EOL) in September 2022. This EOL status applies to all 2.3.x versions of Magento Open Source, Magento Commerce, and Magento Commerce Cloud.
What does EOL really mean? Beginning in September, Magento will no longer provide product enhancements and support for 2.3. Additionally, security patches will no longer be developed by the Magento team.
Why should merchants be worried? While Magento 2.3 will continue to operate past September 2022, the lack of security patches could put merchants that fail to upgrade at risk as new 2.3 vulnerabilities are discovered. It’s possible that the open-source community may provide patches after the EOL date, but these would be unofficial and wouldn’t be supported by Adobe.
The good news is that we’re a few months away from EOL, so there’s time to formulate a game plan for getting there.
In this post, we’ll give a quick overview of the upgrade process, the level of effort you might expect, and some of the platform benefits available in Magento 2.4.
Note: as of the writing of this post, Magento’s latest version is 2.4.3-p1, which is the basis for the features described. Please check Magento’s set of 2.4.x release notes to determine which release contains those features that you need.
The Magento Upgrade Process
Unfortunately, upgrading to a new minor version of Magento is rarely as simple as running a script and calling it a day. Upgrades like this take research, planning, doing, fixing, testing, and launching. As such, it’s incredibly important to know what you’re getting yourself into and leaving yourself enough time to ensure that things are working as expected.
We’ve put together a list of the typical steps involved in upgrading Magento 2.4. Please note: you may have more or less steps depending on a) the complexity of your Magento implementation, b) the version of Magento you’re currently running, and c) your budget and resource availability.
- First, read Adobe’s very helpful Magento 2.4 Upgrade Guide.
- Review your technical stack to ensure that you’re running versions supported in Magento 2.4 (e.g. PHP, Elasticsearch, Redis, etc.). If you’re not, you’ll need to upgrade those components before Magento (note: we’re only covering upgrading Magento in this post).
- Take an inventory of any modules you’re using. Then, determine if there are newer versions of those modules that officially work with Magento 2.4.
- Even if a module doesn’t “officially” work with 2.4, it may still be safe to run. In this case, you’ll need to fully regression test the functionality of that module once you’ve upgraded.
- If you haven’t already done so, document any customizations you’ve made (either to OOTB Magento components, modules you’re using, or your own custom-built modules). There’s a good chance you’ll need to modify some of this code to work with 2.4, so it’s important to know what will be impacted and what you’ll need to test.
- Read up on Magento’s Upgrade Compatibility Tool to determine if it would be a good fit for your project. The tool is easy enough to spin up and execute, so you should be able to quickly have a general understanding of how much work might be involved in upgrading your project.
- Note: the tool isn’t perfect and can sometimes show false positives, so don’t rely on it entirely for your upgrade. Use it as guidance on your focus areas but do make sure that you have qualified developers dig into your customizations to truly understand what needs to change to upgrade to 2.4.
- Run through a few dry runs of the upgrade in a local environment. To do this, pull down your project’s latest code (if you’re using version control, create a branch, and work from that), pull down a copy of your production database and anonymize it, then perform the upgrade using Composer.
- Be sure to update any Magento modules you’re using as part of this process.
- Once you perform your initial upgrade locally, you should have a good understanding of which components were fine and which need attention. You’ll need to review your initial plan and adjust accordingly.
- Continue upgrading/testing locally as you refactor any code.
- Once everything looks good locally, deploy the upgraded code into an integration environment, and get your QA team testing.
- Upgrading a production environment will require site downtime so be sure to have a good understanding of the time it took to run Magento 2.4’s upgrade scripts in your lower environments (assuming you used anonymized production data as the starting point) and plan your maintenance window accordingly (and, of course, take backups of everything before doing any of this).
Level of Effort
We’ve been through several Magento 2.3->2.4 upgrades with our clients. Some of those projects had very few customizations while others had very complex customizations. For simpler projects, an upgrade can take a few days, depending on how much testing you feel is necessary. Complex projects require at least a week of upgrading/code refactoring and then a few days for QA and bug fixing. If you have integrations that rely on your Magento customizations, you’ll want to add in even more QA time.
Benefits of Upgrading to Magento 2.4.x
Magento is known for making “minor” releases anything but minor. Magento 2.4 is no exception as it introduces significant changes/improvements for users. While upgrading to Magento 2.4 may involve a little pain you’re likely to get some tangible benefits, including:
- Security Updates – The Magento development team has been vigilant about ensuring that Magento is as secure as possible. For details on all the security improvements, refer to Adobe’s release notes for Magento 2.4 – https://devdocs.magento.com/guides/v2.4/release-notes/bk-release-notes.html.
- Performance Improvements – Magento has made significant performance gains in core product components like checkout in version 2.4. Additionally, Magento now supports more recent versions of technical stack components like Elasticsearch and MySQL, which will help stores operate quicker and more efficiently. For specifics regarding these improvements, refer to the Magento 2.4 release notes – https://devdocs.magento.com/guides/v2.4/release-notes/bk-release-notes.html.
- Admin Security – In version 2.4, Magento is now requiring that two-factor authentication (2FA) be enabled in the admin UI. This is an added step to ensure that unauthorized users cannot get into your Magento backend.
- Support for Elasticsearch 7.9.x (7.4x and 7.6.x are still supported).
- Note: MySQL is no longer an option for Magento search in 2.4.x. Plan accordingly.
- Support for MySQL 8.x.
- Support for Redis 6.x (5.x is still supported).
- Improved media gallery performance and functionality along with tighter integration to Adobe Stock.
- B2B Order Approval Workflows – New to the B2B edition, workflows allow companies purchasing under an account to approve/reject orders from their buyers, all without the need for merchant involvement.
- Live Search (powered by Adobe Sensei) – Serves up search results based on machine learning and AI so customers are getting the most relevant results.
- Page Builder – The very easy to use content authoring tool is now available for Magento Open Source (was previously only offered for Adobe Commerce merchants).
- Support for Composer 2.x for installation of code dependencies.
Wrapping Up
Staying up-to-date is important but not always easy. Be sure to understand what’s involved and plan accordingly before starting an upgrade. At a minimum, make sure your Magento store is patched with the latest security updates for your version.
Upgrading can be tricky and we don’t suggest going it alone. If you’re currently running Magento 2.3 and are unsure about what to do next, or if you’ve started an upgrade to 2.4 and are now stuck, let us know. We’d love to chat to see how we can help.