Magento no encuentra ni muestra las imágenes correctas del producto

Problema: se muestra una imagen incorrecta en comparación con la que insertó. Posibles errores:

  • Consulta por producto todas las imágenes de la tienda. Quizás coincida con la imagen que deseas.
  • Reconstruir la caché de imágenes
  • Comprobar permisos en el directorio
  • Compruebe si ya existe una imagen con el mismo nombre en el archivo multimedia. Compruebe también si el problema se debe a la falta de distinción entre mayúsculas y minúsculas.
  • Reindexar la estructura de productos del catálogo. Esto garantiza que se vincule y muestre la imagen del producto correcta.

ACTUALIZACIÓN: Magento muestra la imagen en el frontend, pero no en el backend

Solución: Probablemente ya encontré la solución. La imagen se muestra en el frontend, pero no en el backend. Probablemente esta sea una solución: http://www.blog.magepsycho.com/how-to-fix-the-issue-product-images-missing-in-backend-but-not-in-frontend/ Es un script que comprueba si hay 'daños' en la tabla, que es la razón por la que no se muestra una imagen.

ACTUALIZACIÓN 2: Multistore muestra imágenes erróneas o diferentes por tienda

Cómo recuperar las imágenes y restablecer todas las imágenes

Una extensión de la actualización anterior es mi propia personalización del script. Recupera imágenes que aparecen en el frontend pero no en el backend o cuando se muestran imágenes incorrectas o diferentes entre las distintas vistas de la tienda.

actualizar_archivos_faltantes.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 como $_data){ $sku = isset($_data[_getIndex('sku')]) ? trim($_data[_getIndex('sku')]) : ''; if(_checkIfSkuExists($sku)){ try{ $productId = _getIdFromSku($sku); _updateMissingImages($count, $productId, $_data); $message .= $count . '> Éxito:: Al actualizar imágenes de Sku (' . $sku . '). '; }catch(Exception $e){ $message .= $count .'> Error:: Al actualizar las imágenes del SKU (' . $sku . ') => '.$e->getMessage().' '; } }else{ $message .= $count .'> Error:: El producto con el SKU (' . $sku . ') no existe. '; } $count++; } echo $message; //$process = Mage::getSingleton('index/indexer')->getProcessByCode('catalog_product_flat'); ?>

Crea un archivo update_missing_images.csv como:

Código SKU1234 SKU4312 ETC.

UTILICE ESTE GUIÓN BAJO SU PROPIA RESPONSABILIDAD

Pensamientos de 1 en “Magento not finding or showing right product images”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

es_ESEspañol
Ir arriba