NAVI versions

OXID eShop version 4.10.3 (CE + PE) & 5.3.3 (EE)

  • fixed bug #6568 (PAYONE)
  • PHPMailer library updated to v5.2.22
  • Visual CMS module updated to v1.0.2 (PE/EE)
  • PAYONE module updated to v2.1.5_5_6406

System requirements and installation

  • tested on PHP 5.3, 5.4, 5.5 and 5.6,
  • compatible now with MySQL 5.7 (please see this blog post if you run MySQL 5.6 and OXID eShop EE),
  • adjusted to work with Apache 2.2 and 2.4

Please see the update instructions  


  • Due to a security issue, PHPMailer was updated to v5.2.22.  
  • Due to a security issue, the Visual CMS module was updated to v1.0.2 (PE/EE).
  • PSP module PAYONE was updated to v2.1.5_5_6406.  

Fixed bugs

Please find a list of all fixed bugs for this patch release in the bugtrack changelog  

GUI changes

Frontend changes

  • No template changes in storefront in this patch release

Admin view changes

  • No admin view changes in this patch release

Language files

  • No language constants changed in this patch release

More resources

  • Download full package  
  • See this package on GitHub  
  • See database schema  
  • Source code documentation  
  • Compare with former version  

OXID eShop v6.0.0 Beta2 is published

A few days ago, we made OXID eShop v6.0.0-beta.2 publicly available.

Here is what we fixed in this version:

  • Issues #6557 and #6558 – A wrong file was taken by the autoloader on Windows host machines:
    The autoloader was scanning the Model/ and Controller/ directories for necessary files. On Windows host machines, all the file names were interpreted as lowercase, and as before some files were only different by case sensitivity (for example ./Application/Model/Payment.php and ./Application/Controller/payment.php), this led to a crash.
  • Issue #6547 – A namespaced class was created without adding a relation to the original class. For example: oxNew(‘oxpayment’) was not an instance of oxpayment, it was instance of OxidEsales\EshopCommunity\Application\Model\Payment instead. As of now, oxpayment is created as a parent of OxidEsales\EshopCommunity\Application\Model\Payment.
  • Issue #6543 – Two delete buttons were shown in the shipping methods section of the administration panel.
  • OXID eShop v6.0.0-beta.1 had some issues in the setup process when using demo data and regenerating database views. This issue is resolved in OXID eShop v6.0.0-beta.2.

If you run the installation like described in the blog post “OXID eShop v6.0.0 Beta: Installation” you will now automatically install the new beta version instead of version 1.

[Update] For updating from OXID eShop v6.0.0 beta.1 to beta.2, edit the file oxid_eshop_project/composer.json and replace “^v6.0-beta.1” with “^v6.0-beta.2”. Then run



OXID eShop v6.0.0 Beta1 released

Today we are very happy and proud to announce the release of the OXID eShop V6.0.0 Beta1.

Thanks to all who made this release possible, both at OXID and to all of you who contributed, followed our progress and gave us valuable feedback.

The official OXID eSales statement regarding the release may be found on our corporate website.

We made some major architectural and technological changes in the V6, while at the same time thinking about backwards compatibility, increasing framework flexibility and maintaining stability. Just to name a few of the highlights: The V6 uses Composer for all dependency handling, Namespaces, Doctrine DBAL, InnoDB in all DB Tables and no longer encodes the PE and EE Editions.

The result is now open for review by you all and we are very much looking forward to your feedback. During the beta phase, the focus for us lies in fine tuning the V6 in response to your feedback and in giving you the opportunity of porting your modules early to the V6.

In order to help you get started, we put together some information:

Further blog posts will follow in the near future – stay tuned!

