Magento 2.2以编程方式将图像添加到产品中不会设置small_image

时间:2018-03-08 16:29:50

标签: magento gallery magento2 product magento2.2

我正在以编程方式向产品添加图片。每个产品都可以包含1到 n 图像。 所以我按照我需要的方式重新排序图像数组,然后,到数组的第一个图像(必须是第一个在产品页面和产品列表视图中显示)我根据需要设置了media_attribute(图像) ,small_image,thumbnail)。

一切似乎都能正常工作,图像在产品详细信息中正确排序,但未设置小图像和缩略图。

这是我用来添加图片的代码(通常在任何地方使用)

ksort($prod_images);
foreach($prod_images as $key=>$img){
    $imgPath = $dirName . $img;

    try{
        if($key == 1){
            $prod->addImageToMediaGallery($imgPath, array('image', 'small_image','thumbnail'), false, false);
        }else{
            $prod->addImageToMediaGallery($imgPath, null, false, false);
        }
        $prod->save();
    }catch(\Exception $e){
    }       
}

如果我将数组反转并将其添加为最后一个图像,我最终设法将正确的图像设置为小/拇指/基础,但是这样图像顺序错误,我需要保留它或最终更改它,但是我找不到办法。

有任何线索吗?

修改

我发现了一个补丁,但实际上并不满足我...在第一次保存产品后,我回想起现有的图像并将第一个设置为基础/拇指/小,它似乎有用,但是它实际上浪费了很多时间......

所以我仍然在寻找一个真正的解决方案。

1 个答案:

答案 0 :(得分:0)

我终于设法通过致电:

$this->productRepository->save($_product);

装有

$_product->save();
相关问题