Magento vindt of toont niet de juiste productafbeeldingen

Probleem: de verkeerde afbeelding wordt getoond vergeleken met de afbeelding die u hebt ingevoegd. Mogelijke fouten:

  • Controleer per product alle afbeeldingen van de winkelweergave. Misschien kruist het met uw gewenste afbeelding.
  • Herstel de afbeeldingscache
  • Controleer de rechten op de directory
  • Controleer of er al een afbeelding met dezelfde naam in het mediabestand staat. Controleer ook of het probleem te wijten is aan hoofdletterongevoeligheid
  • Indexeer de productstructuur van de catalogus opnieuw. Dit zorgt ervoor dat de juiste productafbeelding wordt gekoppeld en weergegeven.

UPDATE: Magento toont afbeelding in frontend, maar niet in backend

Oplossing: Ik heb de oplossing nu waarschijnlijk gevonden. De afbeelding wordt in de frontend getoond, maar niet in de backend. Waarschijnlijk is dit een oplossing: http://www.blog.magepsycho.com/how-to-fix-the-issue-product-images-missing-in-backend-but-not-in-frontend/ . Het is een script dat controleert op 'schade' in de tabel, wat de reden is waarom een afbeelding niet wordt weergegeven.

UPDATE2: Multistore toont verkeerde/verschillende afbeeldingen per winkel

Hoe je de afbeeldingen terugkrijgt en alle afbeeldingen opnieuw instelt

Een uitbreiding op de bovenstaande update is mijn eigen aanpassing van het script. Het haalt afbeeldingen terug die wel in de frontend verschijnen maar niet in de backend of wanneer er verkeerde/verschillende afbeeldingen worden getoond tussen de verschillende storeviews.

update_ontbrekende_bestanden.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 . '> Succesvol:: Tijdens het bijwerken van afbeeldingen van Sku (' . $sku . '). '; }catch(Exception $e){ $message .= $count .'> Fout:: Tijdens het bijwerken van afbeeldingen van Sku (' . $sku . ') => '.$e->getMessage().' '; } }else{ $message .= $count .'> Fout:: Product met Sku (' . $sku . ') bestaat niet. '; } $count++; } echo $message; //$process = Mage::getSingleton('index/indexer')->getProcessByCode('catalog_product_flat'); ?>

Maak een bestand update_missing_images.csv, zoals:

sku SKU1234 SKU4312 ENZ.

GEBRUIK DIT SCRIPT OP EIGEN RISICO

1 gedachten over “Magento not finding or showing right product images”

Laat een reactie achter

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

nl_NLNederlands
Scroll naar boven