 .../com_jshopping/Model/ProductsModel.php          |  25 ++--
 .../components/com_jshopping/install/install.sql   |   1 +
 .../components/com_jshopping/js/functions.js       |   2 +
 .../language/de-DE/de-DE.com_jshopping.ini         |   5 +-
 .../language/en-GB/en-GB.com_jshopping.ini         |   3 +
 .../language/ru-RU/ru-RU.com_jshopping.ini         |   5 +-
 .../com_jshopping/sql/updates/mysql/5.1.0.sql      |   1 +
 .../com_jshopping/tmpl/product_edit/images.php     | 160 +++++++++++----------
 components/com_jshopping/Table/ProductTable.php    |   2 +-
 components/com_jshopping/config/default_config.php |  11 +-
 .../default/product/block_image_middle.php         |   4 +-
 .../default/product/block_image_thumb.php          |   2 +-
 .../templates/default/product/product_default.php  |   6 +-
 13 files changed, 130 insertions(+), 97 deletions(-)

diff --git a/administrator/components/com_jshopping/Model/ProductsModel.php b/administrator/components/com_jshopping/Model/ProductsModel.php
index df0b6eb4..6859b179 100644
--- a/administrator/components/com_jshopping/Model/ProductsModel.php
+++ b/administrator/components/com_jshopping/Model/ProductsModel.php
@@ -123,7 +123,6 @@ class ProductsModel extends BaseadminModel{
     }
 
     function getCountAllProducts($filter){
-        $lang = \JSFactory::getLang();
         $db = \JFactory::getDBO();
         if (isset($filter['category_id']))
             $category_id = $filter['category_id'];
@@ -231,7 +230,7 @@ class ProductsModel extends BaseadminModel{
         $id_vendor_cuser = \JSHelperAdmin::getIdVendorForCUser();
 
         if ($id_vendor_cuser && $post['product_id']){
-            checkAccessVendorToProduct($id_vendor_cuser, $post['product_id']);
+            \JSHelperAdmin::checkAccessVendorToProduct($id_vendor_cuser, $post['product_id']);
         }
 		$post['different_prices'] = 0;
         if (isset($post['product_is_add_price']) && $post['product_is_add_price']){
@@ -585,6 +584,9 @@ class ProductsModel extends BaseadminModel{
 			if ($jshopConfig->product_imagename_lowercase){
 				$upload->name = strtolower($upload->name);
 			}
+            if (isset($post["product_image_name_".$i]) && $post["product_image_name_".$i] != '') {
+                $upload->setNameWithoutExt($post["product_image_name_".$i]);
+            }
             $upload->setFileNameMd5(0);
             $upload->setFilterName(1);
             $upload->setMaxSizeFile($jshopConfig->image_product_max_size_file);
@@ -656,7 +658,7 @@ class ProductsModel extends BaseadminModel{
                 }
 
                 if (!$error){
-                    $this->addToProductImage($product_id, $name_image, $post["product_image_descr_".$i]);
+                    $this->addToProductImage($product_id, $name_image, $post["product_image_descr_".$i], $post["product_image_title_".$i] ?? null);
                     $dispatcher->triggerEvent('onAfterSaveProductImage', array($product_id, $name_image));
                 }
             }else{
@@ -675,7 +677,7 @@ class ProductsModel extends BaseadminModel{
 					$name_image = $post['product_folder_image_'.$i];
 					$name_thumb = 'thumb_'.$name_image;
 					$name_full = 'full_'.$name_image;
-					$this->addToProductImage($product_id, $name_image, $post["product_image_descr_".$i]);
+					$this->addToProductImage($product_id, $name_image, $post["product_image_descr_".$i], $post["product_image_title_".$i] ?? null);
 					$dispatcher->triggerEvent('onAfterSaveProductFolerImage', array($product_id, $name_full, $name_image, $name_thumb));
 				}
 			}
@@ -692,7 +694,7 @@ class ProductsModel extends BaseadminModel{
         }
 
         if (isset($post['old_image_descr'])){
-            $this->renameProductImageOld($post['old_image_descr'], $post['old_image_ordering']);
+            $this->renameProductImageOld($post['old_image_descr'], $post['old_image_ordering'], $post['old_image_title'] ?? null);
         }
     }
 
@@ -716,20 +718,25 @@ class ProductsModel extends BaseadminModel{
         return 1;
     }
 
-    function addToProductImage($product_id, $name_image, $image_descr) {
+    function addToProductImage($product_id, $name_image, $alt, $title = null) {
         $image = \JSFactory::getTable('image');
         $image->set("image_id", 0);
         $image->set("product_id", $product_id);
         $image->set("image_name", $name_image);
-        $image->set("name", $image_descr);
+        $image->set("name", $alt);
+        $image->set("title", $title);
         $image->set("ordering", $image->getNextOrder("product_id='".intval($product_id)."'"));
         $image->store();
     }
 
-    function renameProductImageOld($image_descr, $image_ordering){
+    function renameProductImageOld($image_descr, $image_ordering, $title = null){
         $db = \JFactory::getDBO();
         foreach($image_descr as $id=>$v){
-            $query = "update `#__jshopping_products_images` set `name`='".$db->escape($image_descr[$id])."', `ordering`='".$db->escape($image_ordering[$id])."' where `image_id`='".$db->escape($id)."'";
+            $ext_query = '';
+            if (isset($title[$id])) {
+                $ext_query = ', `title`='.$db->q($title[$id]);
+            }
+            $query = "update `#__jshopping_products_images` set `name`='".$db->escape($image_descr[$id])."', `ordering`='".$db->escape($image_ordering[$id])."' ".$ext_query." where `image_id`='".$db->escape($id)."'";
             $db->setQuery($query);
             $db->execute();
         }
diff --git a/administrator/components/com_jshopping/install/install.sql b/administrator/components/com_jshopping/install/install.sql
index 627f29f1..931a2796 100644
--- a/administrator/components/com_jshopping/install/install.sql
+++ b/administrator/components/com_jshopping/install/install.sql
@@ -85,6 +85,7 @@ CREATE TABLE IF NOT EXISTS `#__jshopping_products_images` (
 `product_id` int(11) NOT NULL default 0,
 `image_name` VARCHAR(255) NOT NULL default '',
 `name` VARCHAR(255) NOT NULL default '',
+`title` VARCHAR(255) NOT NULL default '',
 `ordering` tinyint(4) NOT NULL default 0,
 PRIMARY KEY  (`image_id`)
 ) DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
diff --git a/administrator/components/com_jshopping/js/functions.js b/administrator/components/com_jshopping/js/functions.js
index 81884481..6e622edc 100644
--- a/administrator/components/com_jshopping/js/functions.js
+++ b/administrator/components/com_jshopping/js/functions.js
@@ -814,10 +814,12 @@ var jshopAdminClass = function(){
         isChecked = jQuery(obj).is(':checked');
         var div_inputs = jQuery(obj).parents('div:first');        
         if (isChecked) {
+            div_inputs.find(".product_img_name").hide();
             div_inputs.find(".product_file_image").hide();
             div_inputs.find(".product_file_image input").val('');
             div_inputs.find('.product_folder_image').show();
         } else {
+            div_inputs.find(".product_img_name").show();
             div_inputs.find(".product_folder_image").hide();
             div_inputs.find(".product_folder_image input[type=text]").val('');
             div_inputs.find('.product_file_image').show();
diff --git a/administrator/components/com_jshopping/language/de-DE/de-DE.com_jshopping.ini b/administrator/components/com_jshopping/language/de-DE/de-DE.com_jshopping.ini
index ca910a1c..5db41890 100644
--- a/administrator/components/com_jshopping/language/de-DE/de-DE.com_jshopping.ini
+++ b/administrator/components/com_jshopping/language/de-DE/de-DE.com_jshopping.ini
@@ -1,5 +1,5 @@
 
-JOOMSHOPPING="JoomShopping"﻿
+JOOMSHOPPING="JoomShopping"
 JSHOP_NO = "Nicht" 
 JSHOP_YES = "Ja" 
 JSHOP_ALL = "Alle" 
@@ -944,3 +944,6 @@ JSHOP_INSTALL_JSHOP_INSTALL_UPDATE = "Installieren Addon - Joomshopping / Instal
 JSHOP_SHOP_OPTION_ADDON_KEY_CONFIG = "JoomShopping / Optionen / Addons- Stellen Sie Schlüssel- Set-Einstellungen" 
 JSHOP_DELETE_ITEM_CAN_BE_USED = "Löschen? Element kann in dem System und die Datenintegrität verwendet werden kann, beeinträchtigt werden." 
 JSHOP_ERROR_UPLOAD_MIN_SIZE_IMAGE = "Bildgröße zu klein." 
+JSHOP_IMG_ALT="Alt"
+JSHOP_IMG_NAME="Bildname"
+JSHOP_OC_PRODUCT_IMG_SEO="Produktbild-SEO"
\ No newline at end of file
diff --git a/administrator/components/com_jshopping/language/en-GB/en-GB.com_jshopping.ini b/administrator/components/com_jshopping/language/en-GB/en-GB.com_jshopping.ini
index fbde91a7..87232c19 100644
--- a/administrator/components/com_jshopping/language/en-GB/en-GB.com_jshopping.ini
+++ b/administrator/components/com_jshopping/language/en-GB/en-GB.com_jshopping.ini
@@ -944,3 +944,6 @@ JSHOP_INSTALL_JSHOP_INSTALL_UPDATE="Install addon - Joomshopping / Install & Upd
 JSHOP_SHOP_OPTION_ADDON_KEY_CONFIG="JoomShopping / Options / Addons- set key- set configuration" 
 JSHOP_DELETE_ITEM_CAN_BE_USED="Delete? The element can be used in the system and the integrity of the data can be compromised." 
 JSHOP_ERROR_UPLOAD_MIN_SIZE_IMAGE="Image size too small" 
+JSHOP_IMG_ALT="Alt"
+JSHOP_IMG_NAME="Image name"
+JSHOP_OC_PRODUCT_IMG_SEO="Product image SEO"
\ No newline at end of file
diff --git a/administrator/components/com_jshopping/language/ru-RU/ru-RU.com_jshopping.ini b/administrator/components/com_jshopping/language/ru-RU/ru-RU.com_jshopping.ini
index e3b98b2d..62375da5 100644
--- a/administrator/components/com_jshopping/language/ru-RU/ru-RU.com_jshopping.ini
+++ b/administrator/components/com_jshopping/language/ru-RU/ru-RU.com_jshopping.ini
@@ -1,5 +1,5 @@
 
-JOOMSHOPPING="JoomShopping"﻿
+JOOMSHOPPING="JoomShopping"
 JSHOP_NO = "Нет" 
 JSHOP_YES = "Да" 
 JSHOP_ALL = "Все" 
@@ -944,3 +944,6 @@ JSHOP_INSTALL_JSHOP_INSTALL_UPDATE = "Установка дополнения -
 JSHOP_SHOP_OPTION_ADDON_KEY_CONFIG = "JoomShopping / Опции / Дополнения- задайте ключ- задайте настройки" 
 JSHOP_DELETE_ITEM_CAN_BE_USED = "Удалить? Элемент может использоваться в системе и целостность данных может быть нарушена." 
 JSHOP_ERROR_UPLOAD_MIN_SIZE_IMAGE = "Размер изображения слишком мал." 
+JSHOP_IMG_ALT="Alt"
+JSHOP_IMG_NAME="Название изображения"
+JSHOP_OC_PRODUCT_IMG_SEO="SEO изображения продукта"
\ No newline at end of file
diff --git a/administrator/components/com_jshopping/sql/updates/mysql/5.1.0.sql b/administrator/components/com_jshopping/sql/updates/mysql/5.1.0.sql
new file mode 100644
index 00000000..d2403836
--- /dev/null
+++ b/administrator/components/com_jshopping/sql/updates/mysql/5.1.0.sql
@@ -0,0 +1 @@
+ALTER TABLE `#__jshopping_products_images` ADD `title` varchar(255) NOT NULL;
\ No newline at end of file
diff --git a/administrator/components/com_jshopping/tmpl/product_edit/images.php b/administrator/components/com_jshopping/tmpl/product_edit/images.php
index f5402f8b..6e6c7586 100644
--- a/administrator/components/com_jshopping/tmpl/product_edit/images.php
+++ b/administrator/components/com_jshopping/tmpl/product_edit/images.php
@@ -21,7 +21,10 @@ defined('_JEXEC') or die();
     foreach($lists['images'] as $image){
     ?>          
         <div class="product_image_list_item" id="foto_product_<?php print $image->image_id?>">
-            <input type="text" class="form-control middle2" name="old_image_descr[<?php print $image->image_id?>]" placeholder="<?php print JText::_('JSHOP_TITLE')?>" value="<?php print htmlspecialchars($image->name);?>" >            
+            <div class="mb-1"><input type="text" class="form-control middle2" name="old_image_descr[<?php print $image->image_id?>]" placeholder="<?php print JText::_('JSHOP_IMG_ALT')?>" value="<?php print htmlspecialchars($image->name);?>" ></div>
+            <?php if ($jshopConfig->product_img_seo) {?>
+            <div class="mb-1"><input type="text" class="form-control middle2" name="old_image_title[<?php print $image->image_id?>]" placeholder="<?php print JText::_('JSHOP_TITLE')?>" value="<?php print htmlspecialchars($image->title);?>" ></div>
+            <?php } ?>
             <div class="image_block">
                 <a target="_blank" href="<?php echo \JSHelper::getPatchProductImage($image->image_name, 'full', 1)?>">
                 <img src="<?php echo \JSHelper::getPatchProductImage($image->image_name, 'thumb', 1)?>">
@@ -41,83 +44,92 @@ defined('_JEXEC') or die();
     <?php } ?>
    </div>
    <div style="height:10px;"></div>
-   <div class="col width-45" style="float:left">
-        <fieldset class="adminform">
-        <legend><?php echo JText::_('JSHOP_UPLOAD_IMAGE')?></legend>
-        <div style="height:4px;"></div>
-        <?php for($i=0; $i < $jshopConfig->product_image_upload_count; $i++){?>
-        <div style="padding-bottom:10px;">
-            <div style="padding-bottom:3px;">
-                <input type="text" class = "form-control" name="product_image_descr_<?php print $i;?>" placeholder="<?php print JText::_('JSHOP_TITLE')?>" title="<?php print JText::_('JSHOP_TITLE')?>" />
+   <div class="row">
+        <div class="col-lg-6">
+            <fieldset class="adminform">
+            <legend><?php echo JText::_('JSHOP_UPLOAD_IMAGE')?></legend>
+            <div style="height:4px;"></div>
+            <?php for($i=0; $i < $jshopConfig->product_image_upload_count; $i++){?>
+            <div class="mb-3">
+                <div class="mb-1">
+                    <input type="text" class="form-control" name="product_image_descr_<?php print $i;?>" placeholder="<?php print JText::_('JSHOP_IMG_ALT')?>" title="<?php print JText::_('JSHOP_IMG_ALT')?>">
+                </div>
+                <?php if ($jshopConfig->product_img_seo) {?>
+                <div class="mb-1">
+                    <input type="text" class="form-control" name="product_image_title_<?php print $i;?>" placeholder="<?php print JText::_('JSHOP_TITLE')?>" title="<?php print JText::_('JSHOP_TITLE')?>">
+                </div>
+                <div class="mb-1 product_img_name">
+                    <input type="text" class="form-control" name="product_image_name_<?php print $i;?>" placeholder="<?php print JText::_('JSHOP_IMG_NAME')?>" title="<?php print JText::_('JSHOP_IMG_NAME')?>">
+                </div>
+                <?php } ?>
+                <div class="product_file_image">
+                    <input type="file" class="product_image" name="product_image_<?php print $i;?>">
+                </div>
+                <div class="product_folder_image" style="display:none;">
+                    <input type="text" class = "form-control form-control-inline" name="product_folder_image_<?php print $i;?>" >
+                    <input type="button" name="select_image_<?php print $i;?>" value="<?php echo JText::_('JSHOP_IMAGE_SELECT')?>" class="btn btn-primary"
+                    data-bs-toggle="modal" data-bs-target="#aModal" onclick="jshopAdmin.cElName=<?php echo $i?>">
+                </div>
+                <input type="checkbox" value="1" name="image_from_folder_<?php print $i;?>" id="image_from_folder_<?php print $i;?>" onclick="jshopAdmin.changeProductField(this);">
+                <label for="image_from_folder_<?php print $i;?>">
+                    <?php print JText::_('JSHOP_IMAGE_SELECT')?>
+                </label>
+                <?php 
+                if (isset($this->plugin_template_images_load)){
+                    print $this->plugin_template_images_load[$i];
+                }
+                ?>
             </div>
-            <div class="product_file_image">
-                <input type="file" class="product_image" name="product_image_<?php print $i;?>">
-            </div>
-            <div class="product_folder_image" style="display:none;">
-                <input type="text" class = "form-control form-control-inline" name="product_folder_image_<?php print $i;?>" >
-                <input type="button" name="select_image_<?php print $i;?>" value="<?php echo JText::_('JSHOP_IMAGE_SELECT')?>" class="btn btn-primary"
-                data-bs-toggle="modal" data-bs-target="#aModal" onclick="jshopAdmin.cElName=<?php echo $i?>">
-            </div>
-			<input type="checkbox" value="1" name="image_from_folder_<?php print $i;?>" id="image_from_folder_<?php print $i;?>" onclick="jshopAdmin.changeProductField(this);">
-			<label for="image_from_folder_<?php print $i;?>">
-				<?php print JText::_('JSHOP_IMAGE_SELECT')?>
-			</label>
-			<?php 
-			if (isset($this->plugin_template_images_load)){
-				print $this->plugin_template_images_load[$i];
-			}
-			?>
+            <?php } ?>        
+            </fieldset>
         </div>
-        <?php } ?>        
-        </fieldset>
-    </div>
-    
-    <div class="col width-55"  style="float:left">
-    
-        <fieldset class="adminform">
-        <legend><?php echo JText::_('JSHOP_IMAGE_THUMB_SIZE')?></legend>
-            <table class="tmiddle"><tr>
-            <td><input type="radio" name="size_im_product" id="size_1" checked="checked" onclick="jshopAdmin.setDefaultSize(<?php echo $jshopConfig->image_product_width; ?>,<?php echo $jshopConfig->image_product_height; ?>, 'product')" value="1" /></td>
-            <td><label for="size_1" style="margin:0px;"><?php echo JText::_('JSHOP_IMAGE_SIZE_1')?></label></td>
-            </tr></table>
-            <table class="tmiddle"><tr>
-            <td><input type="radio" name="size_im_product" value="3" id="size_3" onclick="jshopAdmin.setOriginalSize('product')" value="3"/></td>
-            <td><label for="size_3" style="margin:0px;"><?php echo JText::_('JSHOP_IMAGE_SIZE_3')?></label></td>
-            </tr></table>
-            <table class="tmiddle"><tr>
-            <td><input type="radio" name="size_im_product" id="size_2" onclick="jshopAdmin.setManualSize('product')" value="2" /></td>
-            <td><label for="size_2" style="margin:0px;"><?php echo JText::_('JSHOP_IMAGE_SIZE_2')?></label></td>
-            <td> <?php echo \JSHelperAdmin::tooltip(JText::_('JSHOP_IMAGE_SIZE_INFO'))?></td>
-            </tr></table>            
-            <div class="key1"><?php echo JText::_('JSHOP_IMAGE_WIDTH')?></div>
-            <div class="value1"><input type="text" class = "form-control" id="product_width_image" name="product_width_image" value="<?php echo $jshopConfig->image_product_width?>" disabled="disabled" /></div>
-            <div class="key1"><?php echo JText::_('JSHOP_IMAGE_HEIGHT')?></div>
-            <div class="value1"><input type="text" class = "form-control" id="product_height_image" name="product_height_image" value="<?php echo $jshopConfig->image_product_height?>" disabled="disabled" /></div>
-        </fieldset>
-        
-        <fieldset class="adminform">
-        <legend><?php echo JText::_('JSHOP_IMAGE_SIZE')?></legend>
-            <table class="tmiddle"><tr>
-            <td><input type="radio" name="size_full_product" id="size_full_1" onclick="jshopAdmin.setDefaultSize(<?php echo $jshopConfig->image_product_full_width; ?>,<?php echo $jshopConfig->image_product_full_height; ?>, 'product_full')" value="1" checked="checked" /></td>
-            <td><label for="size_full_1" style="margin:0px;"><?php echo JText::_('JSHOP_IMAGE_SIZE_1')?></label></td>
-            </tr></table>
-            <table class="tmiddle"><tr>
-            <td><input type="radio" name="size_full_product" id="size_full_3" onclick="jshopAdmin.setFullOriginalSize('product_full')" value="3" /></td>
-            <td><label for="size_full_3" style="margin:0px;"><?php echo JText::_('JSHOP_IMAGE_SIZE_3')?></label></td>
-            </tr></table>
-            <table class="tmiddle"><tr>
-            <td><input type="radio" name="size_full_product" id="size_full_2" onclick="jshopAdmin.setFullManualSize('product_full')" value="2"/></td>
-            <td><label for="size_full_2" style="margin:0px;"><?php echo JText::_('JSHOP_IMAGE_SIZE_2')?></label></td>
-            <td> <?php echo \JSHelperAdmin::tooltip(JText::_('JSHOP_IMAGE_SIZE_INFO'))?></td>
-            </tr></table>            
-            <div class="key1"><?php echo JText::_('JSHOP_IMAGE_WIDTH')?></div>
-            <div class="value1"><input type="text" class = "form-control" id="product_full_width_image" name="product_full_width_image" value="<?php echo $jshopConfig->image_product_full_width; ?>" disabled="disabled" /></div>
-            <div class="key1"><?php echo JText::_('JSHOP_IMAGE_HEIGHT')?></div>
-            <div class="value1"><input type="text" class = "form-control" id="product_full_height_image" name="product_full_height_image" value="<?php echo $jshopConfig->image_product_full_height; ?>" disabled="disabled" /></div>
-        </fieldset>
         
+        <div class="col-lg-6">        
+            <fieldset class="adminform">
+            <legend><?php echo JText::_('JSHOP_IMAGE_THUMB_SIZE')?></legend>
+                <table class="tmiddle"><tr>
+                <td><input type="radio" name="size_im_product" id="size_1" checked="checked" onclick="jshopAdmin.setDefaultSize(<?php echo $jshopConfig->image_product_width; ?>,<?php echo $jshopConfig->image_product_height; ?>, 'product')" value="1" /></td>
+                <td><label for="size_1" style="margin:0px;"><?php echo JText::_('JSHOP_IMAGE_SIZE_1')?></label></td>
+                </tr></table>
+                <table class="tmiddle"><tr>
+                <td><input type="radio" name="size_im_product" value="3" id="size_3" onclick="jshopAdmin.setOriginalSize('product')" value="3"/></td>
+                <td><label for="size_3" style="margin:0px;"><?php echo JText::_('JSHOP_IMAGE_SIZE_3')?></label></td>
+                </tr></table>
+                <table class="tmiddle"><tr>
+                <td><input type="radio" name="size_im_product" id="size_2" onclick="jshopAdmin.setManualSize('product')" value="2" /></td>
+                <td><label for="size_2" style="margin:0px;"><?php echo JText::_('JSHOP_IMAGE_SIZE_2')?></label></td>
+                <td> <?php echo \JSHelperAdmin::tooltip(JText::_('JSHOP_IMAGE_SIZE_INFO'))?></td>
+                </tr></table>            
+                <div class="key1"><?php echo JText::_('JSHOP_IMAGE_WIDTH')?></div>
+                <div class="value1"><input type="text" class = "form-control" id="product_width_image" name="product_width_image" value="<?php echo $jshopConfig->image_product_width?>" disabled="disabled" /></div>
+                <div class="key1"><?php echo JText::_('JSHOP_IMAGE_HEIGHT')?></div>
+                <div class="value1"><input type="text" class = "form-control" id="product_height_image" name="product_height_image" value="<?php echo $jshopConfig->image_product_height?>" disabled="disabled" /></div>
+            </fieldset>
+            
+            <fieldset class="adminform">
+            <legend><?php echo JText::_('JSHOP_IMAGE_SIZE')?></legend>
+                <table class="tmiddle"><tr>
+                <td><input type="radio" name="size_full_product" id="size_full_1" onclick="jshopAdmin.setDefaultSize(<?php echo $jshopConfig->image_product_full_width; ?>,<?php echo $jshopConfig->image_product_full_height; ?>, 'product_full')" value="1" checked="checked" /></td>
+                <td><label for="size_full_1" style="margin:0px;"><?php echo JText::_('JSHOP_IMAGE_SIZE_1')?></label></td>
+                </tr></table>
+                <table class="tmiddle"><tr>
+                <td><input type="radio" name="size_full_product" id="size_full_3" onclick="jshopAdmin.setFullOriginalSize('product_full')" value="3" /></td>
+                <td><label for="size_full_3" style="margin:0px;"><?php echo JText::_('JSHOP_IMAGE_SIZE_3')?></label></td>
+                </tr></table>
+                <table class="tmiddle"><tr>
+                <td><input type="radio" name="size_full_product" id="size_full_2" onclick="jshopAdmin.setFullManualSize('product_full')" value="2"/></td>
+                <td><label for="size_full_2" style="margin:0px;"><?php echo JText::_('JSHOP_IMAGE_SIZE_2')?></label></td>
+                <td> <?php echo \JSHelperAdmin::tooltip(JText::_('JSHOP_IMAGE_SIZE_INFO'))?></td>
+                </tr></table>            
+                <div class="key1"><?php echo JText::_('JSHOP_IMAGE_WIDTH')?></div>
+                <div class="value1"><input type="text" class = "form-control" id="product_full_width_image" name="product_full_width_image" value="<?php echo $jshopConfig->image_product_full_width; ?>" disabled="disabled" /></div>
+                <div class="key1"><?php echo JText::_('JSHOP_IMAGE_HEIGHT')?></div>
+                <div class="value1"><input type="text" class = "form-control" id="product_full_height_image" name="product_full_height_image" value="<?php echo $jshopConfig->image_product_full_height; ?>" disabled="disabled" /></div>
+            </fieldset>
+            
+        </div>
     </div>
-    <div class="clr"></div>
+    
     <?php $pkey='plugin_template_images'; if ($this->$pkey){ print $this->$pkey;}?>
     <br/>
     <div class="helpbox">
diff --git a/components/com_jshopping/Table/ProductTable.php b/components/com_jshopping/Table/ProductTable.php
index c1d368ff..de2b1f2c 100644
--- a/components/com_jshopping/Table/ProductTable.php
+++ b/components/com_jshopping/Table/ProductTable.php
@@ -381,7 +381,7 @@ class ProductTable extends MultilangTable{
             if (!$title){
                 $title = $this->getName();
             }
-            $list[$k]->_title = $title;
+            $list[$k]->_title = $title;            
             $list[$k]->image_thumb = \JSHelper::getPatchProductImage($v->image_name, 'thumb');
             $list[$k]->image_full = \JSHelper::getPatchProductImage($v->image_name, 'full');
         }
diff --git a/components/com_jshopping/config/default_config.php b/components/com_jshopping/config/default_config.php
index fef6078e..f1871011 100644
--- a/components/com_jshopping/config/default_config.php
+++ b/components/com_jshopping/config/default_config.php
@@ -1,6 +1,6 @@
 <?php
 /**
-* @version      5.0.8 05.09.2022
+* @version      5.1.0 05.09.2022
 * @author       MAXXmarketing GmbH
 * @package      Jshopping
 * @copyright    Copyright (C) 2010 webdesigner-profi.de. All rights reserved.
@@ -275,6 +275,7 @@ $config->show_short_descr_insted_of = 1;
 $config->allow_image_upload = array('jpeg','jpg','gif','png','webp');
 $config->use_summ_for_calcule_payment_with_discount = 0;
 $config->product_related_order_by = 'relation.id';
+$config->product_img_seo = 0;
 
 $config->default_template_block_list_product = 'list_products/list_products.php';
 $config->default_template_no_list_product = 'list_products/no_products.php';
@@ -353,6 +354,7 @@ $other_config = array(
     "product_image_upload_count",
     "product_video_upload_count",
     "show_insert_code_in_product_video",
+    "product_img_seo",
     "max_number_download_sale_file",
     "max_day_download_sale_file",
     "order_display_new_digital_products",
@@ -363,8 +365,7 @@ $other_config = array(
     "load_css",
     'list_products_calc_basic_price_from_product_price',
     'hide_from_basic_price','calc_basic_price_from_product_price',
-    'user_discount_not_apply_prod_old_price',
-    'advert'
+    'user_discount_not_apply_prod_old_price'
 );
 
 $other_config_checkbox = array(
@@ -374,6 +375,7 @@ $other_config_checkbox = array(
     "show_list_price_shipping_weight",
     "display_tax_id_in_pdf",
     "show_insert_code_in_product_video",
+    "product_img_seo",
     "order_display_new_digital_products",
     "display_user_groups_info",
     "display_user_group",
@@ -384,8 +386,7 @@ $other_config_checkbox = array(
     'list_products_calc_basic_price_from_product_price',
     'hide_from_basic_price',
     'calc_basic_price_from_product_price',
-    'user_discount_not_apply_prod_old_price',
-    'advert'
+    'user_discount_not_apply_prod_old_price'
 );
 $other_config_select = array(
     'cart_back_to_shop'=>array(
diff --git a/components/com_jshopping/templates/default/product/block_image_middle.php b/components/com_jshopping/templates/default/product/block_image_middle.php
index 26424313..633444da 100644
--- a/components/com_jshopping/templates/default/product/block_image_middle.php
+++ b/components/com_jshopping/templates/default/product/block_image_middle.php
@@ -13,8 +13,8 @@ defined('_JEXEC') or die();
     <img id="main_image" src="<?php print $this->image_product_path?>/<?php print $this->noimage?>" alt="<?php print htmlspecialchars($this->product->name)?>" />
 <?php }?>
 <?php foreach($this->images as $k=>$image){?>
-    <a class="lightbox" id="main_image_full_<?php print $image->image_id?>" href="<?php print $this->image_product_path?>/<?php print $image->image_full;?>" <?php if ($k!=0){?>style="display:none"<?php }?> title="<?php print htmlspecialchars($image->_title)?>">
-        <img id = "main_image_<?php print $image->image_id?>" src = "<?php print $this->image_product_path?>/<?php print $image->image_name;?>" alt="<?php print htmlspecialchars($image->_title)?>" title="<?php print htmlspecialchars($image->_title)?>" />
+    <a class="lightbox" id="main_image_full_<?php print $image->image_id?>" href="<?php print $this->image_product_path?>/<?php print $image->image_full;?>" <?php if ($k!=0){?>style="display:none"<?php }?> title="<?php print htmlspecialchars($image->title ? $image->title : $image->_title)?>">
+        <img id = "main_image_<?php print $image->image_id?>" src="<?php print $this->image_product_path?>/<?php print $image->image_name;?>" alt="<?php print htmlspecialchars($image->_title)?>" title="<?php print htmlspecialchars($image->title)?>" />
         <div class="text_zoom">
             <span class="icon-zoom-in"></span>
 			<?php print JText::_('JSHOP_ZOOM_IMAGE')?>
diff --git a/components/com_jshopping/templates/default/product/block_image_thumb.php b/components/com_jshopping/templates/default/product/block_image_thumb.php
index d2b3ae0c..c21c5cc6 100644
--- a/components/com_jshopping/templates/default/product/block_image_thumb.php
+++ b/components/com_jshopping/templates/default/product/block_image_thumb.php
@@ -11,7 +11,7 @@ defined('_JEXEC') or die();
 <?php if ( (count($this->images)>1) || (count($this->videos) && count($this->images)) ) {?>
     <?php foreach($this->images as $k=>$image){?>
 		<div class="sblock0">
-			<img class="jshop_img_thumb" src="<?php print $this->image_product_path?>/<?php print $image->image_thumb?>" alt="<?php print htmlspecialchars($image->_title)?>" title="<?php print htmlspecialchars($image->_title)?>" onclick="jshop.showImage(<?php print $image->image_id?>)" >
+			<img class="jshop_img_thumb" src="<?php print $this->image_product_path?>/<?php print $image->image_thumb?>" alt="<?php print htmlspecialchars($image->_title)?>" title="<?php print htmlspecialchars($image->title)?>" onclick="jshop.showImage(<?php print $image->image_id?>)" >
 		</div>
     <?php }?>
 <?php }?>
\ No newline at end of file
diff --git a/components/com_jshopping/templates/default/product/product_default.php b/components/com_jshopping/templates/default/product/product_default.php
index ca456672..d2a8b5f9 100644
--- a/components/com_jshopping/templates/default/product/product_default.php
+++ b/components/com_jshopping/templates/default/product/product_default.php
@@ -53,8 +53,8 @@ include(dirname(__FILE__)."/load.js.php");
 						<?php }?>
 						
 						<?php foreach($this->images as $k=>$image){?>
-							<a class="lightbox" id="main_image_full_<?php print $image->image_id?>" href="<?php print $this->image_product_path?>/<?php print $image->image_full;?>" <?php if ($k!=0){?>style="display:none"<?php }?> title="<?php print htmlspecialchars($image->_title)?>">
-								<img id="main_image_<?php print $image->image_id?>" class="image" src="<?php print $this->image_product_path?>/<?php print $image->image_name;?>" alt="<?php print htmlspecialchars($image->_title)?>" title="<?php print htmlspecialchars($image->_title)?>" />
+							<a class="lightbox" id="main_image_full_<?php print $image->image_id?>" href="<?php print $this->image_product_path?>/<?php print $image->image_full;?>" <?php if ($k!=0){?>style="display:none"<?php }?> title="<?php print htmlspecialchars($image->title ? $image->title : $image->_title)?>">
+								<img id="main_image_<?php print $image->image_id?>" class="image" src="<?php print $this->image_product_path?>/<?php print $image->image_name;?>" alt="<?php print htmlspecialchars($image->_title)?>" title="<?php print htmlspecialchars($image->title)?>" />
 								<div class="text_zoom">
 									<span class="icon-zoom-in"></span>
 									<?php print JText::_('JSHOP_ZOOM_IMAGE')?>
@@ -73,7 +73,7 @@ include(dirname(__FILE__)."/load.js.php");
                         <?php if ( (count($this->images)>1) || (count($this->videos) && count($this->images)) ) {?>
                             <?php foreach($this->images as $k=>$image){?>
                                 <div class="sblock0">
-                                    <img class="jshop_img_thumb" src="<?php print $this->image_product_path?>/<?php print $image->image_thumb?>" alt="<?php print htmlspecialchars($image->_title)?>" title="<?php print htmlspecialchars($image->_title)?>" onclick="jshop.showImage(<?php print $image->image_id?>)">
+                                    <img class="jshop_img_thumb" src="<?php print $this->image_product_path?>/<?php print $image->image_thumb?>" alt="<?php print htmlspecialchars($image->_title)?>" title="<?php print htmlspecialchars($image->title)?>" onclick="jshop.showImage(<?php print $image->image_id?>)">
                                 </div>
                             <?php }?>
                         <?php }?>
