【问题标题】:Magento 2.2 adding images to product programmatically does not set small_imageMagento 2.2 以编程方式向产品添加图像不会设置 small_image
【发布时间】:2018-08-17 02:14:51
【问题描述】:

我正在以编程方式将图像添加到产品中。每个产品可以有 1 到 n 张图片。 所以我以我需要的方式重新排序图像数组,然后到数组的第一个图像(必须是第一个显示在产品页面和产品列表视图中)我根据需要设置 media_attribute(图像,小图像,缩略图)。

似乎一切正常,产品详细信息中的图片排序正确,但未设置小图片和缩略图。

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

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){
    }       
}

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

有什么线索吗?

编辑

我找到了一个补丁,但它实际上并不能满足我...第一次保存产品后,我回忆了现有图像并将第一个设置为base/thumb/small,它似乎可以工作,但是它实际上浪费了很多时间......

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

【问题讨论】:

    标签: magento gallery magento2 product magento2.2


    【解决方案1】:

    我终于设法通过调用:

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

    插入

    $_product->save();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-16
      • 1970-01-01
      • 1970-01-01
      • 2016-03-14
      • 1970-01-01
      • 2015-08-08
      • 2012-02-08
      • 2016-12-14
      相关资源
      最近更新 更多