Check compatibility and dependencies
Record the exact versions of OpenCart, PHP, theme and related modules. Read vendor changes, especially database and license migration requirements. A package for another major version of OpenCart should not be checked on the live store. Save the current installation file and list of local fixes.
Continue with: Website backups: prove that recovery works.
Update the isolated copy
Create a consistent copy of the files and database, disable real payments, emails and order exports. Follow the upgrade procedure specific to your version and extension. Check modifiers, events, permissions, and caches. The absence of an error in the administrator does not yet prove that the catalog and checkout work correctly.
Continue with: OpenCart checkout errors: a diagnostic sequence.
Test dependent workflows
For the payment module, test success, failure and repeat callback; for delivery - different addresses; for CRM — order contents and duplicates. Before publishing, determine the time of work, the responsible person and the rollback condition. If new orders appear during this time, restoring the old database requires a separate plan to save this data.
Do I need to update all modules at the same time?
It is usually best to change dependent components in small, agreed upon groups. This makes it easier to establish the cause of the regression and safely return to the previous state.