Release date: July 9th, 2018
Current version: 5.3.2
Change log

Shopware plugin

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

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 and attached to a properties combinations same way it can be done with regular images on default. For regular images there are no changes required.

New: 360 degree "Hotspots" with integrated Hotspot Editor in the backend.

New: 360 degree "Product Tour" with backend integration.

Neu: Integration of 360°, videos into default Shopware5 image slider / gallery.

Neu: Video - HTML5, YouTube, Vimeo... Batch import of 360 images for different articles, batch import of videos from CSV / XLS, export the videos to a sitemap suitable for Google - video SEO.

Neu: Optional display of 360 degree animations and videos in a tab on product detail page.

Neu: Show 360 / 3D in "produkt worlds" / CMS or else where.

General features

Backend screenshots

Shopware 360 degree Backend Shopware 360 degree Backend Shopware 360 degree Backend Shopware 360 degree Backend Shopware 360 degree Backend Shopware 360 degree Backend Shopware 360 degree Backend Shopware 360 degree Backend Shopware 360 degree Backend

360 degree "Product Tour"

Shopware 360 degree product tour Shopware 360 degree product tour Shopware 360 degree product tour Shopware 360 degree product tour Shopware 360 degree product tour Shopware 360 degree product tour

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

Shopware 360 degree Shopware 360 degree with hotspots Shopware 360 degree with hotspots Shopware 360 degree with hotspots Shopware 360 degree with hotspots Shopware 360 degree with hotspots

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

Shopware Video Backend Shopware Video Backend Shopware Video Backend Shopware Video Backend Shopware Video Backend Shopware Video Backend

Frontend screenshots

Shopware 360 degree Shopware 360 degree Shopware 360 degree Shopware 360 degree Shopware 360 degree Shopware 360 degree

Default gallery / slider

Shopware 360 degree Shopware 360 degree Shopware 360 degree

360 degree "Product Tour"

Shopware 360 degree product tour Shopware 360 degree product tour Shopware 360 degree product tour

360 degree and Video within a tab

Shopware 360 degree and video within a tab Shopware 360 degree and video within a tab Shopware 360 degree and video within a tab

Handling regular images

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

When product images are displayed with AJAX-ZOOM mouseover / slider + fullscreen, 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 go to 'Items' -> 'AJAX-ZOOM' panel and select a product. Alternatively, log in as an administrator in the browser and in new tab call www.your-domain.com/backend/AjaxZoom. There you will be able to:

Requirements

Installing

Upload plugin over plugin manager

  1. Switch to Configuration -> Plugin Manager and in the left menu choose "installed".
  2. At top 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 instantly download by the plugin, which can last a while, you will be able to activate the plaugin after installation.
  4. In case nothing happens or you will get an error message, please download AJAX-ZOOM main script, unpack the ZIP locallay 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 AJAX-ZOOM should be visible in Plugin Manager at very bottom in "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.

Troubleshooting

AJAX-ZOOM has not been downloaded instantly

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 requred to use "cUrl" internally, meaning, that the server accesses itself via http(s). To allow it to do so, its own 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 xxx.xxx.xxx.xxx
Satisfy Any

Replace images and AJAX-ZOOM cache

If Shopware is managed over external tools (not over Backend) and item images are replaced keeping the same file name, then AJAX-ZOOM does not get notice of it 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 image file is replaced or item is deleted. For more information in CLI please see https://en.community.shopware.com/_detail_1653.html

As a temporal solution you could add the following config parameters to /engine/Shopware/Plugins/Community/Frontend/AjaxZoom/zoomConfigCustomAZ.inc.php

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

Backend via HTTPS

27.09.2017 - in the back end, AJAX-ZOOM appears as a "Lightweight Backend Module" in the virtual window. If you call the backend via https://www.your-shop/backend/, it may happen that the module does not load in the virtual window. We are not quite sure at the moment whether it is on our plugin or it is a bug in the Shopware or from which version on it is fixed. The problem has so far been reported by operators of the Shopware 5.1 versions.

