Hey all, been a long time since I posted anything since my job is keeping me pretty busy…. here’s something I implemented for prettylittlething.com that might come in useful for you.
It’s a little script that basically scans a directory for images and, if it finds any, adds them to the relevant products.
Images have to be named as follows:
SKU-1.jpgSKU-2.jpg
SKU-3.jpg
ANOTHERSKU-1.jpgANOTHERSKU-2.jpg
etc…
here’s the script. Drop it into your ‘shell’ directory and run it on a cronjob then just upload your images as and when required.
<?php
$image_dir = "full/path/to/image/upload/directory/";
require('abstract.php');
//add images to array
$search = "*-*.jpg";
$images = glob($image_dir.$search);
natcasesort($images);
$image_array = array();
foreach($images as $image){
$filename = strtoupper($image);
$name = basename($filename);
$dat = explode("-",$name);
$sku = $dat[0];
$imagenum = explode(".",$dat[1]);
$imagenum = $imagenum[0];
$image_array[$sku][$imagenum] = $image;
}
if (count($image_array >= 1)){
$output = "";
foreach ($image_array as $sku=>$images){
if (isset($images[1])){
$product = Mage::getModel('catalog/product')->loadByAttribute('sku',$sku);
if ($product){
$imgnum = 0;
foreach($images as $image){
$imgnum++;
$image_attributes = null;
if ($imgnum == 1)
$image_attributes = array('image', 'small_image', 'thumbnail');
$product->addImageToMediaGallery($image, $image_attributes, false, false);
$output .= "$sku added ".basename($image)." to ".$product->getName()."\n";
}
$product->save();
foreach($images as $image){
unlink($image);
}
} else {
$output .= "******* ERROR: can't find product for ".$sku." ********** \n";
}
} else {
$output .= "******* ERROR: unable to locate image 1 for ".$sku." ********** \n";
}
}
if ($output != ""){
echo $ouput;
//or you can email this somewhere
}
}