我有这个我无法解决的问题。部分原因是我无法用正确的术语来解释它。我是新手,很抱歉这个笨拙的问题。
您可以在下面看到我的目标的概述。
我正在尝试在我的 magento 中销售类似的产品,为此我编写了一些代码,每件事都运行良好..
但我只有一个图像问题..
也就是说,我正在获取当前产品的所有图像,但未选择基本图像,如何以编程方式将第一个图像设置为基本图像。
有任何想法吗 ?
您好,您可以执行以下操作:
$image =$imagePath."image.png";
$product->setMediaGallery(array('images'=>array (), 'values'=>array ()));
if(is_file($image))
{
$product->addImageToMediaGallery($image, array ('image', 'small_image', 'thumbnail'), false, false);
}
即你需要先设置媒体库,PS这是一个必要的步骤。
然后使用 addImageToMediaGallery 将所有图像添加到画廊,其中 'image' 参考 'base_image'
即在上面的示例中,我们在一次调用中将 image.png 设置为 base_image、small_image 和缩略图。
希望这可以帮助你。
我使用以下方法获得了相同的结果:
$product->setSmallImage($path)
->setThumbnail($path)
->setImage($path)
->save();
在您的媒体库中有一张或多张图片的情况下效果更好。
我正在做
$product->load();
$gallery = $product->getMediaGalleryImages();
$paths = array();
foreach ($gallery as $image) {
$paths[] = $image->getFile();
}
sort($paths);
$path = array_shift($paths);
try {
$product->setSmallImage($path)
->setThumbnail($path)
->setImage($path)
->save();
} catch (Exception $e) {
echo $e->getMessage();
}
它获取所有产品图像,按文件名对它们进行排序,并将第一个设置为产品主图像。当我运行导入并添加了所有图片时,但没有设置主图像。
要获取我使用的一组或“破损”产品:
$collection = Mage::getModel('catalog/product')
->getCollection()
->addAttributeToFilter('small_image', array('eq' => ''));