我的商店有很多产品图片。现在,我不想一个接一个地添加所有图像,因为这将非常耗时。图像的文件名等于产品名称,所以我尝试了这个:
<?php
require_once('app/Mage.php');
umask(0);
Mage::app('default');
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
$importDir = Mage::getBaseDir('media') . DS . 'import/';
$_productCollection = Mage::getModel('catalog/product')
->getCollection()->addAttributeToSelect('*');
foreach($_productCollection as $_product)
{ $fileName = $_product->getName();
$filePath = $importDir.$fileName;
if ( file_exists($filePath) ) {
try {
$_product->addImageToMediaGallery($filePath, 'image', false, false);
$_product->addImageToMediaGallery($filePath, 'small_image', false, true);
} catch (Exception $e) {
echo $e->getMessage();
}
}
$_product->save();
}
?>
如果我要拍摄一张特定的图片,代码本身就会起作用,但它不能用于名称。所有图像都在导入文件夹中。
谢谢!
答案 0 :(得分:1)
你没有提到图片(i.e., .jpg, .png, etc)
的扩展名。
您必须添加$filepath
$filePath = $importDir.$fileName.'.png'; //if all images are png