Upgrading OpenCart from 2.3.0.2 to 3.0.2.0:
DO NOT try to follow the upgrade.txt file. Enough has changed internally from 2.3.x to 3.0.x that all themes, modifications, and any other extensions will need to be upgraded separately (and few have been updated to support 3.0.x yet anyway) Instead, do the following:
- Back up your OpenCart installation and your database! (The database can easily be backed up from within OpenCart)
- Document which themes, modifications, and other extensions you have installed and what their settings are (the latter can be a time consuming process, but internal setting variable names have changed, so you will lose most of your extension settings; if you can clone your installation & database so you're upgrading a copy and can compare settings, that will make it easier, but may not be feasible in all cases)
- Check to see if the themes/modifications/and extensions you use have been updated to support 3.0.x. If they haven't, be prepared to modify them yourself (if you have the ability and the source code is available) or contact their respective developers prior to upgrading (again, most have not been updated yet)
- Install a fresh copy of OpenCart 3.0.2.0, copying over your 'config.php', 'admin/config.php' and any other relevant files (preferably, modify your config files to point at a copy of your database).
- Browse to http://<yourstore.com>/install Replacing "<yourstore.com>" with your actual site (and subdirectory if applicable).
- Click "Upgrade", hopefully you won't see any errors (if you do, search here on the forums)
- If you are installing 3.0.2.0 (or 3.0.2.1beta) and want email notifications to work, you'll need to apply the SQL from the OC 3.0.2.0 Email Issues thread to add the appropriate events (hopefully newer versions will have this fixed)
- Go to Admin > Users > User Groups and Edit the "Top Adminstrator" group. Check All boxes and click Save
- Go to Admin > System Settings, Edit the settings for your store(s), and click Save (you'll probably also have to change your error log file name from 'error.txt' to 'error.log' for it to save successfully).
- Go through the your themes, modifications, and other settings, re-installing (as necessary), re-enabling, and re-applying settings as appropriate (again, most of those settings will appear to have been lost due to internal variable name changes).
- Start testing & fixing any issues.
- Follow the prompts/instructions in the admin dashboard to move your 'system' directory to a more secure location.
Upgrading Themes & Extensions from 2.3.0.2 to 3.0.2.0:
And, I also wanted to document what I found in upgrading my theme and some extensions to support 3.0.x (of course, there's now a built-in theme editor, so you may be able to just modify the default theme using that instead of upgrading a theme):
- The template format has changed from PHP-based '.tpl' files to the '.twig' format. The .tpl format is still supported, but you can't mix .tpl & .twig in the same theme or extension (and remember that missing theme files will fail over to the default theme, so that counts as being part of the same theme). The format is pretty straightforward and relatively easy to convert (and will save you keystrokes going forward)
- In your controllers, you'll need to make sure to remove any calls that include the '.tpl' extension (because it'll determine which type exists)
- In your admin controllers, you'll need to change any URLs which contain 'extensions/extensions' to 'marketplace/extensions' (the paths changed)
- In your controllers, you'll need to change any 'token' parameters to 'user_token' (the parameter name changed)
- In your controllers & templates, you'll need to change any settings variables so they're prefixed with the appropriate extension type (e.g. 'mytheme_' should become 'theme_mytheme_', 'mytotal_' should become 'total_mytotal_', etc.; this is especially important for the '_status' & '_sort_order' settings as various parts of admin interface & other functionality now rely on them being named thusly, so 'mytheme_status' must become 'theme_mytheme_status', 'mytheme_sort_order' must become 'theme_mytheme_sort_order', etc.) This is why your themes/modifications/extensions all get disabled upon upgrading from 2.3.x to 3.0.x and why all their settings appear to be lost.