If it is not loaded in the virtual window, but you can easily access the AJAX-ZOOM plug-in via https://www.your-shop/backend/backend/AjaxZoom in the backend, you could quickly patch the /themes/Backend/ExtJs/backend/base/component/Shopware.ModuleManager.js to make a "Lightweight Backend Modules" work with https in the virtual window:

As soon as we know more, this entry is updated. Update: the Problem seems to be solved in v. 5.1.2: https://issues.shopware.com/issues/SW-13060
Replace the following code within the mothod createContentFrame

frame = Ext.get(Ext.DomHelper.createDom({
    'id': Ext.id(),
    'tag': 'iframe',
    'cls': 'module-frame',
    'width': '100%',
    'height': '100%',
    'border': '0',
    'src': (fullPath ? name : '{url module="backend" controller="" fullPath}' + name),
    'data-instance': instance
}));
with this:

// Set path as variable
var frame_src = (fullPath ? name : '{url module="backend" controller="" fullPath}' + name);

// Check if protocol is https
if (location.protocol === 'https:') {

	// Replace http: with https:
    frame_src = frame_src.replace('http:', 'https:');
}

frame = Ext.get(Ext.DomHelper.createDom({
    'id': Ext.id(),
    'tag': 'iframe',
    'cls': 'module-frame',
    'width': '100%',
    'height': '100%',
    'border': '0',
    'src': frame_src, // path as variable
    'data-instance': instance
}));
Since obviously this path

(fullPath ? name : '{url module="backend" controller="" fullPath}' + name)
is not resolved correctly, it seems that it is a bug within Shopware core system. With the above changes it will be fixed. The bug does not disturb the functionality of the frontend.

DB collate

2016-07-07 - before Plugin version 1.1.3 tables were created without COLLATE. If you want to change it after plugin is installed, you can execute the following directly in the DB:


alter table ajaxzoom360 convert to character set utf8 collate utf8_unicode_ci; 
alter table ajaxzoom360set convert to character set utf8 collate utf8_unicode_ci; 
alter table ajaxzoomproducts convert to character set utf8 collate utf8_unicode_ci; 
alter table ajaxzoomproductsimages convert to character set utf8 collate utf8_unicode_ci; 
alter table ajaxzoomlicenses convert to character set utf8 collate utf8_unicode_ci; 
alter table ajaxzoomtokens convert to character set utf8 collate utf8_unicode_ci; 

Other

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

Known issues

Shopware 5.3.(?) plugin license error

Since Shopware Version 5.3. (?), AJAX ZOOM is marked as unlicensed in Plugin Manager for customers who have not purchased AJAX ZOOM through Shopware Community Store, and a message appears stating that you may have been the victim of counterfeiting. Before Shopware Version 5.3 (?) This message did not appear. The message does not come from AJAX-ZOOM, but from Shopware Community Store and can be currently ignored. Legally, everything is fine and of course you are not a victim of product counterfeiting. The functionality of the shop in the frontend is not affected.

The intention of Shopware AG to check the authenticity of licenses for extensions sold through Community Store is generally correct. For us, however, it does mean that there is currently no technical solution to the problem. We could not foresee this development and have placed the AJAX-ZOOM plugin in the Shopware Community Store before SW Ver. 5.3 was released. Now it leads to this message for customers who have purchased a license directly from us. If you have any idea how to solve this dilemma, then please contact us.
16.05.2018 - we decided to deactivate the AJAX-ZOOM plugin for Shopware in the Shopware Community Store until the problem with the error message coming from the Shopware Community Store is solved permanently. Customers who have previously purchased the AJAX-ZOOM plugin through Community Store, as well as all direct customers, can download the latest versions here.

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:

Shopware 5.2 (RC) CSRF Protection

2016-06-28 - for Shopware 5.2.0 which is not released yet CSRF Protection needs to be temporaly disabled as described here. We are working on universal solution with backward compatibility.
Fixed in plugin Ver. 1.2.0

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.

Shopware 5.4 and LAMP under Windows

