General hints for this package
With the upcoming release we decided to focus feature-wise on Enterprise Edition to better respond to new market developments and our customers’ needs. As this gives a whole new direction to the product we proudly call this new generation of OXID eShop 5.0.
Professional and Community Edition, in release 4.7, benefit from essential changes in the software (OXID framework and core), too.
Further releases will contain features that are particularly helpful to smaller e-commerce setups. Of course we will continue to fully embrace our open source strategy and go on working on one single code basis.
See http://wiki.oxidforge.org/Tutorials/Update_from_4.6.5_to_4.7.0_or_5.0.0 – it contains the description of update procedure from OXID eShop version 4.6.5 to 4.7.0 or 5.0.0.
Please note: updates to OXID eShop version 4.7 (CE, PE) and 5.0 (EE) can only be provided from former version 4.6.5. In other words: you have to update to OXID eShop version 4.6.5 before you can update to 4.7./5.0. All update packages can be found on this page: http://wiki.oxidforge.org/Cumulative_Packages
IMPORTANT: Don’t update the productive database. Test the new shop with a backup copy of your database.
Beginning with this release we removed Basic theme and will not maintained it in th future. OXID eShop 4.7/5.0 will only contain demo templates in Azure theme. However, all functionality contained in the Basic Theme will still be there and working.
Template changes have also been made with regard to a number of new regulations for online shops issued by the German and EU law to prevent frauds and scams on the internet. Commonly known as Checkout Compliancy (AKA as “Button-Solution”), these regulations are active since August 1st 2012. The demo templates in OXID eShop 4.7/5.0 will have all necessary changes implemented to make your shop compliant with German law.
On top of that we made some smaller changes in the templating system, a lot of deprecated stuff was removed. Be sure to upate your templates to take full advantage of alle the changes.
If your customized template is based on the Basic theme and you want to update to 4.7/5.0 anyway, please read the tutorial “Use basic theme from version 4.7 and 5.0 on”.
Please find a list of fixed bugs for this and all intermediate releases (beta, beta2, beta3, RC, RC2) here in changelog:
- bugtracker changelog for final release
- bugtracker changelog for RC2
- bugtracker changelog for RC1
- bugtracker changelog for beta3
- bugtracker changelog for beta2
- bugtracker changelog for beta1
We added a new component type for page construction: widgets. Please find more information about it in this tutorial:
All database tables have been extended with the field “oxtimestamp”. We have added new functionalities, which on “INSERT” sets the current date and time and on “UPDATE” sets the current update time. Now you can identify newly inserted or freshly inserted date much easier. This comes in handy when synchronizing with third party systems etc.
EU Cookie Guidelines
The above mentioned Checkout Compliancy (“Button-Solution”) requires certain product attributes to be displayed directly during the checkout process (Fore more information, please see the German blogpost:
In the new version of OXID eShop, these attributes can be set directly via the admin panel.
SEO transliteration array from lang.php file was moved to new file translit_lang.php. Also, the appropriate entry in admin -> settings -> core settings -> SEO was removed.
Bootstrap Process Refactored
To make OXID eShop even faster we took our time to refactor the bootstrap process. The framework now boots in a more efficient order. A modular architecture makes sure that only the required parts of the framework are loaded. Read more about it:
Multilang for version checker
Admin -> Master settings -> Core settings -> License formerly fetched German results from admin.oxid-esales.com. This behaviour was changed to multi-language, depending on the language of your admin panel. If you are, for example, logged in in German the result of the version checker will be displayed in German. The default language will be English. Please note, that this behaviour is just intended to work with the languages supported by default in OXID eShop, presently English and German.
Caching (Enterprise Edition)
Master / Slave (Enterprise Edition)
External file for own config options
Important information for developers
- Removed all deprecated function, variables, and functionality marked in previous versions.
- Removed Basic theme (see above).
- We will not continue to support Zend Platform any longer, as this product is discontinued by Zend. We will continue our good relationship with Zend and support such products as Zend Server.
The architecture of OXID eShop is constantly growing, so the structure of the application needs constant updates to make it more clear and understandable. Please find below the major changes in structure and architecture:
- Separate application code from systemic components – framework.
- Change naming of application component in MVC style: Use names such as model, controller etc.
- Separate components.
- Widgets – a new type of component that represents the business logic visualization. Can be repeated in multiple pages.
Former file structure:
File structure for new major version:
Main idea: Separate systemic components, helpers from applications. The /eshop/core folder contains framework component for db, file, session etc. handling and /eshop/application contains all files that represent eShop as application: models, controllers etc.
/eshop/core - OXID eShop framework directory
/eshop/application - application directory:
/models - contains business logic models
/controllers - contains page controllers
/views - contain templates
/components - folder for components that can be reused in multiple pages.
/translations - generic shop language translations
/eshop/modules - folder for modules.
Moved and created files
- models: Files related with business logic moved from old /eshop/core folder moved to /eshop/application/models, others remain as framework components.
- controllers: All files from old /eshop/view folder moved to /eshop/application/controllers, except: oxview.php, oxviewconfig.php, oxshopcontrol.php moved to /eshop/core; and components: oxcmp_*.php files from old /eshop/views folder moved to /eshop/application/components
- Templates moved from /eshop/out to eshop/application/views
- Admin controllers moved from /eshop/admin to eshop/application/controllers/admin
- Generic language constant moved eshop/out/[language] to eshop/application/translations/[laguage]
Module handler changes
- Introducing module events, executed on module activation and deactivation now can be defined in metadata:
'events' => array(
‘onActivate’ => ‘myModuleEvents::onActivate’, ‘onDeactivate’ => ‘myModuleEvents::onDeactivate’ )
- The class “myModuleEvents” has to be defined in metadata, under ‘files’ section. Currently two events, “onActivate” and “onDeactivate” are supported, later support for more events will be added.
- All modules using events should have metadata version defined as 1.1 in metadata.php file.
<span class="re0">$sMetadataVersion</span> <span class="sy0">=</span> <span class="st0">'1.1'</span><span class="sy0">;</span>
- As the structure of the shop core was changed, we also changed the structure according to it in the modules directory.
- From version 4.7/5.0 on, block template file path should be defined using path from module root directory (where metadata.php file exists), not just plane filename. E.g. “checkoutUserForm.tpl” should be changed to “views/blocks/checkoutUserForm.tpl”. This allows to keep blocks template files in any module directory. Old way (only block template filename) is supported, but deprecated.
- From version 4.7/5.0 on, translation files will be located in different directories than before, now according to the shop’s folder structure. The former structure will be supported for a while.
- The frontend translation files will be moved from modules/modulepath/out/lang to modules/modulepath/translations/;
- The translation files for the admin panel will be moved from modules/modulepath/out/admin/ to modules/modulepath/views/admin/.
- Module settings can now be edited even if the module is not active