Latest version: 5.4.13 (Change Log)
Release date: May 3rd, 2021
Download AJAX-ZOOM Software

OXID module

Demo frontend Download AJAX-ZOOM module for OXID


OXID 4.x - 6.x
CE -ok, PE - ok, EE - ?
[last tested with OXID eShop 6.1.1]
PHP 5.2 - 7.x

At the frontend, the AJAX-ZOOM plugin for OXID eSales is based on responsive mouseover zoom + optional 360°.

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

Each 360-view can be individually configured. Administrators can set specific AJAX-ZOOM settings such as rotation direction and attach a 360-view to selected product variants.

For regular images, there are no changes required.

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

General features

Backend screenshots

Backend - Hotspots & 360 "Product Tour"

AJAX-ZOOM Batch Tool

You do not necessarily have to use the batch tool, because if image tiles and other AJAX-ZOOM caches have not been generated yet, AJAX-ZOOM will generate them on-the-fly, either when they are loaded into the player at "preview" in the backend or latest when they appear at the frontend.

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

On a daily basis, when you add 360 / 3D images to your already existing or new products, you can keep the 360 / 3D sets disabled for the frontend and process any amount of 360 sets later with this batch tool. At the same time, it will automatically activate a 360 / 3D set one by one after the batch finished processing it.

Frontend screenshots

Handling regular images

For the regular images, there is no need to do anything. You can upload them as always over the backend or merchandise management system.

Handling 360°/3D

To add 360° images, start editing a product. There you find the "AJAX-ZOOM 360" tab with the following possibilities:



  1. Make sure the free Ioncube loaders are installed on the server
  2. Please test and install this module in a test environment or make backups.
  3. Unzip the module and upload it into /modules directory preserving the directory structure. You should have /modules/ajaxzoom/ajaxzoom directory with most files and under /modules/ajaxzoom there should be only logo.png und vendormetadata.php files.
  4. Make sure, that /modules/ajaxzoom/ajaxzoom/pic is writeable by PHP (CHMOD).
  5. In backend area navigate to EXTENSIONS -> Modules and activate AJAX-ZOOM module.
  6. During activation the AJAX-ZOOM module will try to download the latest AJAX-ZOOM version instantly and place it into /modules/ajaxzoom/ajaxzoom/axZm directory. You can also make this step manually before activation. If instant download during activation fails for some reason you can also download AJAX-ZOOM core files manually and upload the entire axZm folder to /modules/ajaxzoom/ajaxzoom/ over FTP...


AJAX-ZOOM has not been downloaded instantly

Please see installation steps above. Upload AJAX-ZOOM main scripts manually.


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


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.


There is no need to order AJAX-ZOOM before you have successfully installed and tested it!

The license price primarily depends on the number of different images, which are displayed on a domain in the AJAX-ZOOM viewer. For the complete license agreement, please visit the download section.


Ver. 1.1.5
Integrated the new AJAX-ZOOM batch tool for creating cache directly into the backend (Menu "Service" -> "AJAX-ZOOM Batch"). AJAX-ZOOM core files update (v. 5.3.6+) required.
Ver. 1.1.4
Further adjustments for OXID 6
Ver. 1.1.3
Small adjustments and notes for the new AJAX-ZOOM (core files) "simpleMode" option and "Simple" license type.
Ver. 1.1.2
Some cosmetics within backend
Ver. 1.1.1
Options update; PSR-2 coding style
Ver. 1.1.0
To update, please perform the following steps:
- overwrite modules/ajaxzoom/ajaxzoom directory.
- Update modules/ajaxzoom/ajaxzoom/axZm directory with the latest version.
- Delete previous settings:
- Deactivate the module, then reactivate it.
- Possibly save settings once.
Ver. 1.0.0
OXID plugin released.

Comments (0)

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!