Here's the code I used recently for creating a product. It's based on having an array of image urls ($imgArray
) rather than a single image url. It adds the first image in the array as the thumb/base/small and the rest as additional images.
It was based on MagePsycho's blog post here;
http://www.blog.magepsycho.com/how-to-import-product-images-from-external-url-in-magento/
// We set up a $count variable - the first image gets used as small, thumbnail and base
$count = 0;
$mediaAttribute = array (
'thumbnail',
'small_image',
'image'
);
foreach ($imgArray as $image) :
$imgUrl = $this->_save_image( $image );
if ($count == 0) :
$newproduct->addImageToMediaGallery( $imgUrl , $mediaAttribute, false, false );
else :
$newproduct->addImageToMediaGallery( $imgUrl , null, false, false );
endif;
$count++;
endforeach;
And the _save_image
method;
protected function _save_image($img) {
$imageFilename = basename($img);
$image_type = substr(strrchr($imageFilename,"."),1); //find the image extension
$filename = md5($img . strtotime('now')).'.'.$image_type; //give a new name, you can modify as per your requirement
$filepath = Mage::getBaseDir('media') . DS . 'import'. DS . $filename; //path for temp storage folder: ./media/import/
$newImgUrl = file_put_contents($filepath, file_get_contents(trim($img))); //store the image from external url to the temp storage folder
return $filepath;
}
If you are using similar and it isn't working you might want to look at filepaths, permissions and also reindexing as potential issues that could fix your problem.
First you have to upload alll the images you want to import in the media/import/yourimagesfolder/
The in the CSV columns for image, thumbnail and small_image your image path should look like this
/yourimagefolder/imagename.jpg
Best Answer
What your CSV file format? Your CSV format should be following format.