Latest version: 5.4.24 (Change Log)
Release date: December 11th, 2022
Download AJAX-ZOOM Software

Shopware plugin

Demo frontend "AJAX-ZOOM mouseover" Demo frontend "Shopware5 gallery" Demo frontend "axZmMode" Demo frontend "In Tab" Download AJAX-ZOOM plugin for Shopware

Shopware 5 Compatibility

Shopware 5.1.0 - 5.x.x
[last tested with Shopware 5.7.15]
PHP 5.4 - 8.x

Shopware 6

The plugin for Shopware 6 is under development and will probably be released in autumn 2021.

At the frontend, the AJAX-ZOOM module for Shopware 5 is based on responsive mouseover zoom + optional 360°. However, starting from the plugin's version 1.2.4, there is an exclusive option for Shopware 5 customers to inject only the AJAX-ZOOM 360-degree player directly into the default product image slider.

At the backend, administrators can upload several 360s or import them from ZIP files and folders, which were previously uploaded, e.g., via FTP.

Each 360° view can be configured with separate AJAX-ZOOM settings and attached to a properties combination. For standard images, there are no changes required.

You can freely download the AJAX-ZOOM plugin for Shopware 5 and test it in your development environment!

General features

Backend screenshots

There are several options in the plugin configuration area for adjusting and fine-tuning the plugin's appearance. One of those options is especially interesting because it allows you to test the plugin without affecting the entire website. With the "displayOnlyForThisProductID", you can specify to show AJAX-ZOOM only for a few products and perform the tests you need.

Under the menu Items -> AJAX-ZOOM, there is a dedicated list with all main articles where you overview the amount of 360-degree views and videos. Using the search field, you can quickly find the article you are looking for. Clicking on an article name takes you to the area where you can upload 360-views and videos.

Creating a new 360/3D degree product view is very easy. While creating a new entry, you can immediately select a ZIP file that has been previously uploaded to a specific "ZIP" directory, e.g., via FTP. During the creation of the entry, the plugin unpacks the image files from the selected ZIP archive and places them within the plugin structure.

Alternatively, you can upload the images directly via the backend interface. The upload interface appears immediately after a new entry for the 360-item is created.

After creating a 360 and uploading the images, you can change or define several settings. For a product with variations, you have the option to assign a 360 only to specific variations. It is also possible to set nearly all settings of the AJAX-ZOOM player for each 360-degree object individually, create hotspots and product tours (see below).

If from internal or external production of the 360-views, you have many 360 items available at once, you can use the 360-batch-import function of the plugin. Switch to Administration -> Batch Import 360. There, you find the convention of how the ZIP files with 360 images must be named to be automatically imported and assigned to the associated product numbers or IDs. This automation saves you enormous amounts of time and thus costs.

360-degree "Product Tour"

The 360 "Product Tour" Editor is straightforward to use. Select areas of interest in a 360/3D view and press the crop button. The editor automatically creates thumbnails of those areas and places them in the separate gallery slider. When the user clicks on a thumbnail, the player rotates and zooms that 360-view to the selected region. You can choose from several predefined animation options. At the front end, the thumbnail gallery looks a bit different than in the editor.

Furthermore, administrators have an option to provide multilingual titles and descriptions for the selected areas. The title automatically appears as an expandable button after the rotation and zooming animation ends. If a title is defined, the user can click on the button to expand it and see the full description. The description data may include HTML and, therefore, any content, including, e.g., YouTube videos, whereby the editor provides a shortcode for YouTube videos and iframes, so you don't need to write HTML for those.

So if you quickly want to highlight anything on a 360-view, you can do it fast with the help of the "Product Tour" Editor. After a bit of practicing, it is a matter of seconds to create such professional presentations.

Hotspots editor - hotspots and the 360-degree "Product Tour" can be combined

Compared to the "Product Tour", the operation of the hotspot editor is more complicated. That is because there are far more possibilities to design the hotspots. Anyway, it takes a lot of training to work with the editor without stress.

The hotspots are generally about defining the position of these markers in the image and providing them with interaction. For a 360-degree view, you first have to place a hotspot on individual frames of a 360 view. You can do this roughly by dragging and dropping via thumbnails overview, later positioning them in the AJAX-ZOOM Player, also using Drag & Drop. Then choose the look. Predefined are several PNG icons or CSS classes.

