A practical Magento 2 upgrade checklist

How to plan, test and deploy a Magento Open Source or Adobe Commerce upgrade without breaking checkout: preparation, commands, testing and go-live.

3 min readZenisca Engineering

Magento upgrades have a reputation for breaking things, usually because they’re rushed onto production. Upgrades themselves are routine when you follow a process. This is the checklist we use.

1. Read before you touch anything

  • Release notes for the target version, including security fixes and known issues.
  • System requirements: supported PHP, MySQL or MariaDB, OpenSearch, Composer, Redis and Varnish versions. An upgrade often means updating the server stack too.
  • Support dates: plan to stay on a release line that’s still receiving security patches.

2. Take stock of extensions and customizations

List every third-party extension and custom module, with its version. For each one, check that the vendor supports your target Magento and PHP versions. Extensions with no compatible release are the most common reason upgrades stall, so find them first.

Look for core overrides and custom code that relies on deprecated APIs. A quick search of app/code and your theme for overridden templates and plugins will show where testing needs to focus.

3. Build a staging copy of production

Upgrade a copy, never the live store. Staging should match production as closely as possible: the same code, a recent database copy (with customer data handled appropriately), media and the same server versions you’ll run after the upgrade.

Take a full backup of production code, database and media before you start, and confirm you can restore it.

4. Run the upgrade on staging

With the Composer root update plugin installed, a typical Magento Open Source upgrade looks like this. Use magento/product-enterprise-edition for Adobe Commerce, and replace <target-version> with the release you’re moving to.

bin/magento maintenance:enable

composer require-commerce magento/product-community-edition <target-version> --no-update
composer update

bin/magento setup:upgrade
bin/magento setup:di:compile
bin/magento setup:static-content:deploy -f
bin/magento indexer:reindex
bin/magento cache:flush

bin/magento maintenance:disable

Expect to update extensions and fix compatibility issues along the way. Commit the resulting composer.json and composer.lock. They’re what you’ll deploy to production.

5. Test what makes money

Automated tests help, but walk through the store as a customer and as staff:

  • Browse categories, layered navigation and search.
  • Add to cart, apply coupons, and complete checkout with every payment method you offer.
  • Check shipping rates, taxes and order confirmation emails.
  • Create, invoice, ship and refund an order in the admin.
  • Confirm cron jobs run and indexers are up to date.
  • Check integrations: ERP, accounting, shipping labels, marketing feeds.
  • Compare page speed against production.

Review var/log/system.log and var/log/exception.log after testing for errors that didn’t surface on screen.

6. Plan the go-live

  • Schedule a maintenance window at your quietest time.
  • Take a fresh backup immediately before deploying.
  • Deploy the exact code tested on staging, using the committed composer.lock.
  • Write down the rollback steps and who decides to use them.

7. Watch it after launch

For the first few days, monitor error logs, cron, order volume and payment failures. Check Google Search Console for crawl errors if URLs or templates changed.

Keep it from becoming a big project

Upgrades are painful when they’re years apart. Applying security patches as they’re released and moving between minor versions regularly keeps each step small. That’s the point of a maintenance plan.

If you’re facing an upgrade, or inherited a store that hasn’t been updated in a while, we can help.

Keep reading

Security3 min read

Patching Linux and Windows servers without the drama

A practical routine for keeping Linux and Windows servers patched: inventory, automatic security updates, reboots, test rings and the hardening steps people skip.

Want help with this?

If this article describes a problem you have, we can help. Tell us about your systems and we’ll suggest a practical next step.