以编程方式设置基础图像

3
我有一个问题无法解决,部分原因是我找不到正确的术语来解释它。由于我刚开始接触这个领域,所以对于这个笨拙的问题请见谅。
以下是我的目标概述。
我正在尝试在我的Magento网站上销售类似的产品,为此编写了一些代码,一切都正常运行。
但是,我只有一个关于图片的问题。
即我可以获取当前产品的所有图像,但未能选择基本图像。如何通过程序将第一张图片设置为基本图像?
有什么想法吗?
2个回答

3
你可以按照以下步骤进行操作:

你好,以下是具体步骤:

$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);
}

即需要先设置媒体库,注意这是必要的步骤。

然后使用“addImageToMediaGallery”将所有图像添加到媒体库中,其中“image”指“base_image”。

例如,在上面的示例中,我们在一个调用中将“image.png”设置为“base_image”,“small_image”和缩略图图像。

希望这可以帮助您。


2
我使用以下方法获得了相同的结果:
$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' => ''));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接