When the positioning is done, you can create a label and, if necessary, a connecting line between the hotspot and the label. There are many (many) predefined design options.

Finally, if you want something to happen when you click on a hotspot, you can set an interaction. There are predefined interactions like a link or, similar to the product tour, a layered window with multilingual definable content, YouTube videos, etc. You can also define your JavaScript function and let everything happen on click.

There are many other exciting features, such as displaying certain hotspots (groups) only at a specific zoom level - engaging in the context of the product tour, both working together very well.

If you are not under time pressure, you should look into the Hotspot Editor, and you will discover a variety of possibilities, which are limited only by your imagination. There is nothing comparable on the market.

Video - HTML 5 (Videojs), Youtube, Vimeo, Dailymotion...

The AJAX-ZOOM plugin for Shopware has sophisticated management of videos. You can add videos in addition to or instead of 360-degree views. You can define videos from Youtube, Vimeo, Dailymotion, or link directly toMP4 files. As a cloud for MP4 sources, you can use, e.g., Vimeo. They offer it as a paid service.

The plugin gives an overview of all the videos and products to which these videos are linked. For each language, you can optionally define a different video source.

You can maintain the video data by adding and deleting them manually via the backend. Alternatively, you can create an Excel file with all the necessary data and synchronize it with the database. The corresponding functionality is built-in into the backend management too.

For each video, you can upload a preview image or interactively extract a frame from MP4 videos that you want to have as a preview image for the video.

Lastly, it is possible to create an XML file from present data and submit it to Google manually or via a cronjob if video SEO matters.

AJAX-ZOOM Batch Tool

You do not necessarily have to use the batch tool because if image tiles and other AJAX-ZOOM caches are not present, AJAX-ZOOM generates them on the fly. That can happen when images are loaded into the player as "preview" at the backend or appear on the product detail page.

However, if you have thousands of images, it is a good idea to batch process all existing images, which you plan to show in the AJAX-ZOOM viewer, before launching a new website or before enabling AJAX-ZOOM at the frontend. With the latest batch file, it is possible to cover up to 100% of all caches, which AJAX-ZOOM would otherwise generate on the fly if not present.

Periodically, when you add 360 / 3D images to your already existing or new products, you can keep the 360 / 3D sets disabled and let the batch tool process any amount of 360 sets at the end of the day. The batch tool can automatically activate a 360 / 3D set after it finishes processing.

Frontend screenshots

Please click the buttons at the top of this page to see the live links to the screenshots below! The screenshots below show Shopware's product detail page when AJAX-ZOOM is fully enabled via a plugin option.

Default gallery / slider

These are views when the Shopware default slider is activated per option. You can let AJAX-ZOOM inject the 360-views and videos into the default Shopware product view slider. All unique possibilities like product tours or hotspots are preserved.

360-degree "Product Tour"

AJAX-ZOOM product tours can be used with both the AJAX-ZOOM mouseover player and the default Shopware product view slider.

360-degree and Video within a tab

You can display AJAX-ZOOM 360-degree / 3D views, as well as videos optionally in tabs. The new tab is automatically created whenever a 360-degree view or a video is present for a product.

Handling regular images

For the regular images, there is no need to change anything. When product images are displayed with the AJAX-ZOOM mouseover/slider, you can optionally place hotspots (clickable markers in the image) on regular images. This is done with the same editor, which is also used for 360-degree animations:

Handling 360°/3D

To add 360° images, switch to the 'Items' -> 'AJAX-ZOOM' panel and select a product. Alternatively, log in as an administrator in the browser and in new tab call There you will be able to:


To avoid misunderstandings regarding Shopware 5.5: the Ioncube loader is not a part of Shopware but a (Zend) server extension. Even though Shopware 5.5 and the plugins in "Community Store" do not require Ioncube extension any longer, this does not mean that you can not install plugins that require Ioncube.


Upload plugin over plugin manager

  1. Switch to Configuration -> Plugin Manager, and in the left menu, choose "installed".
  2. At the top of the page, click on "Upload plugin" and choose the ZIP file with AJAX-ZOOM plugin for Shopware.
  3. If everything goes well and AJAX-ZOOM main script files can be automatically downloaded by the plugin, which can last a while, you will be able to activate the plugin after installation.
  4. In case nothing happens or you will get an error message, please download AJAX-ZOOM main script, unpack the ZIP locally and upload only the content of "/axZm" folder into /engine/Shopware/Plugins/Community/Frontend/AjaxZoom/axZm.

