Updating from OXID eShop 6.5 to OXID eShop 7.0

Update your OXID eShop to OXID eShop version 7.

Prerequisites

Before you update to OXID eShop version 7, you have make sure that you meet the technical requirements for the update:

  • You have OXID eShop Version 6.5.

    To get to OXID eShop Version 6.5, you have performed the required incremental updates.

    For more information, see Updating to OXID eShop 6.5.

  • If you use third-party modules or themes, you have ensured the compatibility of the third-party modules.

    To do so, you have asked the third-party vendor if these themes and modules are compatible with version 7 of OXID eShop.

    For updating existing modules from OXID eShop 6.5.x to OXID eShop 7, see Updating modules.

Procedure

Important

Data loss

Avoid data loss.

Make a backup of your database. Make a backup of your current shop installation (all files etc.).

We recommend to test the update procedure on a copy/development installation of your shop first, to become familiar with the process.

Note

To execute commands via the command line, open a shell in the shop root directory and run commands in there.

  1. In the var/configuration folder, make a backup of the shops folder that contains a <shop-id>.yaml file for each subshop.
    If your OXID eShop has no subshops, there is only the var/configuration/shops/1.yaml file to back up.
    Backup the folder/file to where it cannot be overwritten by the following update process.

  2. Decode the values in the following data table columns:

    • table oxuserpayments: column oxvalue

    • table oxconfig: column oxvarvalue

    This can be done automatically as described in the following steps:

    Important

    Make sure that you follow the order of the steps.

    Background: After executing the decode-config-values command, the shop and console will be down until it is fully updated to OXID 7.

    (1.) Install the OXID eShop update component.

    composer require --no-interaction oxid-esales/oxideshop-update-component:^v2.0.0
    

    (2.) Clean the shop cache by calling the appropriate console command from shop root directory.


    ./vendor/bin/oe-console oe:cache:clear
    

    (3.) Execute the oe:oxideshop-update-component:decode-user-payment-values command:

    ./vendor/bin/oe-console oe:oxideshop-update-component:decode-user-payment-values
    

    (4.) Execute the oe:oxideshop-update-component:decode-config-values command:

    ./vendor/bin/oe-console oe:oxideshop-update-component:decode-config-values
    

    (5.) To uninstall the OXID eShop update component, execute the following command:

    composer remove --update-no-dev --no-plugins --no-interaction oxid-esales/oxideshop-update-component
    
  3. Delete the var/generated/generated_services.yaml file.

  4. In the composer.json file, update the metapackage version depending on your current edition (CE, PE, or EE) of your OXID eShop.

    composer require --no-update oxid-esales/oxideshop-metapackage-<ce/pe/ee>:v7.0.0
    
  5. Remove or update the following packages from the require-devs section of your composer.json.

    Important

    Those packages as given in the OXID eShop 6.5 metapackages are not compatible with OXID eShop 7.

    "oxid-esales/testing-library": "^v8.2.0",
    "incenteev/composer-parameter-handler": "^v2.0.0",
    "oxid-esales/oxideshop-ide-helper": "^4.2.0",
    "oxid-esales/azure-theme": "^v1.4.2"
    
  6. Update the dependencies.

    Optional: If you don’t need the development-related files, specify the --no-dev parameter.

    composer update --no-plugins --no-scripts --no-dev
    

    Note

    This command ensures that all required libraries are updated by Composer.

    Nevertheless, the shop is not yet fully updated to OXID 7 at this point. For this we need to complete the next steps as well.

  7. To fully install the new compilation for OXID eShop 7, make sure Composer also runs the scripts and plugins.

    To do so, execute the command given below the following notes.

    Note

    The update overwrites any changes you may have made to themes in the source directory.

    Background: During an update, Composer first loads the new data into the vendor directory. Then the data is copied to the source directory. This replaces the files of the store and the themes.

    Your individual customizations of the OXID eShop or changes to third-party modules are only safe from being overwritten by the update if you have made the changes through one of the OXID eShop’s extension options (component, module, child theme).

    For more information, see the developer documentation under

    Attention

    Confirming queries.

    During the update you will be asked which packages may be overwritten.

    To ensure that only compatible and tested packages are installed and to avoid inconsistencies and malfunctions caused by incorrectly implemented modules or themes, confirm the queries with Yes.

    Recommendation: If you use the extension capabilities of OXID eShop, in the developer documentation, follow the instructions under Project wide development, modules, themes and components.

    composer update --no-dev
    

    Result: With this step, OXID eShop Compilation 7 and all modules delivered with the compilation are installed. Note that they are not yet activated.

  8. Migrate the database.
    To do so, execute the following command.

    ./vendor/bin/oe-eshop-db_migrate migrations:migrate
    
  9. Regenerate the database views.
    Background: After database changes like done in the previous step by migrations, views need to be updated. Otherwise you risk the shop going into maintenance mode.
    To prevent this, regenerate the database views with the following command:

    ./vendor/bin/oe-eshop-db_views_generate
    
  10. Avoid receiving a large number of warnings. To do so, doublecheck your server’s PHP error reporting settings.
    Background: With OXID eShop 7 , error_reporting() calls have been removed from the bootstrap.php file.

    We recommend setting the following:

    error_reporting = E_ALL & ~E_NOTICE & ~E_WARNING & ~E_DEPRECATED;
    
  11. To clean up your system, from the source/modules folder, remove the subfolders containing the previously installed, now unused module files.
    Do not delete the functions.php.dist file.

  12. To ensure that the cached items do not contain incompatibilities, clear the cache files in the tmp directory.
    To do so, execute the following command.

    ./vendor/bin/oe-console oe:cache:clear
    
  13. In the Admin panel, under Extensions ‣ Themes, activate a Twig-compatible theme (APEX theme in default installation case).

    If you don’t use the default APEX theme, ensure that your custom theme is compatible with the Twig engine.

    Background: The OXID eShop Compilation 7 comes with the Twig template engine and the APEX theme.

  14. If the shop doesn’t work, update your code and modules according to the information under Adjust removed functionality.

Module configuration and class chain

Important

The structure of the ./var folder is different in OXID eShop 6.5 and 7. New structure example:

.
└── var
    └── configuration
        └── shops
           └──1
              └──class_extension_chain.yaml
              └──modules
                 └──oxps_usercentrics.yaml
                 └──oegdproptin.yaml

Important

Keep in mind the following: In the current state of the Shop update, only OXID eShop 7 compilation modules are installed. So, install additionally needed compatible modules for OXID eShop 7 if necessary.

Important

The default class extension chains depend on the order in which composer installed those modules.

If you need a customized order for class extensions, you can use your customized class chains from <shop-id>.yaml file that you have backed up in step 1 as an example.

If you like to reuse module settings from the <shop-id>.yaml file that you have backed up in step 1, refer to Configuring modules via providing configuration files.