Feel free to add something if I missed it
1. Goodbye tpl, Hello Twig
The most notable change in 3.0 is the new template system requirement. Template files will no longer use the old tpl format which was a mix of html and php code. Now all template files end with the ".twig" extension and will not support php. Best to compare a common tpl file from 2.x to the .twig file of the same type to see how they are different. This means that 2.x mods WILL NOT work with 3.0 if they make any changes to tpl file. They will need to be ported over to twig first.
Also note that ocmods do not currently appear to be able to alter twig files. It does appear to log the change in the ocmod log, but the actual change doesn't appear to be happening in the system/storage/modification folder. Looks like ocmods do change twigs.
2. Admin Theme/Translation Editors
A new feature in the admin now is that you can edit translations and theme files right from within the admin area. But note that the changes made here do not alter the actual files, but the edited versions of the files are instead stored as database records. Then, when the page attempts to load that file, it will override the file version with the db stored version if it exists.
On one hand, this is a great feature. Now you can easily track and even backup changes you've made when you backup the database. But on the other hand, this may cause confusion when using something like OCmod or vQmod to edit twig files. If there are any admin changed versions of the file, it will use the entire altered file content from the database, not including any OCmod/vQmod changes which are made at the file level. Not sure if ocmod edits will work with the override records, which could also complicate things a bit when debugging problems. We'll have to see how it all works out.
Translations work the same way. It loads the file into the admin area, then allows you to make a changed version of the translation and save it to the database without altering the language file. In future upgrades, your language changes will persist. I changed my "Add to Cart" button to "Click to Party". Works nice.
3. Admin Marketplace
There is a new Marketplace menu within the admin area which will eventually allow you to buy mods right from within your admin panel. The assumption is they will be installed directly but there are currently no mods available. More info on that when it starts populating.
4. Extension Installer History
Now when you use the Extension installer, it will store the history
5. Multi-lingual and Multistore SEO
Now OpenCart will support multi-lingual SEO keywords in the core per store. No longer need a mod. Note that the "url_alias" table has been renamed to "seo_url" and these new store_id and language_id columns added.
6. Language locale has returned
OpenCart 2.2 and 2.3 broke language browser detection when the use of locale was removed because it was trying to match "en_US" from the browser to "en-gb" in the language code. The locale allows you to have multiple matches for browser detection. Glad to see it has returned.
7. Admin "token" changed to "user_token"
This will no doubt annoy mod makers as now they'll need to support 2 different variables but in the admin url now it uses "user_token" for the admin token
8. Other smaller changes
Filter on admin lists has moved to the right side now. Slightly "cooler" bluish theme on the admin menus and different fonts throughout.
Most other features work the same as before. Language data is all implicitly loaded now when load->language is called. No more redundant $text_xxx = $this->language->get('text_xxx');
9. Upgrade script not complete
I've not yet tested the upgrade process but off the bat there is nothing in the new upgrade script to convert from the old "url_alias" to the new "seo_url" table. And that's just the one thing I noticed so far. There may be other issues. But things like this need to be addressed to prevent data loss. Otherwise you'll lose all your existing seo keywords which could hurt google rankings.
Other things to think about before upgrading...
Upgrades, especially from 2.x to 3.x are the equivalent of buying a new car. Your existing paint job, wheels, mods, etc are not carried over to your new car. They have to be rebuilt. Keep this in mind before you think about upgrading. It is also recommended that you use an upgrade service by someone who is familiar with the upgrade process as they can save you time and money in the long run. But they also need time to try the upgrade with the latest version and see what the process needs to be.
- Never upgrade on Day 1 release. Give it at least 2 weeks for people to find bugs and any nuances
- Don't upgrade if your store is currently successful. There is no point in upgrading just to upgrade. Remember you are running a store to make money, not to be a bleeding edge cart tester. If you crash your store because you chose to upgrade too soon without planning, then you are losing money.
- Most 3rd party mods will need to be updated and that takes weeks to months. Depending on the severity of the changes, Many mods may need to be rewritten from scratch so there may be new fees associated with updated versions.
- Upgrades to OpenCart, or most other platforms, are not to be taken lightly. It's not like getting the latest updates for Windows.
- Any modifications, themes, or addons you had on your old cart will be gone or at least disabled and you are basically building it again from scratch. Your customer, product, and order data can all be preserved, but most themes and 3rd party addons will either need to be reinstalled (when and if there is a compatible version made), and many mods that do not have updates will be lost.