Manual installation

  1. Unpack and upload the plugin for Shopware in /engine/Shopware/Plugins/Community/Frontend/AjaxZoom/
  2. Unpack and upload the content of "/axZm" folder from AJAX-ZOOM main script into /engine/Shopware/Plugins/Community/Frontend/AjaxZoom/axZm
  3. Make sure that /engine/Shopware/Plugins/Community/Frontend/AjaxZoom/pic is writable by PHP (e.g. chmod 0775)
  4. Now, the AJAX-ZOOM plugin should be visible in Plugin Manager at the very bottom of the "uninstalled" section.
  5. Click on "install" icon.
  6. After installation, you might need to clear cache in Configuration -> Cache/Performance and reload the browser window.


AJAX-ZOOM has not been downloaded automatically

Please see installation steps above. Proceed with manual installation.

Backend password over .htpasswd / .htaccess

The hotspots and 360-degree tour editors may not work in the backend if the whole page is protected by, e.g., .htpasswd / .htaccess which is is often the case during the development phase, and the $_SERVER['PHP_AUTH_PW'] / $_SERVER['PHP_AUTH_USER'] are not set. This is because integrating the editors in the backend required to use "cUrl" internally, meaning that the server accesses itself via http(s). To allow it to do so, its server IP, that is, where Shopware is running, must be excluded from password entry. Under Apache, you can rule out the own server IP like this

AuthType Basic
Require valid-user
AuthName "Please enter password"
AuthUserFile /www/passwords/.passwd
Allow from
Satisfy Any

Replace images and AJAX-ZOOM cache

If Shopware is managed over external tools (not via Backend) and item images are replaced keeping the same file name, then AJAX-ZOOM does not get notified of that action, and AJAX-ZOOM cache is not cleared for this image. With the Ver. 1.2.3+, we have implemented several CLI commands to clear AJAX-ZOOM cache for all images of an item or specific (named) image files. Please configure your external tools accordingly (call CLI command over API) when an image file is replaced or an item is deleted. For more information in CLI, please see

As a temporal solution, you could add the following config parameters to /engine/Shopware/Plugins/Community/Frontend/AjaxZoom/

$zoom['config']['cTimeCompare'] = 'filectime';
$zoom['config']['dynamicThumbsCtime'] = 'filectime';


If you encounter any other troubles please report / contact our support. We will fix and document it with highest priority.

Known issues

Shopware 5.4 and LAMP under Windows (not Linux)

In Shopware 5.4 versions the plugin will not work in the backend with LAMP under Windows, e.g. XAMPP, because of a Shopware bug.
21.09.2018 - with SW version 5.5.1 this problem seems to be solved.

German translation in Windows (not Linux)

German translation in snippets / templates does not work on windows, where instead of '/' the backslash '\' in DIRECTORY_SEPARATOR is used.

Compatibility with other plugins

Plugins, which replace the frontend template in detail view, may influence the functionality of AJAX-ZOOM with default Shopware image slider enabled. Below is a list of known plugins:


Since AJAX-ZOOM Plugin for Shopware Ver. 1.3.2, both AJAX-ZOOM and the plugin can be updated from the plugin itself. Backups are automatically created for both, which can be restored if necessary. You can, of course, continue to update the plugin for Shopware and AJAX-ZOOM manually via FTP:
Since plugin version 1.4.3, templates have to be recompiled when AJAX-ZOOM main files are updated.


How to install "ionCube Loader"?

ionCube loader is a widely used PHP extension, and it is required to operate AJAX-ZOOM on your server. Before installing the loader, please check if it is not already installed on your server. To check this, you can look into the output of phpinfo();. You can also use get_loaded_extensions PHP function - print_r( get_loaded_extensions() ); to see if ionCube is installed.

If you do not detect ionCube on your server, please visit the official ionClube loaders page. There you can find "Loader Installer" and "Loader Wizard" packages, which can guide you through the installation process matching your operating system (Windows, Linux, FreeBSD, OpenBSD, OS X, Solaris).