In order to tell us what you think, you might send us pull requests ( or just send an email to our community manager

OXID eShop v6.0.0 Beta1: Overview of Changes


The goal of this beta1 release is to give module and theme developers the possibility to port their products to the new OXID eShop core.

The OXID eShop V6.0 Beta1 release includes OXID eShop core (CE/PE/EE), the Flow theme and the Azure theme. It does not contain any other modules like PayPal or Payone.

The target group of the release is developers (software engineers, software architects and the like) of the community and developers of the OXID partners. The OXID eShop V6.0 Beta1 release is not ready for production.


The OXID eShop installation process was changed. Information on the installation procedure can be found here.

The installation will be done via Composer, we will not ship any packages (ZIP files) anymore. In order to access the PE/EE repositories for Composer, we set up a so-called SATIS server. Partners will have to provide login credentials to access the PE/EE repositories.

The code for PE and EE will not be encrypted any more. The PE and EE sources will be found in the vendor/oxid-esales directory.

System Requirements changes

We noticed that hosters tend to upgrade their servers to new stable versions much earlier than they did in the past. The advantages for applications running on those servers are many. New versions tend to be faster, better and the support period for bug fixes and security upgrades increases. The OXID eShop V6 follows this trend. The most important changes:

  • PHP 5.6 or 7.0
  • MySQL 5.5 or 5.7. We do not recommend to use MySQL 5.6 because we found some issues with EE. See this blog post  for details.

No ZendLoader is required as OXID eShop V6 will no longer be encoded.

For detailed information regarding the systems requirements, see here.

No Encoding OXID eShop PE and EE

From OXID eShop Version 6, the OXID eShop will no longer be encoded.


Namespaces were introduced into the OXID eShop. The CE, PE and EE Editions hereby each have their own base namespace.

Virtual namespace classmap

VirtualNamespaceClassMap.php has been introduced for OXID eShop classes. Using a virtual namespaced class allows writing code only once for all editions. At runtime it is checked, which eShop Edition is currently active and the correct eShop class for the edition is instantiated.

This means, that from now on it is possible for developers to use/reference the correct edition of an OXID eShop class without specifying the edition. For example the virtual namespace class ‘OxidEsales\Eshop\Application\Model\Article’ is automatically mapped (VirtualNamespaceClassMap) to the correct edition’s class.

Backward Compatibility

For backwards compatibility we still support use of the deprecated oxarticle and similar classes.

The oxSomething classes that can be extended by a module are mapped (classMap) to the related virtual namespace classes.

Using Namespaces in Modules

A module can use its own custom namespace(s). In order to do this, the namespace just needs to be registered, no module autoloader is required,

A module may of course also reference the OXID eShop namespaces, the namespaces of other modules and the namespaces of external libraries.

Adapting Modules to Namespaces

When adapting modules to namespaces, the classMap.php and the VirtualNamespaceClassMap.php can be consulted to identify the correct namespaced OXID eShop class to be used to replace the reference to the old oxSomething classes.

Dependency Handling with Composer

Composer is the de facto standard for handling dependencies in PHP. The OXID eShop V6 uses Composer to handle all its dependencies. Hereby the term compilation is used to mean the set of all components included in an OXID eShop release. Themes, modules, demo data, CE Core, PE Core, EE Core etc. are now each separate components with their own version number. These components all must adher to strict semantic versioning. The compilation is defined by its metapackage, which lists all components and their version numbers, which are included in an OXID eShop release.

UTF-8 Only

The OXID eShop V6 will be UTF-8 only in code, data and DB. This improves support for internationalisation. In order to achieve this, some further changes will be made for the final release. In order to support upgrade to the V6, a conversion script for OXID eShop DB tables will be provided by OXID.

Unify Code and DB for all Editions

The code and DB was unified between editions. Hereby: the EE code builds on the PE code which in turn builds on the CE code – similary for tables, fields and field definitions.

The advantages are that module writers no longer need to differentiate between editions when writing code for all editions and that upgrades from CE to PE to EE are now much simpler.

InnoDB in all OXID eShop Tables

InnoDB offers many operational and application advantages such as row locking instead of table locking for writes, improved performance or better replication.

All remaining OXID eShop MyISAM tables have been converted to InnoDB tables.

Doctrine DBAL as Database Access Layer

ADOdb lite has been replaced by Doctrine DBAL as database access layer, the de facto standard in PHP.

Upgrade from CE to PE to EE

The possibility was added to easily upgrade the shop from CE to PE/EE via migrations script.
Be aware that the migration scripts drop some tables/fields. Detailed information will follow in a separate post.


The OXID eShop V6.0 Beta1 release comes with Azure and Flow theme. Flow theme has some bug fixes regarding to the flow theme version used for OXID eShop 5.3. All V6.0. template changes were introduced in parallel for Azure and Flow. Keep in mind that Flow is now the default theme and that at some point in the future, Azure will be removed and no longer be supported.

Features & Improvements

  • Varnish cache flush only for active sub-shop
    By default the eShop flushes the cache independently from the host so that the
    cache will always be flushed from all sub-shops even if they have different domains.
    Now we added the possibility to clean the cache only for the active sub-shop by setting the
    following config option:  $this->reverseProxyFlushStrategy = 1 in
    Important: This feature shouldn’t be used when sub-shops use inherited products.
  • Multiple theme support for modules: New feature
    The possibility for a module to support several themes was introduced.
  • Theme settings: New feature
    With pull request #381  the new feature – “Theme Settings” was added. File theme.php now supports a section ‘settings’ where settings can be added analog to how it is done in the module’s metadata.php file.
  • “Newsletters” in EE: New feature
    Newsletters feature was moved from CE and PE to EE. To do this new table oxnewsletter was introduced.
  • Hidden articles: New feature
    With pull request #259 the new feature “Hidden Articles” was added. Now by checking the “hidden article” checkbox in the article edit page the article will not be displayed in frontend categories, but still will be available via direct link for search engines.
  • Explicit sorting for discounts: New feature
    There is a new field OXSORT in the table oxdiscounts, which defines the order in which discounts are applied to products and the basket. The order matters in case of combining absolute and percentage discounts on a product resp. in the basket. Before introducing this feature the order was defined implicitly, now the shop administrators can define the order. The eShop updater will migrate existing discounts by adding an explicit sorting. Existing discounts will have the same order after migration as before.
  • Threshold for sending offline warning e-mails: New feature
    An offline warning was sent to the eShop admin every time the maintenance page is shown. As there is an auto refresh of 60 seconds now on the maintenance page, this e-mail would have been sent every 60 seconds. A threshold has been introduced and the offline warning is not re-sent before this threshold is reached.
    There is a new config option $this->offlineWarningInterval = 60 * 5 in which defines the time interval in seconds warnings are sent during the shop is offline. Defaults to 5 minutes.

Removed Functionality

  • The possibility to save Sessions to the eShop application database was removed.
    This was a feature of ADOdb Lite which was replaced by Doctrine DBAL. A blog post about session handling and storage in OXID eShop V6.0 and can be found on oxidforge.
  • The possibility to log MySQL queries was removed. There were some issues with this feature (such as performance).  As the functionality was based on ADOdb Lite, which was replaced by Doctrine DBAL, it was not reimplemented for now.
  • OXID eShop is now installed in UTF8 mode. The possibility to chose a different ISO mode was removed from the setup wizard.
  • composer.json has been removed from /modules directory. The call to registerModuleDependenciesAutoload method and the method itself has been removed as well. From now on if developers want some kind of run-time dependencies they must update /composer.json instead.
  • The DynPages are not available for the OXID eShop V6.0 Beta1 anymore.
  • Shop features that were extracted into contrib modules
    While unifying the OXID eShop Editions, we encapsulated functionality that was scattered in different places in the code and sometimes differed between editions and moved this functionality to modules. The functionality of these modules is, in our evaluation, not often used or there are already good extensions in existence that offer similar solutions. These extracted modules are contrib modules and underly a community support process.
    With the OXID eShop 6.0 stable release latest, the github repositories holding those features will be made public so that the OXID community can contribute (hence the name contrib module) with feedback and improvements.

    • Lexware export
    • Order administration
    • Shop Statistics
    • Captcha
    • Guestbook
    • Facebook
    • Tags
    • Invoicepdf
    • Trusted shops – more information on this trusted shops page

New File 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:

The goal was to have independent components inside the eShop managed by composer. Those components are now located inside the vendor directory. We renamed/uppercased some directory names to make use of PSR-4 autoloading support in composer.

Database changes

  • The storage engine for all tables was switched from MyISAM to InnoDB.
    Please keep in mind that with InnoDB as storage engine, data fetched from the DB without explicit order by parameter might come in a different order than with the former storage Engine MyISAM. Thus it is possible, that data will now be fetched from Database in a different order than it was inserted. This can affect the order data is displayed in the shop frontend. See for example stackoverflow.
  • The following tables do not exist any more (see section about contrib modules for details)
    • oxcaptcha
    • oxgbentries
    • oxlogs
    • oxstatistics
  • New table in Enterprise Edition:
    • oxnewsletter
  • All shopids are purely numeric from now on. Most of the tables in OXID eShop CE/PE editions had field OXSHOPID with entry ‘oxbaseshop’. Now we changed it to int(11) with default value 1.
  • Some fields were removed that belonged to features that were moved to contrib modules.
  • Very few new fields were introduced:
    • Column OXSORT was added to table oxdiscounts.
    • Column OXTHEME was added to table oxtplblocks.
    • Column OXHIDDEN was added to table oxarticles.
    • Column OXBUNDLEID added to table oxarticles (EE only) .

Updated libraries

  • Smarty (2.6.28 => 2.6.29)
  • PHPMailer (5.0.2 => 5.2.14)
  • ADOdb Lite was replaced by Doctrine DBAL

All changes are visible in the composer.json file.

PHP7 support

As PHP7 has removed mysql extension, usages had to be changed.

In shop setup PDO driver were used instead, and thus PDO and PDO-mysql extensions became as a requirement to the shop. This requirement is not noted anywhere yet and might change until release.

New config options

  • reverseProxyFlushStrategy – if it is set to 1, then cache is flushed only on active sub-shop.
  • dbPort – The port used for the connection to the database. Default is port 3306.
  • dbType – This config option is still in the but is not really configurable with the eShop 6.0 any more. With eShop 6.0 and Doctrine DBAL, the only possible value is pdo_mysql. With eShop 5.x, the value mysql was used by default.
  • offlineWarningInterval – defines the time interval in seconds warnings are sent while the shop is offline.

Fixed Bugs

See here  for all bugs fixed in the OXID eShop 6.0.0 Beta1.

Important information for developers

  • Details about changes in code, templates, translations improved methods can be found on the changelog details page.
  • (Virtual) namespaces were introduced, see above in section about new features. Detailed information will be provided soon.
  • The database abstraction layer was changed from ADOdb Lite to Doctrine DBAL leading to slight changes in behavior. Detailed information will be provided soon.


OXID eShop v6.0.0 Beta1: Detailed Code Changelog


With the namespaces we introduced new namespaced classes for all former oxSomething classes. The old oxSomething classes have all been marked as deprecated as of V6.0 (@deprecated on b-dev), have no more content and extend their new namespaced analogon.

For backwards compatibility, classMap.php has been introduced, which ensures that the usage of all oxSomething classes in modules still functions in modules.

VirtualNamespaceClassMap.php has been introduced for OXID eShop classes. Using a virtual namespaced class allows writing code only once for all editions. At runtime it is checked, which eShop Edition is currently active and the correct eShop class for the edition is instantiated.

When adapting modules to namespaces, the classMap.php and the VirtualNamespaceClassMap.php can be consulted to identify the correct namespaced OXID eShop class to be used to replace the reference to the old oxSomething classes.

Classes that were marked as deprecated since eShop version 5.3 (@deprecated since v5.3.0) have been removed, like for example class oxLegacyDB.

New classes/methods introduced

Due to the unification of code between all editions and the introduction of namespaces, we needed to touch each class. The following therefore lists only those methods and classes that changed their behaviour.

Classes that were marked as deprecated since eShop version 5.3 (@deprecated since v5.3.0) have been removed, like for example class oxLegacyDB.

Some new functions were introduced:

– OxidEsales\Eshop\Application\Model\Article::setAmountPriceList() – (oxArticle::setAmountPriceList())
– OxidEsales\Eshop\Application\Model\Article::getAmountPriceList() – (oxArticle::getAmountPriceList())
– OxidEsales\Eshop\Core\DatabaseProvider::setDbObject() (oxDb::setDbObject())
– OxidEsales\Eshop\Core\DatabaseProvider::getDbObject() (oxDb::getDbObject())
– OxidEsales\Eshop\Core\UtilsUrl::getActiveShopHost() – (oxUtilsUrl::getActiveShopHost())
– OxidEsales\Eshop\Core\UtilsUrl::extractHost() – (oxUtilsUrl::extractHost())
– OxidEsales\Eshop\Core\UtilsUrl::getActiveShopUrlPath() – (oxUtilsUrl::getActiveShopUrlPath())
– OxidEsales\Eshop\Core\UtilsUrl::extractUrlPath() – (oxUtilsUrl::extractUrlPath())
– OxidEsales\Eshop\Core\Config::getRequestEscapedParameter() – (oxConfig::getRequestEscapedParameter())
– OxidEsales\Eshop\Core\Config::getRequestRawParameter() – (oxConfig::getRequestRawParameter())
– OxidEsales\Eshop\Core\GenericImport\GenericImport – Changes ERP classes used for generic import.
– OxidEsales\Eshop\Core\GenericImport\ImportObject\* – Changes ERP type objects used for generic import.
– OxidEsales\Eshop\Application\Model\BasketItem::setBasketItemKey() – (oxBasketItem::setBasketItemKey())
– OxidEsales\Eshop\Application\Model\BasketItem::getBasketItemKey() – (oxBasketItem::getBasketItemKey())
– OxidEsales\Eshop\Core\Utils::arrayStringSearch() – (oxUtils::arrayStringSearch())

New classes

– All classes in namespace OxidEsales\Eshop\Core\Database\Adapter – those classes integrate Doctrine DBAL
– All classes in namespace OxidEsales\Eshop\Core\Edition – those classes handle the shop editions
– TableViewNameGenerator – responsible for generating the correct table view based on current language and shop.

Template blocks

New template blocks introduced

– Added new block in admin “admin_manufacturer_main_assign_articles” More info in PR 244.
– Added new block “captcha_form” to
– source/Application/views/azure/tpl/form/contact.tpl
– source/Application/views/azure/tpl/form/pricealarm.tpl
– source/Application/views/azure/tpl/form/privatesales/invite.tpl
– source/Application/views/azure/tpl/form/suggest.tpl

New blocks in admin

– admin_article_attribute_assign_attribute
– admin_article_attribute_assign_selectlist
– admin_article_crossselling_assign_crossselling
– admin_article_crossselling_assign_accessoires
– admin_article_downloads_is_downloadable
– admin_article_main_extended_errorbox
– admin_article_main_extended
– admin_article_overview_statistic
– admin_attribute_category_assign_categories
– admin_attribute_main_assign_articles
– admin_category_order_sort_categories
– admin_delivery_main_assign_countries
– admin_deliveryset_main_assign_delivery
– admin_discount_main_form_itm
– admin_discount_main_assign_countries
– admin_header_head
– admin_header_links
– admin_home_head
– admin_home_navigation_items
– admin_category_main_assign_articles
– admin_include_persparams
– admin_login_form
– admin_manufacturer_main_assign_articles
– admin_navigation_menustructure
– admin_navigation_history
– admin_navigation_favorites
– admin_navigation_scripts
– admin_navigation_shopselect_form
– admin_news_main_assign_groups
– object_seo_extended
– object_seo_custreadonly
– admin_order_article_persparams
– admin_order_main_form_details
– admin_order_main_form_payment
– admin_order_main_form_dynvalues
– admin_order_main_form_shipping
– admin_order_main_send_download_links
– admin_order_main_reset_order
– admin_order_main_send_order
– admin_order_overview_persparams
– admin_order_overview_order_number
– admin_order_overview_customer_number
– pagenavisnippet_main
– admin_payment_main_assign_groups
– admin_user_main_assign_groups
– admin_usergroup_main_assign_users
– admin_vendor_main_assign_articles
– admin_voucherserie_main_form_discount_type
– admin_wrapping_main_picture

New blocks in frontend

– email_html_order_cust_ordermeta
– email_html_order_cust_persparams
– email_html_order_owner_persparams
– email_plain_order_cust_ordermeta
– email_plain_order_owner_persparams
– email_plain_ordershipped_shipmenttrackingurl
– captcha_form
– head_html_namespace
– footer_social
– layout_init_social
– sidebar_social
– account_order_persparams
– basket_widget_bestseller
– checkout_basketcontents_basketitem_persparam_readonly
– checkout_basketcontents_basketitem_persparam_editable
– details_productmain_price_value
– details_tabs_comments
– details_tabs_invite
– details_tabs_social
– persparams_persparam
– persparams_persparam_input
– thirdparty_login
– widget_product_bargainitem_price_value
– widget_product_boxproduct_price_value
– widget_product_compareitem_price
– widget_product_compareitem_price_value
– categorytree_extended

Removed template blocks (please check contrib modules)

Removed blocks in admin

– admin_list_order_filter
– admin_list_order_sorting
– admin_list_order_item
– admin_statistic_main_form
– admin_statistic_main_genreport
– admin_statistic_service_form
– admin_statistic_list_colgroup
– admin_statistic_list_filter
– admin_statistic_list_sorting
– admin_statistic_list_item
– admin_adminguestbook_main_form
– admin_adminguestbook_main_content
– admin_adminguestbook_list_colgroup
– admin_adminguestbook_list_filter
– admin_adminguestbook_list_sorting
– admin_adminguestbook_list_item

Removed blocks in frontend

– email_plain_order_cust_ts
– email_plain_order_cust_tsinfo
– email_plain_ordershipped_ts
– email_plain_senddownloadlinks_ts
– email_plain_order_ownerts
– email_html_order_cust_ts
– email_html_order_cust_tsinfo
– email_html_ordershipped_ts
– email_html_senddownloadlinks_ts
– email_html_order_owner_ts
– footer_fblike
– sidebar_trustedshopsratings
– sidebar_facebookfacepile
– checkout_thankyou_ts
– checkout_basketcontents_ts
– checkout_payment_trustedshops
– details_tabs_fbcomments
– details_tabs_fbinvite
– details_tabs_facebook


Removed language keys

– mxshow
– mxstat
– tbclstatistic_main
– tbclstatistic_service
– snporderlistheader
– snporderlistoxorderdate
– snporderlistoxartnum
– snporderlistsum
– snporderlistoxtitle
– mxguestbook
– tbcladminguestbook_main

Improved functionality

Improved methods

Changes in article\_overview controller

Removed $this->_aViewData[“parentarticle”] and
$this->_aViewData[“oxparentid”]. So variables $parentarticle and
$oxparentid should not be used in templates anymore.


– Now it supports multi level array as parameter
– Now it overwrites already existing parameters if new parameters with same name/key provided.


Method now returns boolean in place of 1/0


Method now returns boolean in place of 1/0


Please check the sourecode documentation for more details.

Deprecated methods and functions
Community Edition

– ShopControll::_stopMonitor() – Use self::stopMonitoring() instead.
– OxidEsales\Eshop\Core\Database\Adapter\Doctrine\Database::assureParameterIsAnArray – Backward compatibility for v5.3.0.
– OxidEsales\Eshop\Core\ModuleList::getModuleVersions – Use getModuleConfigParametersByKey(ModuleList::MODULE_KEY_VERSIONS) instead.
– OxidEsales\Eshop\Core\ModuleList::getModulePaths – Use getModuleConfigParametersByKey(ModuleList::MODULE_KEY_PATHS) instead.
– OxidEsales\Eshop\Core\ModuleList::getModuleEvents – Use getModuleConfigParametersByKey(ModuleList::MODULE_KEY_EVENTS) instead.
– OxidEsales\Eshop\Core\ModuleList::getModuleFiles – Use getModuleConfigParametersByKey(ModuleList::MODULE_KEY_FILES) instead.
– OxidEsales\Eshop\Core\ModuleList::getModuleTemplates – Use getModuleConfigParametersByKey(ModuleList::MODULE_KEY_TEMPLATES) instead.
– OxidEsales\Eshop\Core\SystemRequirements::checkBug53632 – Minimum PHP version does not include this bug any more.
– OxidEsales\Eshop\Core\SystemRequirements::checkLibXml2 – DomDocument is available in any case.
– OxidEsales\Eshop\Core\SystemRequirements::checkPhpXml – DomDocument is available in any case.
– OxidEsales\Eshop\Core\SystemRequirements::_getPhpIntSize – DFunction checkBug53632() is not used any more.
– OxidEsales\Eshop\Core\SystemRequirements::checkZendPlatformOrServer – Zend Guard or Server is not required any more.
– OxidEsales\Eshop\Core\SystemRequirements::checkZendOptimizer – Zend Guard or Server is not required any more.
– OxidEsales\Eshop\Core\Utils::redirectOffline – Use Utils::showOfflinePage().
– oxfunctions::cmpart – Moved as anonymous function to Article class.
– oxfunctions::getDb – Use oxDb::getDb().
– oxfunctions::getStr – Use oxStr::getStr().
– oxfunctions::getViewName – Use oxTableViewNameGenerator::getViewName().
– oxfunctions::getRequestUrl – Use OxidEsales\Eshop\Core\Request::getRequestUrl().
– OxidEsales\Eshop\Application\Controller\Admin\OrderList::storno – Use self::cancelOrder().
– OxidEsales\Eshop\Application\Controller\Admin\ShopController::SHOP_ID – Instead use ShopIdCalculator::BASE_SHOP_ID.
– OxidEsales\Eshop\Core\Config::getRequestEscapedParameter – Use OxidEsales\Eshop\Core\Request::getRequestEscapedParameter().
– OxidEsales\Eshop\Core\Config::getRequestRawParameter – Use OxidEsales\Eshop\Core\Request::getRequestEscapedParameter().

Professional Edition

– OxidEsales\EshopEnterprise\Core\SystemRequirements::checkZendPlatformOrServer() – Zend Guard or Server is not required any more

Enterprise Edition

– oxUtilsObject::isDerivedFromParentShop – Use oxBase::isDerived()
– OxidEsales\EshopEnterprise\Core\SystemRequirements::checkZendPlatformOrServer() – Zend Guard or Server is not required any more
– OxidEsales\EshopEnterprise\Core\SystemRequirements::getRequiredModules() – Zend Guard or Server is not required any more
– class LDAP will be moved to own module.
– classes News, NewsMainAjax, NewsMall will be moved to own module containing the news feature.
– OxidEsales\EshopEnterprise\Core\Cache\ReverseProxy\ReverseProxyBackend::setReverseProxyCapabaleDoEsi – use

Removed classes, methods and functions

– oxErpCsv, oxErpBase, oxErpGenImport and all type objects removed. Use GenericImport instead.
– oxErpInterface
– GuestBook – use the module oeguestbook instead
– GuestbookEntry – use the module oeguestbook instead
– Admin_Guestbook – use the module oeguestbook instead
– AdminGuestbook_List – use the module oeguestbook instead
– Adminguestbook_Main – use the module oeguestbook instead
– oxGbEntry – use the module oeguestbook instead
– List_Order
– Order_Package
– oxCaptcha
– oxImex
– oxLegacyDb (replaced by a database interface, which includes most of the methods of oxLegacyDb)
– oxStatistic
– Report_base
– Report_canceled_orders
– Report_conversion_rate
– Report_searchstrings
– Report_top_clicked_categories
– Report_top_viewed_products
– Report_user_per_group
– Report_visitor_absolute
– Statistic
– Statistic_List
– Statistic_Main
– statistic_main_ajax
– Statistic_Service
– verificationimg.php
– dyn_trusted
– dyn_trusted_ratings
– oxtsproduct
– oxtsprotection
– oxtsratings
– oxfb


– oxwarticledetails::getCaptcha()
– ArticleDetailsController::getCaptcha()
– ContactController::getCaptcha()
– InviteController::getCaptcha()
– SuggestController::getCaptcha()
– OrderOverview::exportlex
– oxDb::escapeString()
– oxDb::isValidFieldName()
– oxDb::quoteArray()
– oxDb::resetTblDescCache()
– oxModuleInstaller::_getModuleExtensionsGarbage()
– oxModuleInstaller::_removeGarbage()
– oxShopControl::_log()
– oxuser::getPasswordHash()
– roles_bemain::isEfire()
– PaymentController::getTsProtections()
– PaymentController::getCheckedTsProductId()
– oxBasket::_calcTsProtectionCost()
– oxBasket::setTsProductId()
– oxBasket::getTsProductId()
– oxBasket::getFTsProtectionCosts()
– oxBasket::getTsProtectionVatPercent()
– oxBasket::getTsProtectionVat()
– oxBasket::getTsProtectionNet()
– oxBasket::getTsProtectionCosts()
– oxBasket::getTrustedShopProtectionCost()
– oxBasket::getTsInsuredSum()
– oxViewConfig::getTsRatings()
– oxViewConfig::getTsRatingUrl()
– oxViewConfig::showTs()
– oxViewConfig::getTsId()
– oxView::getTrustedShopId()
– oxView::getTSExcellenceId()
– oxView::isConnectedWithFb()
– oxView::getFbUserId()
– oxView::showFbConnectToAccountMsg()
– oxViewConfig::getShowFbConnect()
– oxViewConfig::getFbAppId()
– oxUBase::isFbWidgetVisible()
– oxcmp_user::login_updateFbId()
– oxuser::updateFbId()

Removed config options

– iMasterSlaveBalance – it was used to balance the amount of read accesses between master and slave(s).
Due to differences in now letting Doctrine DBAL handle Master/Slave connections the balance feature cannot be supported anymore.

NOTE: some config options were moved to contrib modules along with the related functionality:

TrustedShops related settings
– sTsProtectionUrl
– sTsTestProtectionUrl
– sTsUser
– sTsPass
– aTsConfig
– sTsServiceWsdl
– sTsServiceTestWsdl
– blAdodbSessionHandler

Guestbook related
– iMaxGBEntriesPerDay

See facebook contrib module:
– bl_showFbConnect
– blFbCommentsEnabled
– blFbFacepileEnabled
– blFbInviteEnabled
– blFbLikeEnabled
– blFbShareEnabled
– sFbSecretKey
– sFbAppId

Removed libraries

– JpGraph
– facebook

OXID eShop v6.0.0 Beta: Installation

Getting Started

OXID eShop version 6.0.0 is the first OXID eShop installation based on Composer and Satis. In order to install the package you will need to:

  • Prepare your system to work with Composer
  • Install OXID eShop using Composer

Composer Integration

Composer is the de facto standard dependency manager for PHP project. OXID uses it to define relations between:

  • OXID eShop editions
  • OXID eShop and modules
  • OXID eShop and themes
  • 3rd party dependencies

You can find details how to install Composer here.


Satis is an Open Source static Composer repository generator. It might be used to create cache for better performance while accessing project source code or to control access to private repositories.

OXID uses Satis to control access to private GitHub repositories, like OXID eShop PE and OXID eShop EE.

What’s included in the Release?

The main goal for this beta release is to give our partners the possibility to adapt their modules to the next major version of the OXID eShop core. Therefore, the beta release includes the OXID eShop CE/PE/EE core, the Flow  and Azure Themes and the OXID Composer Plugin. Each of these is now a seperate component and the combination of them all is called the OXID eShop Compilation

Benefits of using Composer and Compilation

  • Each component might be replaced with another component easily
  • Each component might be updated separately
  • The Composer plugin allows control installation and update procedures
  • Modules and themes might be installed easily
  • The compilation holds all dependencies information in one place

How to

Install OXID eShop using Composer

The simplest way to install the OXID eShop is to run the composer command to create a project.

  • For Community Edition run:
  • For Professional Edition run:
  • For Enterprise Edition run:


During the installation of the Professional Edition or Enterprise Edition, Composer will ask you to provide login credentials for the Satis repositories. You should have received these credentials from our Support team already.

By default, these credentials are stored in COMPOSER_HOME/auth.json (e. g. ~/.config/composer/auth.json on Ubuntu). If you plan to install multiple editions in parallel on the same machine (e. g. Professional and Enterprise Edition), then you might get the following error during the installation of the second edition:

In this case, just place a auth.json file besides the composer.json file of each project. Check out the authentication section of the Composer documentation for details.

Webserver Setup

The document root of your web server should point to the source/ subdirectory in your project directory.

File Permissions

  • These directories and their subdirectories must be writeable all the time:
    • ./source/out/pictures/ (including files, which are inside this directory)
    • ./source/out/media/
    • ./source/log/
    • ./source/tmp/

    During installation those must be writeable

    • ./source/
    • ./source/.htaccess

    After installation those must be read-only

    • ./source/
    • ./source/.htaccess

    and set the export dir to writeable

    • ./source/export
  • Open web server URL and go though setup steps.

How to add 3rd party dependency

Additional dependencies can be added via same composer.json file. For example, if there is a need to add runtime library like monolog run:

composer require monolog/monolog

If there is a need to add a development dependency like the OXID eShop testing library:

composer require --dev oxid-esales/testing-library

How to change versions of already existing components

The Metapackage of the V6 beta compilation specifies the exact dependencies with which the release was tested. Having the same versions of components in a project ensures that the OXID eShop always works as expected. However, sometimes one needs to change a dependency. To do that add an alias in the project composer file to the needed version as is shown in the following example:

This lowers doctrine cache package version to v1.6.0 even while metapackage require v1.6.1.

To read more check the documentation or this issue in GitHub

OXID eShop 6.0 beta release – Now available for download and testing

OXID eShop 6.0 (CE, PE, EE) beta information

The final release of OXID eShop 6.0 is scheduled for Q2 of 2017. As OXID eShop 6.0 provides a larger set of changes compared to previous versions, we now start our beta testing period rather early. Like that, we have enough time for a lively feedback process, for extensions to be adapted and to eliminate possible bugs. As for every beta, we do not recommend its use in productive mode.

The beta is shipped with the OXID eShop core, the Composer plugin and the Flow theme front end. The Azure Theme is also included for backward compatibility. The beta is not shipped with any other extensions such as payment providers for example. The OXID eShop 6.0 beta should basically be used to try out the new installation routine, to check out the changes and to adapt modules and extension to be compatible with the new code base.

OXID eShop 6.0 identity

The version 6 is an evolution based on the 5.3. While 5.3 delivered some feature highlights like the Flow theme or the Visual CMS, the focus of 6.0 is set on major work under the hood – refactoring. Every larger framework from time to time needs some care where things are cleaned up, fixed, renewed or replaced to gain speed and to open up perspectives for innovation.

An OXID solution always is a composition of tools from the OXID eco system. Therefore backward compatibility is one of OXID’s highest requirements, which is why refactoring processes are a really tough challenge. We are proud to say that we came up with great solutions to realize backward compatibility besides many architectural changes. The refactoring of larger parts of the application was based on the motto of modernizing the framework and making it more flexible while maintaining its stability.

Improving work with the OXID platform for our partners

One of OXID eShop’s major assets is its customizability. We kept this quality and even improved it by offering the ability to make it easier to include external code and different standards into the system by supporting proper namespaceing, dependency handling by Composer and providing the foundation for additional standardized dependency injection. This enables us to produce OXID eShop compilations instead of rigid releases.

We switched from MyISAM to InnoDB and unified the database structure of all three shop editions (CE, PE, EE). ADOdb lite has been replaced by Doctrine and the 6.0 is fully PHP7 compatible and “UTF-8” only. All these changes lead to a noticeable performance boost and increased developer’s flexibility.

Walking new paths: OXID eShop 6.0 will be 100 % decoded! We eliminated encoding completely from our code base. We are putting full trust in our partners and improve their daily work by not having to worry about encoded black boxes anymore.

But there is more. For further changes and improvements please check out our developer channel OXIDforge here!
Daily work for an OXID developer becomes easier by using the OXID VM/SDK, that provides an out-of-the-box development environment including OXID testing library. All three OXID eShop editions (CE, PE, EE) can now be found on GitHub including a proper Git contributions process.

Improving our own speed of innovation

Besides cleaning up processes under the hood we also invested in the infrastructure around the product. We completely renewed our Continuous Integration environment and set up a new Continuous Delivery process that guarantee us many benefits.

What else?

We would be glad to receive your feedback and thank you in advance for your contributions to make the 6.0 a sound application. All technical information like system requirements, installation instructions, changelog, documentation can be found on the OXIDforge developer channel. You can use Git pull requests for your feedback. Check out here! And last but not least, you can write an e-mail directly to our community manager



Pierluigi Meloni has always been against it, already at school. At that time he raised the question “why someone would do something for a certain reason”. This topic lasted until today. And that is the reason, why as a software architect and requirement engineer he is still focusing on the “what”.  After working in the most different areas he came to e-commerce three years ago, where the “what” is really a challenge. Today, Pierluigi is Product Manager at OXID eSales. He also loves good humour.

The post OXID eShop 6.0 beta release – Now available for download and testing appeared first on OXID eSales Blog.

OXID eShop v6.0.0 Beta: System Requirements


With OXID eShop 6 series, there will be some changes to the system requirements compared to those of previous versions.
We noticed that hosters tend to upgrade their servers to new stable versions much earlier than they did in the past. The advantages to applications running on those servers are many. New versions tend to be faster, better and the support period for bug fixes and security upgrades increases.

We recommend those system requirements, which we ourselves use in our continuous integration systems and in our performance server cluster, which follow the trend of using new versions in the system environment. These system requirements are listed in the next section.

A small side note: It is utterly impossible to test all of the imaginable configurations and we only recommend those, which we test. This does not necessarily mean that others will not work. There are many tutorials out there on the Internet which describe other configurations, such as running OXID eShop on an nginx web server.

The system requirements

No Encoding for PE or EE

From OXID eShop version 6, the OXID eShop will no longer be encoded. Zend Guard Loader is no longer required.


  • Apache Versionen 2.2 and 2.4 (on Linux)
  • Webspace requirements:
      • Community: 500 MB
      • Professional: 500 Mb
      • Enterprise: 750 MB
  • installed mod_rewrite extension


  • MySQL versions 5.5 and 5.7

The database user needs sufficient privileges

  • to create a database if the database does not exist already during installation
  • to create views


  • PHP versions 5.6 and 7.0
  • Set memory_limit at least to 32 MB. We recomend a memory_limit of at least 60MB.
  • PHP setting “session.auto_start” in php.ini has to be set “OFF”
  • We recommend to enable file uploads in PHP
  • Activate allow_url_fopen and fsockopen to port 80
  • Set Apache server variables REQUEST_URI or SCRIPT_URI
  • ini_set allowed

The following PHP-extensions must be installed:

  • GD LIB Version 2.x
  • BC Math
  • JSON
  • iconv
  • tokenizer
  • mbstring
  • cUrl
  • SOAP
  • DOM


The main reason to raise the PHP version was that PHP itself raised the currently supported versions to 5.6 and 7.0 (see
Some other PHP requirements for settings and extensions were adapted to reflect the changes in these PHP versions.


Composer is needed for installation of the OXID eShop and changes in autoloading of files (not for runtime).
System requirements of Composer can be found here:

OXID eShop version 4.10.2 (CE + PE) & 5.3.2 (EE)

General hints for this package

  • Tested on PHP 5.3, 5.4, 5.5 and 5.6
  • Compatible now with MySQL 5.7
  • Adjusted to work with Apache 2.2 and 2.4
  • Packages contain Flow theme version 1.0.0
  • CUPS contains Flow theme and modules from bundle
  • Please see this blog post if you run MySQL 5.6 and OXID eShop EE


For update instructions please see


Unused language constants removed from the Azure theme:

Several small changes done for the admin area:
.htaccess improved to have a newer syntax
Small improvement how shop works in demo mode
HTML fix for element layout
Links updated to the new OXIDforge

Several code improvements for the Flow theme:…v1.0.0

Note: More information could be found in a template diff in the update package.

Fixed Bugs

New Features

No new features in this patch release

Important information for developers

  • Compatible with MySQL 5.7
    Note: There will be a fix for a known discount sorting issue soon. It will be published as a module.
  • .htaccess adjusted to work with Apache 2.2 and 2.4. See pull request #425.
  • Added DatabaseInterface::forceMasterConnection() for making it possible to write code, compatible in the 5.3 and the 6.0
  • Disable (de-)activation of modules in demo mode

See a comparison to the former version on GitHub

OXID eShop version 4.10.1 (CE + PE) & 5.3.1 (EE)

General hints for this package

  • Tested on PHP 5.3, 5.4, 5.5 and 5.6
  • Please see this blog post if you run MySQL 5.6 and OXID eShop EE
  • CUPS contains Flow theme and modules from bundle


For update instructions please see


Broken link fixed in admin template. Few changes in admin lang keys.

Fixed Bugs

New Features

No new features in this patch release

Important information for developers

No important information for developers in this patch release.

See a comparison to the former version on GitHub

OXID eShop version 4.10.0 (CE + PE) & 5.3.0 (EE)

General hints for this package


For update instructions please see

If you use Roxive theme:

Take care if you’re updating your OXID eShop installation to version 4.10.0 or 5.3.0 when using the Roxive theme by Digidesk. Unfortunately, the updateApp wants to insert oxIDs into the database that might already exist (Roxive/Flow theme options) so you might get an appropriate error message.

Resolution: If you run Roxive already, please remove the file updateApp/updates/sql/4.10.0.sql from the update package.

This bug has already been fixed in our CI (continuous integration) scripts.


Please expect some very slight template changes with this update.


  • Avoid path traversal for downloadable files from the admin panel. This way a user with access to the admin panel might gather access to files of the OXID eShop system. Fix: OXID eShop now checks the path of the file, only file names in specific paths like downloads/ can now be altered. Many thanks Tim Herres of LSExperts ( for pointing us to that place.
  • Updated PHPMailer version to 5.2.14.
  • Clean up basket after user logs out. (fix for bug 5771)
  • Admin panel got a CSS face lift

Fixed Bugs

Bugtrack change log

New Features

  • Flow theme: new responsive theme, packaged to the OXID eShop bundle
    Please note that until the release of the OXID eShop 6.0 version, the Flow theme will remain in beta status, because we have not yet ported the automated test to it. We also still have to adapt the theme to be compatible with the demo mode of the shop. Anyway, as the theme has been used in many projects before, it is in a very stable state. Note that the new theme is not included in the update packages, only in the installation packages.
  • Visual CMS (available for PE and EE): a module for easy management of CMS content via drag and drop. Please note that the new module is not included in the update packages, only in the installation packages.
  • PAYONE module: module for PAYONE payment provider (all editions). Please note that the new module is not included in the update packages, only in the installation packages.

Important information for developers

  • Please note that code, marked as deprecated, was removed with this version. Check the source code documentation, e.g. to find out which classes and methods have been marked as deprecated in the past.
  • If the folder application/ was found in a module, OXID eShop expects the folder translation/ here and doesn’t expect any other location for the storefront translation files.

See a comparison to the former version on GitHub


OXID eShop version 4.8.12 (CE + PE) & 5.1.12 (EE)

General hints for this package

  • This OXID eShop version contains an important fix for a critical security issue. Please also see the security bulletin 2016-001 (CVE-2016-5072) as well as the FAQ page for it in order to get more information.
  • Tested on PHP 5.3, 5.4, 5.5 and 5.6
  • Please see this blog post if you run MySQL 5.6 and OXID eShop EE)


For update instructions please see


No template changes in this patch release.

Fixed Bugs

0006385: Admin account can be hacked

New Features

No new features in this patch.

Important information for developers

No important information for developers

See a comparison to the former version on GitHub