OXID eShop version 4.7.0 (CE + PE) & 5.0.0 (EE)

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.

Installation

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.

Templates

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”.

Fixed Bugs

Please find a list of fixed bugs for this and all intermediate releases (beta, beta2, beta3, RC, RC2) here in changelog:

https://bugs.oxid-esales.com/changelog_page.php

In particular:

New Features

Widgets

We added a new component type for page construction: widgets. Please find more information about it in this tutorial:
http://wiki.oxidforge.org/Tutorials/widgets_from_4.7_5.0

Timestamp

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

In 2009 the European Union issued guidelines how to notify website users about cookies. The user must be notified at least once that the site he is visiting uses cookies. He should be given an information on how to opt out if he does not feel safe receiving cookies from the site. The new OXID eShop provides this functionality out of the box, it can be switched on and off in the admin panel.

Attributes

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:
http://blog.oxid-esales.com/2012/07/leitfaden-zur-button-losung/).

In the new version of OXID eShop, these attributes can be set directly via the admin panel.

SEO transliterations

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:
http://wiki.oxidforge.org/Tutorials/bootstrap_process_refactored_in_4.7_5.0

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)

In order to enhance the performance of OXID eShop and smoothen the effect of load peaks in high load scenarios we will implement a new caching system in version 5.0. The new caching system will consist of three main components:
1. Cache Manager
2. Varnish Reverse Proxy
3. Memcached

Master / Slave (Enterprise Edition)

In order to enhance the scalability of OXID eShop to multiple database servers, eShop 5.0 includes the capacity to employ a Master / Slave Architecture.

External file for own config options

Config options defined in cust_config.inc.php file (which must be created in shop source directory) now is being loaded after the main config.inc.php.

Important information for developers

Removed stuff

  • Removed all deprecated function, variables, and functionality marked in previous versions.
    http://wiki.oxidforge.org/Tutorials/Removed_deprecated_source
  • 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.

New Structure

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.

Moved and created files

  1. models: Files related with business logic moved from old /eshop/core folder moved to /eshop/application/models, others remain as framework components.
  2. 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
  3. Templates moved from /eshop/out to eshop/application/views
  4. Admin controllers moved from /eshop/admin to eshop/application/controllers/admin
  5. 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:

‘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.
  • 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