Many hosting companies also have a guide in their FAQ on how to do this specifically for their configurations. Lastly, a mail to your hosting provider's support surely helps. ionCube is industry standard and should be a copy & paste answer for your hosting provider. If not, you should switch your hosting provider immediately.

Please note that each PHP version requires a different loader extension. When your provider offers a possibility to switch between several PHP versions, and you have added the "ionCube" extension via a separate php.ini on your own, please think about updating this php.ini file to link to the appropriate "ionCube" extension file.

Restarting the server (e.g., Apache) might be needed for the new extension to load (changes in php.ini effectively occur).

Some shared hosting companies such as "1&1" allow the users without root access to create their custom php.ini files and "install" Ioncube loader this way. However, this custom php.ini has only an effect on the folder whereinto you place it. It has no impact on subfolders, as you might suspect. Therefore, if you are dealing with this method of installing the loader, you must copy your custom php.ini into several folders. If the AJAX-ZOOM module for your system installs itself into, e.g., /modules/ajaxzoom directory, you must place the custom php.ini into /modules/ajaxzoom/axZm/ folder and into, e.g., /admin12345/ folder (or wherever installing the modules takes place).

Do I need a license key to test AJAX-ZOOM module/plugin?

No, AJAX-ZOOM should work out of the box. For some modules/plugins, AJAX-ZOOM does not install itself if the "ionCube" extension is not present on the server (see above). Other than that, there is are limitations on the number of images and image resolution of the demo version. If you would like to test AJAX-ZOOM with higher resolution images ( > 3.2 megapixels / million pixels), please request an "Evaluation" license key for your dev domain or subdomain free of charge.

If you do not have a development server but would like to install the AJAX-ZOOM plugin on your production website, you should go to module/plugin settings and set the "displayOnlyForThisProductID" option. This option allows you to enable AJAX-ZOOM only for specified product ID, so you can test the module/plugin thoroughly without affecting the entire shop / conduct A/B tests.

How to translate the plugin into other languages or change text strings?

The translation of the strings is done via the plugin options and within the AJAX-ZOOM's core PHP configuration file.

1. All plugin options are accessed over the backend. For example, if you want to add Russian translation to the "zoomMsg360" option, which is defined as JSON, you would need to add "key" and "value" to this JSON.

    "en": "Drag to spin 360°, scroll to zoom in and out, right-click and drag to pan",
    "de": "Ziehen um 360° zu drehen, zoomen mit dem Mausrad, rechte Maustaste ziehen verschiebt die Ansicht",
    "fr": "Faites glisser pour tourner à 360 °, faites défiler pour zoomer dans et hors, cliquer et faire glisser à droite pour vous déplacer",
    "es": "Arrastrar para girar en 360º, Rueda del ratón para utilizar el Zoom, botón derecho para mover la imagen"

So when you only need English as the default language (please keep it) and want to add a Russian translation string, you would change this option to

    "en": "Drag to spin 360°, scroll to zoom in and out, right-click and drag to pan",
    "ru": "Крутить 360° левой кнопкой мыши, колесом увеличивать, правой кнопкой смещать zoom"

2. Some other text strings are located in [ajaxzoom plugin directory] /axZm/ file, which is part of AJAX-ZOOM core. Open this file in a text editor and find a string you are looking for. For example, you are looking for the "Click to load" message. It is located under $zoom['config']['spinNoInit'] option and looks like this:

