Removing duplicate product image Magento
Hello Friends
If you want to Removing duplicate product image in Magento then you can use my below script.While you importing product this problem occur.you can also use this script when you have duplicate more view images in magento.
First of you have to copy below code and save with anyfilename.php and put in root folder folder and run this file with yourbaseurl/filename.php
include('app/Mage.php');
//Mage::App('default');
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
error_reporting(E_ALL | E_STRICT);
Mage::setIsDeveloperMode(true);
ini_set('display_errors', 1);
ob_implicit_flush (1);
$mediaApi = Mage::getModel("catalog/product_attribute_media_api");
$_products = Mage::getModel('catalog/product')->getCollection();
$i =0;
$total = count($_products);
$count = 0;
foreach($_products as $_prod)
{
$_product = Mage::getModel('catalog/product')->load($_prod->getId());
$_md5_values = array();
//protected base image
$base_image = $_product->getImage();
if($base_image != 'no_selection')
{
$filepath = Mage::getBaseDir('media') .'/catalog/product' . $base_image ;
if(file_exists($filepath))
$_md5_values[] = md5(file_get_contents($filepath));
}
$i ++;
echo "\r\n processing product $i of $total ";
// Loop through product images
$_images = $_product->getMediaGalleryImages();
if($_images){
foreach($_images as $_image){
//protected base image
if($_image->getFile() == $base_image)
continue;
$filepath = Mage::getBaseDir('media') .'/catalog/product' . $_image->getFile() ;
if(file_exists($filepath))
$md5 = md5(file_get_contents($filepath));
else
continue;
if(in_array($md5, $_md5_values))
{
$mediaApi->remove($_product->getId(), $_image->getFile());
echo "\r\n removed duplicate image from ".$_product->getSku();
$count++;
} else {
$_md5_values[] = $md5;
}
}
}
}
Let me know if its work for your or not
If you want to Removing duplicate product image in Magento then you can use my below script.While you importing product this problem occur.you can also use this script when you have duplicate more view images in magento.
First of you have to copy below code and save with anyfilename.php and put in root folder folder and run this file with yourbaseurl/filename.php
include('app/Mage.php');
//Mage::App('default');
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
error_reporting(E_ALL | E_STRICT);
Mage::setIsDeveloperMode(true);
ini_set('display_errors', 1);
ob_implicit_flush (1);
$mediaApi = Mage::getModel("catalog/product_attribute_media_api");
$_products = Mage::getModel('catalog/product')->getCollection();
$i =0;
$total = count($_products);
$count = 0;
foreach($_products as $_prod)
{
$_product = Mage::getModel('catalog/product')->load($_prod->getId());
$_md5_values = array();
//protected base image
$base_image = $_product->getImage();
if($base_image != 'no_selection')
{
$filepath = Mage::getBaseDir('media') .'/catalog/product' . $base_image ;
if(file_exists($filepath))
$_md5_values[] = md5(file_get_contents($filepath));
}
$i ++;
echo "\r\n processing product $i of $total ";
// Loop through product images
$_images = $_product->getMediaGalleryImages();
if($_images){
foreach($_images as $_image){
//protected base image
if($_image->getFile() == $base_image)
continue;
$filepath = Mage::getBaseDir('media') .'/catalog/product' . $_image->getFile() ;
if(file_exists($filepath))
$md5 = md5(file_get_contents($filepath));
else
continue;
if(in_array($md5, $_md5_values))
{
$mediaApi->remove($_product->getId(), $_image->getFile());
echo "\r\n removed duplicate image from ".$_product->getSku();
$count++;
} else {
$_md5_values[] = $md5;
}
}
}
}
Let me know if its work for your or not
0 comments:
Post a Comment