In early Shopware 5.4 versions the plugin will not work in the backend with LAMP under Windows because of a SW bug. https://issues.shopware.com/issues/SW-21477

Update

Important: because AJAX-ZOOM plugin for Shopware is now also available via Shopware Community Store, an update via Plugin Manager is not possible unless you have purchased the plugin from Shopware Community Store. However, this does not mean that you cannot update the plugin!
Since AJAX-ZOOM Plugin for Shopware Ver. 1.3.2, both AJAX-ZOOM and the plug-in can be updated from the plug-in itself. Backups are automatically created for both, which can be restored if necessary. You can, of course, continue to update the plug-in 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.

FAQ

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/zoomConfig.inc.php 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
360°
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 zoomConfigCustomAZ.inc.php or copy only the suboption with locales into this file. You can find zoomConfigCustomAZ.inc.php outside of the /axZm folder in plugin directory.

2a. The below is what you would add to [ajaxzoom plugin directory] /zoomConfigCustomAZ.inc.php 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
360°
view', 'ru' => 'Нажмите мышкой, чтоб загрузить 360° вид' ), 'event' => 'click' );

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

    
$zoom['config']['spinNoInit']['txt'] = array(
    'en' => 'Click to load
360°
view', 'ru' => 'Нажмите мышкой, чтоб загрузить 360° вид' ); // or $zoom['config']['spinNoInit']['txt']['ru'] = 'Нажмите мышкой, чтоб загрузить 360° вид';
You can also move the file [ajaxzoom plugin directory] /zoomConfigCustomAZ.inc.php 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/zoomConfig.inc.php. In the backend, under plugin configuration, you will find "azOptions" and "azOptions360", which allow you to override configuration from [ajaxzoom plugin directory] /axZm/zoomConfig.inc.php 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] /zoomConfigCustomAZ.inc.php) 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 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.

Changelog

Ver. 1.4.10
2018-06-29
Small adjustments and notes for the new AJAX-ZOOM (core files) "simpleMode" option and "Simple" license type.
Ver. 1.4.9
2018-05-28
Fixed a bug when saving 360 invividual options.
Ver. 1.4.8
2018-05-22
  • 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
2018-04-09
Fixed one of the issues with Shopware 5.4
Ver. 1.4.6
2018-01-05
Fixed few incompatibility problems.
Ver. 1.4.5
2017-12-05
Fixed issues with document.asyncReady in Shopware 5.3 which does not work reliably in some cases.
Ver. 1.4.4
2017-10-24
  • Bugfixes
  • Options update
Ver. 1.4.3
2017-08-12
  • Shopware 5.3.0 fixes
Ver. 1.4.2
2017-06-19
  • 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
2017-04-16
  • Small bug correction
  • Option to display 360 / Videos within a tab on detail page
Ver. 1.4.0
2017-03-31
  • 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
2017-01-26
Added few options.
Ver. 1.3.2
2017-01-08
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
2016-12-31
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
2016-10-17
Added event hook to delete AJAX-ZOOM cache for an image when image is deleted from media manager.
Ver. 1.2.5
2016-08-31
Added German translation
Ver. 1.2.4
2016-08-26
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
2016-08-21
Added CLI commands.
Ver. 1.2.2
2016-08-15
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
2016-08-12
Fixed small SSL fixed for 360 preview in backend.
Ver. 1.2.0
2016-08-05
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
2016-07-07
Added COLLATE=utf8_unicode_ci when database tables are created.
Ver. 1.1.2
2016-06-09
Fixed template variable name which could cause namespace collision with a different module.
Ver. 1.1.1
2016-05-31
Minor improvement.
Ver. 1.1.0
2016-05-12
Added 360 degree "Product Tour". Optimized product overview table in the backend.
Ver. 1.0.4
2016-04-22
Minor improvement.
Ver. 1.0.3
2016-04-12
Added article number to overview
Ver. 1.0.2
2016-04-07
Small correction.
Ver. 1.0.1
2016-01-31
Fixed several bugs.
Ver. 1.0.0
2015-12-07
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 www.gravatar.com 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!

Live-Support-Chat