$zoom['config']['spinNoInit'] = array(
    'enabled' => false,
    'file' => array('en' => 'click_to_load_en.png', 'de' => ''),
    'txt' => array(
        'en' => 'Click to load
view', 'de' => 'Klicken um die
360° Ansicht
zu laden' ), 'event' => 'click' );

As you can see, this is a PHP array, and there are several other suboptions located in it. The best way to proceed is to either copy the entire array into or copy only the suboption with locales into this file. You can find outside of the /axZm folder in the plugin directory.

2a. The below is what you would add to [ajaxzoom plugin directory] / file when you copy the entire array and add your translation, removing languages you do not need:

$zoom['config']['spinNoInit'] = array(
    'enabled' => true,
    'file' => array('en' => 'click_to_load_en.png', 'de' => ''),
    'txt' => array(
        'en' => 'Click to load
view', 'ru' => 'Нажмите мышкой, чтоб загрузить 360° вид' ), 'event' => 'click' );

2b. Or you could just add the suboption to [ajaxzoom plugin directory] / file like this:

$zoom['config']['spinNoInit']['txt'] = array(
    'en' => 'Click to load
view', 'ru' => 'Нажмите мышкой, чтоб загрузить 360° вид' ); // or $zoom['config']['spinNoInit']['txt']['ru'] = 'Нажмите мышкой, чтоб загрузить 360° вид';
You can also move the file [ajaxzoom plugin directory] / one level up, outside of the "ajaxzoom" plugin directory, so when you update the plugin, this file does not get overwritten.

3. There is also a third possibility of adding a translation to strings located in [ajaxzoom plugin directory] /axZm/ In the backend, under plugin configuration, you can find "azOptions" and "azOptions360", which allow you to override configuration from [ajaxzoom plugin directory] /axZm/ related to frontend display. If we wanted to do the same as above over "azOptions360" plugin option (which is saved into the database), the result in your textarea would look like this:

Here, we do not need to define English, as the related JavaScript object will get extended by what you define in "azOptions360". The possibility number 2 above (writing into [ajaxzoom plugin directory] / is not applied then.

Download / Prices

There is no need to order AJAX-ZOOM before you have successfully installed and tested it! You can test in the test environment as long as necessary.

Since 2017, the AJAX-ZOOM plugin for shopware is also available in Shopware Plugin Store. If you purchase the plugin there, please contact us via the contact form, so that we can issue you the license key.

AJAX-ZOOM main files are downloaded automatically when the plugin is installed. If you want to manually install the AJAX-ZOOM Plugin for Shopware, see the installation steps above.

The license price primarily depends on the number of different images, which are displayed on a domain in the AJAX-ZOOM viewer. If you have sub-shops and all sub-shops are operated on the same server, then the license of each sub-shop must be able to cover all different images or images of the 360 (depending on what you use AJAX-ZOOM for) for all subshops. However, the multistore price regulation can reduce the license costs. For the complete license agreement, please visit the download section.


Ver. 1.4.24
  • Removed dependency on PHPExcel class located in the AJAX-ZOOM core package and replaced it with SimpleXLSX that is now part of the module for ShopWare. PHPExcel classes will be removed in the next AJAX-ZOOM core package update.
Ver. 1.4.23
  • Fixed a bug at the backend that caused an empty page within the plugin when product title has a single quote.
Ver. 1.4.22
  • Updated class with plugin options.
Ver. 1.4.21
  • Fixed video preview error at backend
Ver. 1.4.20
  • Fixes for Shopware 5.7.x
  • Due to increased Shopware CSRF measures, updating the plugin via the internal functionality of the plugin is unreliable, and therefore, it was deactivated. If you want to update the AJAX-ZOOM plugin, please download it manually and install it via the plugin manager.
Ver. 1.4.19
  • Fixed image thumbnails not showing at backend caused by specific server settings on some systems.
  • Minor bug-fixes and improvements.
Ver. 1.4.18
  • Added the prevention of computer going into sleep mode when importing many 360 views and creating cache in the same time.
  • Added "preview" and "batchImport360" $_GET variables, which are available in the external AJAX-ZOOM configuration files to differentiate between specific tasks at the backend.
Ver. 1.4.17
Fixes for the AJAX-ZOOM "simpleMode" option.
Ver. 1.4.16
Fix for Shopware 5.6.x where while installation of the AJAX-ZOOM plugin, there was an error regarding the missing constant Shopware::VERSION.
Ver. 1.4.15
Fixed a possible but uncritical error at the backend "Too few arguments to function Shopware_Components_Plugin_Bootstrap::__construct(), 0 passed"
Ver. 1.4.14
Changed the output container for JSON data coming from the AJAX-ZOOM plugin, so that you can use single quotes for HTML in the hotspot editor.
Ver. 1.4.13
Added the possibility to load a 360 product view as first item in the SW native slider gallery on product detail page ("images360firstToLoad" option enabled).
Ver. 1.4.12
Improved code generation for embedding the 360 player into product worlds. Transparency is now supported with just one setting.
Ver. 1.4.11
Integrated the new AJAX-ZOOM batch tool for creating cache directly into the backend. AJAX-ZOOM core files update (v. 5.3.6+) required.
Ver. 1.4.10
Small adjustments and notes for the new AJAX-ZOOM (core files) "simpleMode" option and "Simple" license type.
Ver. 1.4.9
Fixed a bug when saving 360 invividual options.
Ver. 1.4.8
  • Fixed a possible SW error when accessing 360 product tour and hotspot editors over SW backend.
  • Disabled mod_pagespeed server extension within AJAX-ZOOM backend where pagespeed did not work as supposed to.
  • Fixed SSL issue for AJAX-ZOOM Plugin for SW self update.
Ver. 1.4.7
Fixed one of the issues with Shopware 5.4
Ver. 1.4.6
Fixed few incompatibility problems.
Ver. 1.4.5
Fixed issues with document.asyncReady in Shopware 5.3 which does not work reliably in some cases.
Ver. 1.4.4
  • Bugfixes
  • Options update
Ver. 1.4.3
  • Shopware 5.3.0 fixes
Ver. 1.4.2
  • PSR-2 coding style
  • Minor changes to pass Shopware Plugin Store technical validation
Ver. 1.4.1
2017-05-11 (patch)
Small patch on views/frontend/ajaxzoom_360_tab.tpl
Ver. 1.4.1
  • Small bug correction
  • Option to display 360 / Videos within a tab on detail page
Ver. 1.4.0
  • Hotspots at regular images
  • Possibility to change plugin values for each product individually
  • Place 360/3D in "product worlds" / blog entries
  • Internal documentation
  • Improvements...
Ver. 1.3.3
Added few options.
Ver. 1.3.2
Few bugfixes. Added the possibility to update AJAX-ZOOM and AJAX-ZOOM plugin for Shopware from plugin itself. Current installation of both is backuped and can be restored if needed.
Ver. 1.3.1
AJAX-ZOOM main scripts (axZm folder) has to be updated for this release!
Complete revision of the Shopware plugin. New features include video integration, batch import of 360 images for different articles, batch import of videos from CSV / XLS, as well as export the videos to a sitemap suitable for Google.
Ver. 1.2.6
Added event hook to delete AJAX-ZOOM cache for an image when image is deleted from media manager.
Ver. 1.2.5
Added German translation
Ver. 1.2.4
AJAX-ZOOM main scripts (axZm folder) has to be updated for this release! Also if you have current AJAX-ZOOM version installed.
Nue options. Among others the possibility to optionally inject AJAX-ZOOM 360-degree player into default image slider.
Ver. 1.2.3
Added CLI commands.
Ver. 1.2.2
Fixed SQL error resulting from "createMenuItem" while updating. Fixed paths for hotspot editor and 360 "Product Tour" if Shopware is installed in subdirectory.
Ver. 1.2.1
Fixed small SSL fixed for 360 preview in backend.
Ver. 1.2.0
AJAX-ZOOM main scripts (axZm folder) has to be updated too for this release!
  • CSRF protection problem was solved with keeping backward compatibility.
  • Integrated new hotspot editor.
  • Some other issues were fixed.
Ver. 1.1.3
Added COLLATE=utf8_unicode_ci when database tables are created.
Ver. 1.1.2
Fixed template variable name which could cause namespace collision with a different module.
Ver. 1.1.1
Minor improvement.
Ver. 1.1.0
Added 360-degree "Product Tour". Optimized product overview table in the backend.
Ver. 1.0.4
Minor improvement.
Ver. 1.0.3
Added article number to overview
Ver. 1.0.2
Small correction.
Ver. 1.0.1
Fixed several bugs.
Ver. 1.0.0
Shopware plugin released.

Comments (1)

Sel4 2018-06-21 15:37:39
Sel4 Ajax Zoom is simply a great plugin. It is extremely mighty and komplex with almost unlimited possibilities for use and customization. We could not have a better viewing tool for our products!
Also to mention: great and dedicated support. Vadim reacts extremely fast, has tips and solutions for any issue that might occur.

Leave a Comment

Looking for a place to add a personal image? Visit to get Your own gravatar, a globally-recognized avatar. After you're all setup, your personal image will be attached every time you comment.

To use live-support-chat, you need to have Skype installed on your device. In case live support over Skype is not available immediately, please leave us a message or send an email by using the contact form.

We answer every inquiry or question that relates to the AJAX-ZOOM software!