Problem: Es wird das falsche Bild angezeigt als das von Ihnen eingefügte. Mögliche Fehler:
- Überprüfen Sie für jedes Produkt alle Store-View-Bilder. Vielleicht stimmen sie mit Ihrem gewünschten Bild überein.
- Erstellen Sie den Bildcache neu
- Überprüfen Sie die Berechtigungen für das Verzeichnis
- Überprüfen Sie, ob in der Mediendatei bereits ein Bild mit demselben Namen vorhanden ist. Überprüfen Sie auch, ob das Problem auf die Nichtbeachtung der Groß- und Kleinschreibung zurückzuführen ist
- Indizieren Sie die Produktstruktur des Katalogs neu. Dadurch wird sichergestellt, dass das richtige Produktbild verlinkt und angezeigt wird.
UPDATE: Magento zeigt Bild im Frontend, aber nicht im Backend
Lösung: Ich habe jetzt wohl die Lösung gefunden. Das Bild wird im Frontend angezeigt, aber nicht im Backend. Wahrscheinlich ist das hier eine Lösung: http://www.blog.magepsycho.com/how-to-fix-the-issue-product-images-missing-in-backend-but-not-in-frontend/ . Es handelt sich um ein Skript, das die Tabelle auf „Beschädigungen“ prüft, die der Grund dafür sind, dass ein Bild nicht angezeigt wird.
UPDATE2: Multistore zeigt falsche/unterschiedliche Bilder pro Store
So erhalten Sie die Bilder zurück und setzen alle Bilder zurück
Eine Erweiterung des obigen Updates ist meine eigene Anpassung des Skripts. Es ruft Bilder zurück, die im Frontend, aber nicht im Backend angezeigt werden, oder wenn in den verschiedenen Storeviews falsche/unterschiedliche Bilder angezeigt werden.
update_missing_files.php
* @website http://www.magepsycho.com edited by http://www.devproblems.com * @category Export / Import */ $mageFilename = 'app/Mage.php'; require_once $mageFilename; Mage::setIsDeveloperMode(true); ini_set('display_errors', 1); umask(0); Mage::app('admin'); Mage::register('isSecureArea', 1); Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID); set_time_limit(0); ini_set('memory_limit','1024M'); /***************** UTILITY FUNCTIONS ********************/ function _log($message, $file = 'update_missing_images.log'){ Mage::log($message, null, $file); } function _getIndex($field) { global $fields; $result = array_search($field, $fields); if($result === false){ $result = -1; } return $result; } function _getConnection($type = 'core_read'){ return Mage::getSingleton('core/resource')->getConnection($type); } function _getTableName($tableName){ return Mage::getSingleton('core/resource')->getTableName($tableName); } function _getAttributeId($attribute_code = 'price'){ $connection = _getConnection('core_read'); $sql = "SELECT attribute_id FROM " . _getTableName('eav_attribute') . " WHERE entity_type_id = ? AND attribute_code = ?"; $entity_type_id = _getEntityTypeId(); return $connection->fetchOne($sql, array($entity_type_id, $attribute_code)); } function _getEntityTypeId($entity_type_code = 'catalog_product'){ $connection = _getConnection('core_read'); $sql = "SELECT entity_type_id FROM " . _getTableName('eav_entity_type') . " WHERE entity_type_code = ?"; return $connection->fetchOne($sql, array($entity_type_code)); } function _getIdFromSku($sku){ $connection = _getConnection('core_read'); $sql = "SELECT entity_id FROM " . _getTableName('catalog_product_entity') . " WHERE sku = ?"; return $connection->fetchOne($sql, array($sku)); } function _checkIfSkuExists($sku){ $connection = _getConnection('core_read'); $sql = "SELECT COUNT(*) AS count_no FROM " . _getTableName('catalog_product_entity') . " WHERE sku = ?"; $count = $connection->fetchOne($sql, array($sku)); if($count > 0){ return true; }else{ return false; } } function _checkIfRowExists($productId, $attributeId, $value){ $tableName = _getTableName('catalog_product_entity_media_gallery'); $connection = _getConnection('core_read'); $sql = "SELECT COUNT(*) AS count_no FROM " . _getTableName($tableName) . " WHERE entity_id = ? AND attribute_id = ? AND value = ?"; $count = $connection->fetchOne($sql, array($productId, $attributeId, $value)); if($count > 0){ return true; }else{ return false; } } function _insertRow($productId, $attributeId, $value){ $connection = _getConnection('core_write'); $tableName = _getTableName('catalog_product_entity_media_gallery'); $sql = "INSERT INTO " . $tableName . " (attribute_id, entity_id, value) VALUES (?, ?, ?)"; $connection->query($sql, array($attributeId, $productId, $value)); } function _deleteWrongRows($productId, $smallImageId, $imageId, $thumbnailId){ $connection = _getConnection('core_write'); $tableName = _getTableName('catalog_product_entity_varchar'); $sql = "DELETE FROM " . $tableName . " WHERE `entity_id` = ? AND store_id != ? AND ( attribute_id = ? OR attribute_id = ? OR attribute_id = ? )"; //printf($sql, $productId, 0, $smallImageId, $imageId, $thumbnailId); $connection->query($sql, array($productId, 0, $smallImageId, $imageId, $thumbnailId)); } function _updateMissingImages($count, $productId, $data){ $connection = _getConnection('core_read'); $smallImageId = _getAttributeId('small_image'); $imageId = _getAttributeId('image'); $thumbnailId = _getAttributeId('thumbnail'); $mediaGalleryId = _getAttributeId('media_gallery'); //getting small, base, thumbnail images from catalog_product_entity_varchar for a product $sql = "SELECT * FROM " . _getTableName('catalog_product_entity_varchar') . " WHERE attribute_id IN (?, ?, ?) AND entity_id = ? AND `value` != 'no_selection'"; $rows = $connection->fetchAll($sql, array($imageId, $smallImageId, $thumbnailId, $productId)); if(!empty($rows)){ foreach($rows as $_image){ //check if that images exist in catalog_product_entity_media_gallery table or not if(!_checkIfRowExists($productId, $mediaGalleryId, $_image['value'])){ //insert that image in catalog_product_entity_media_gallery if it doesn't exist _insertRow($productId, $mediaGalleryId, $_image['value']); /* Output / Logs */ $missingImageUpdates = $count . '> Updated for:: $productId=' . $productId . ', $image=' . $_image['value']; echo $missingImageUpdates.' '; _log($missingImageUpdates); } // delete wrong product selected images storeview rows if(_deleteWrongRows($productId, $smallImageId, $imageId, $thumbnailId)){ $ImageUpdates = $count . '> Deleted wrong rows for:: $productId=' . $productId . ', $image=' . $_image['value']; echo $ImageUpdates.' '; _log($ImageUpdates); } } $separator = str_repeat('=', 100); _log($separator); echo $separator . ' '; } } /***************** UTILITY FUNCTIONS ********************/ $messages = array(); $csv = new Varien_File_Csv(); $data = $csv->getData('update_missing_images.csv'); //path to csv $fields = array_shift($data); #print_r($fields); print_r($data); exit; $message = '
'; $count = 1; foreach($data as $_data){ $sku = isset($_data[_getIndex('sku')]) ? trim($_data[_getIndex('sku')]) : ''; if(_checkIfSkuExists($sku)){ try{ $productId = _getIdFromSku($sku); _updateMissingImages($count, $productId, $_data); $message .= $count . '> Erfolg:: Beim Aktualisieren der Bilder von Sku (' . $sku . '). '; }catch(Exception $e){ $message .= $count .'> Fehler:: Beim Aktualisieren der Bilder der Sku (' . $sku . ') => '.$e->getMessage().' '; } }else{ $message .= $count .'> Fehler:: Produkt mit Sku (' . $sku . ') existiert nicht. '; } $count++; } echo $message; //$process = Mage::getSingleton('index/indexer')->getProcessByCode('catalog_product_flat'); ?>
Erstellen Sie eine Datei update_missing_images.csv wie:
Artikelnummer SKU1234 SKU4312 usw.
VERWENDEN SIE DIESES SKRIPT AUF EIGENES RISIKO
Hallo Welt
Ich habe jetzt wohl die Lösung gefunden. Das Bild wird im Frontend angezeigt, aber nicht im Backend. Wahrscheinlich ist das hier eine Lösung: http://www.blog.magepsycho.com/how-to-fix-the-issue-product-images-missing-in-backend-but-not-in-frontend/