Release date: November 2nd, 2018
Current version: 5.3.9
Change log

Opencart module

Demo frontend 2.0 Demo frontend 1.5


Opencart - 1.5.x, 2.0.x, 2.1.x, 2.2.x, 2.3
[last tested with Opencart 2.3]
PHP 5.2 - 7.x

In the frontend AJAX-ZOOM module for Opencart is based on responsive mouseover zoom + optional 360°. In backend there is a possibility for administrators to upload several 360's or import them from zip files or folders, which were previously uploaded e.g. over ftp. Each individual 360° can be configured with separate AJAX-ZOOM settings.

For regular images there are no changes required.

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

General features

Backend screenshots

Frontend screenshots

Handling regular images

For the regular images there is no need to do anything.

Handling 360°/3D

To add 360° images go to 'Catalog' -> 'AJAX-ZOOM' panel and select a product. There you will be able to:


Installing Opencart Ver. 1.5.x

  1. Make sure VQMOD is installed!
  2. Unpack the ZIP file for Opencart Ver. 1.5.x and upload everything into root of your store."
  3. You can manually download AJAX-ZOOM and upload the content of "/axZm" folder into "/ajaxzoom/axZm" now or let the installer make it instantly for you later.
  4. Make sure that "/ajaxzoom", "/ajaxzoom/pic" and "/ajaxzoom/zip" are writable by PHP (e.g. chmod 0775). Best make it 0777 first.
  5. Now AJAX-ZOOM should be visible in Extensions > Mudules. Install the module now.
  6. After installation please check that there is "/ajaxzoom/axZm" folder and that it is not empty. If not please see troublehooting.
  7. Does not help? Contact our support!

Installing Opencart Ver. 2.x

  1. Upload the extension ZIP for Opencart 2.x over Extension -> Extension Installer in the Backend of your shop installation.
  2. In Extension > Modifications press the blue button "refresh" at top of the page.
  3. Make sure that "/ajaxzoom", "/ajaxzoom/pic" and "/ajaxzoom/zip" are writable by PHP (e.g. chmod 0775). Best make it 0777 first!
  4. Install the Module in Extension > Modules now.
  5. After installation please check that there is "/ajaxzoom/axZm" folder and that it is not empty. If not please see troublehooting.
  6. In extensions -> modifications hit "refresh" button
  7. For ocmod adjustments you could rename install.xml into ajaxzoom.ocmod.xml and copy it into /system folder. Then in extensions -> modifications hit "refresh" button whenever changes are made in ajaxzoom.ocmod.xml



During installation the installer downloads AJAX-ZOOM instantly. In some cases, e.g. 'allow_url_fopen' is disabled or time out occurs, the process can fail without notice. Please check that the folder /ajaxzoom/axZm exists and it is not empty. If it does not exist or it is empty please download AJAX-ZOOM from our page and extract axZm folder into /ajaxzoom/axZm manually.


The hook system in Opencart ist quite error prone. Especially if you change the frontend template or install new theme, this search in VQMOD / OCMOD might not find the requested string to put the code before or after.
<file path="catalog/view/theme/*/template/product/product.tpl">
			<?php if ($thumb || $images) { ?>
		<add position="before"><![CDATA[
			<?php echo $ajaxzoom; ?>
This results in AJAX-ZOOM not showing at all on product detail page. In this case you should adjust the "Search" statements manually. For ocmod adjustments you could rename install.xml into ajaxzoom.ocmod.xml and copy it into /system folder. Then in extensions -> modifications hit "refresh" button whenever changes are made in ajaxzoom.ocmod.xml;

Mouseover image does not show any more (sometimes)

In former module versions the "Pinterest" button was activated on default. Unfortunately the JavaScript for this Pinterest button was loaded from external source. Now this JavaScript was changed by Pinterest and it does produce JavaScript errors now, which might lead to mouseover images not loading properly. Please go to Backend of the Module and deactivate the Pinterest button!!! We will reimplement the integration without relying on external script from Pinterest as next.


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. In order 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 will find "Loader Installer" and "Loader Wizard", which will give you the guidance on installing the loader matching your operating system (Windows, Linux, FreeBSD, OpenBSD, OS X, Solaris).

Many hosting companies do also have a guidance in their FAQ on how to do this specifically for their configurations. Lastly, a mail to your hosting’s provider support will surely help you. ionCube is industry standard and should be a copy & paste answer for your hosting provider. If not, you should switch your hotsting 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 ionCube extension over 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 in order to the new extension be loaded (changes in php.ini effectively take 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 will not install itself, if "ionCube" extension is not present on the server (see above). Other than that, there is are limitations on 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 / subdomain free of charge.

If you do not have a development server but would like to install AJAX-ZOOM plugin on your production website, you should go to module / plugin settings and set "displayOnlyForThisProductID" option. This option will allow you to enable AJAX-ZOOM only on 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 over the plugin options and within the AJAX-ZOOM core PHP config file.

1. All plugin options are accessed over backend. For example, if you want to add russian translation to "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 default language (please keep it) and want to add 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 lookung 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. 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 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 ajaxzoom plugin directory, so when you update the plugin this file does not get overwritten.

3. There is also a third possiblity how to add translation to strings, which are located in [ajaxzoom plugin directory] /axZm/ In the backend, under plugin configuration, you will 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.

Opencart 3.x

If you are the shop owner and think about using Opencart 3.x as your shopping cart engine for your new shop, you should know exactly why you are doing this. We cannot recommend using this hardly updateable cart engine unless you are a highly qualified programmer and know precisely, why you are using this system and not an other. As shop owner consider using PrestaShop, which is about on same level but has undeniable benefits compared to Opencart. An other alternative to consider in this segment is WooCommerce, which is based on WordPress.


Ver. 3.1
Small adjustments and notes for the new AJAX-ZOOM (core files) "simpleMode" option and "Simple" license type.
Ver. 3.0
Implemented new AJAX-ZOOM mouseover zoom 5. Several fixes. Also tested in XAMPP. After update please "reset" AJAX-ZOOM module settings!
Ver. 2.1.1
Small fix in install.xml
Ver. 2.1
Added hotspot editor. Updated 360 product tour editor. Few other fixes.
Ver. 2.0
Added support for Opencart Version; corrected some bugs which caused notices / warnings. Tested again Opencart Versions 1.5 - 2.2
Ver. 1.2
Added 360 degree "Product Tour" and made some other improvements.
Ver. 1.1
Fixed database table prefix issue
Ver. 1.0.0
Opencart module released

Comments (2)

Vadim Jacobi 2016-10-21 01:18:36
Vadim Jacobi As of today, the module does not support Opencart 2.3. We are working on this issue.
Luciano 2016-10-21 00:51:45
Luciano After installing the extension, it seems that everything went well, but when I try to edit and save, I get the message

"You do not have permission to access this page, please refer to your system administrator."

I've added all the permissions the user group Administrator in System > Users > User Group > Administrator

Can you help me?

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 will need to have Skype installed on your device.

In case live support over Skype is not immediately available please leave a message or send us an email over contact form at first.

Every AJAX-ZOOM related inquiry / question will be answered!