OXID eShop 6.2.0

Release date: 31/03/2020
Release date RC2: 26/02/2020
Release date RC1: 11/11/2019
Release date Beta 1: 02/08/2019


General information

OXID eShop 6.2.0 is provided as a compilation with the following components:

  • OXID eShop CE 6.5.3
  • OXID eShop PE 6.4.0
  • OXID eShop EE 6.5.1
  • Theme “Flow” 3.4.1
  • Theme “Wave” 1.3.1
  • Amazon Pay 3.6.4
  • GDPR Opt-In 2.3.0
  • Klarna 5.1.4
  • Paymorrow 2.0.3
  • PAYONE 1.3.1
  • PayPal 6.1.0
  • Summernote WYSIWIG editor and Media Gallery 2.2.0
  • Visual CMS (PE/EE) 3.3.3

All changes to the compilation can be viewed in the following metapackage: https://github.com/OXID-eSales/oxideshop_metapackage_ce/compare/b-6.1…b-6.2.

OXID eShop 6.2.0 contains a security improvement for the payment module PAYONE.

System requirements

OXID eShop 6.1.2 runs under PHP 7.1 to 7.4. The supported database is MySQL version 5.5 or 5.7 and MariaDB version 10.4. Using MySQL 5.6 is not recommended as it could cause issues with Enterprise Edition. Please refer to the blog post: Set MySQL 5.6 optimizer setting “block_nested_loop = off” for OXID eShop Enterprise Edition. Apache 2.2 or 2.4 can be used as a web server on a Linux system.

Installation

The new installation and the update from 6.1.x to 6.2.0 are described in the section “Installation”.

New installation
Update from 6.1.x to 6.2.0

During installation, the new directory /var is created at the same level as /source and /vendor, to which the HTTP server and CLI user need read and write access.

Please run the update first in a test or development environment, or a copy of your current shop. Then, test the ordering process and payment and shipping methods. If the shopping cart software works correctly, you can replace it in the live system with the one from the test or development environment.

OXID eShop 6.0.* has now reached End-of-Life (EOL) and is no longer supported. Please consider to update if you still use a shop of this series.


New Functions

Reverse Proxy NGINX

OXID eShop high load option is an add-on for the OXID eShop Enterprise Edition in version 6. Caching ensures the fast generation and delivery of HTML pages, especially during peak loads. Caching is handled by a reverse proxy, which processes incoming requests from web clients before the actual web server. The OXID eShop high load option now supports NGINX version 1.14.0 and higher as a reverse proxy, offering an alternative to the previously used Varnish.

OXID eShop console

OXID eShop 6.2.0 uses the Symfony Console. This allows developers to write, register and execute their own commands for components and modules. Information on this can be found in the developer documentation: https://docs.oxid-esales.com/developer/en/6.2/development/tell_me_about/console.html.

Template engine Twig

OXID eShop supports Twig, a Symfony project, as an alternative template engine. Developers can decide if they want to use Twig instead of Smarty in the templates. Tools are provided for the conversion from Smarty to Twig.

Dependency Injection

Dependency Injection (DI), a design pattern in object-oriented programming, can now be used in modules. DI is implemented in OXID eShop using the Symfony DI container. Dependency Injection means, in a nutshell, that an object that requires the functionality of another object may not instantiate the other object itself. The object is injected from outside. What Depency Injection means for project developers is presented in a three-part article at the OXIDforge: Part 1: Basics, Part 2: Dependency Injection within Modules and Part 3: Extending OXID eShop using the Symfony DI container.

Events

With OXID eShop 6.2.0 an event handling is introduced, which is based on Symfony Events and Event Listeners. First events, which have been implemented, allow a more reliable way to extend the functionality of the shop. Events are the better alternative to traditional inheritance within the class chain. They can be processed by the shop and modules. The developer documentation contains an introduction to event handling and an overview of the currently available events: https://docs.oxid-esales.com/developer/en/6.2/development/tell_me_about/event/index.html.

Doctrine SQL Query Builder

The Doctrine SQL Query Builder can now be used in modules. Instructions for a database query can also be found in the developer documentation: https://docs.oxid-esales.com/developer/en/6.2/development/modules_components_themes/module/using_database.html#making-a-query.

Codeception

For OXID eShop, Codeception acceptance tests are introduced, which are recommended for writing acceptance tests for modules of the “Flow” and “Wave” themes. For developers, these tests are easier to write, use and maintain. Another advantage is that newer drivers are supported. Detailed information can be found in the developer documentation: https://docs.oxid-esales.com/developer/en/6.2/development/modules_components_themes/module/testing/codeception/index.html.

New directory /var

OXID eShop now has the new directory /var on the same level as /source and /vendor. It contains the module configurations, structured by subdirectories. These are saved in .yaml files for each subshop (for an Enterprise Edition) and environment specific (production, staging, development). The directory requires recursive read and write access for HTTP server and CLI users during installation and at runtime.

Custom shop offline page

The shop can display a user-defined shop offline page with customized layout and/or special features instead of the default page that indicates maintenance mode. This can be achieved by overwriting the method oxTriggerOfflinePageDisplay.

Character set of the database connection

In the configuration file config.inc.php the character set of the database connection can be defined by a new parameter. Example: $this->dbCharset = 'utf8';


Improvements and adjustments

Updated components of the OXID eShop compilation

The following components have been updated to a new version:

Sorting of accessories for products

In the assignment window for accessories, the order of the assigned products can be changed. After marking an product in the list on the right, it can be moved up or down using the mini buttons that are now displayed.

Changes in the module system

Nowadays it is standard in large and medium-sized projects to operate OXID eShop in various environments such as integration, staging, and production. In order to easily configure modules instead of managing them separately in each environment, the module system was extended accordingly. It is now possible to manage the environment via YAML configuration files. These are stored in the new directory /var and its structured subdirectories. For detailed information, see the developer documentation: https://docs.oxid-esales.com/developer/en/6.2/development/modules_components_themes/project/module_configuration/modules_configuration.html#configuring-module-20190910

The metadata.php file will be validated more strictly. The version number is now mandatory and additional source code is not allowed.

Changes in the testing framework

There have been a number of changes in the testing framework.

Detailed information on testing modules can be found in the developer documentation: https://docs.oxid-esales.com/developer/en/6.2/development/modules_components_themes/module/testing/index.html.

Overview of all changes

Changes from the previous version of the OXID eShop component can be viewed in the Community Edition repository on GitHub: https://github.com/OXID-eSales/oxideshop_ce/compare/v6.3.6…v6.5.3. Switch to the Files changed tab to see the list of all changed files.