首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Magento2.2以编程方式向产品添加图像不会设置small_image

Magento2.2以编程方式向产品添加图像不会设置small_image
EN

Stack Overflow用户
提问于 2018-03-08 16:29:49
回答 1查看 1.6K关注 0票数 2

我正在以编程方式向产品添加图像。每个产品都可以有从1到n的图像。因此,我按照我需要的方式重新排序图像数组,然后,将该数组的第一个图像(必须是第一个显示在产品页面和产品列表视图中)设置为media_attribute (图像、small_image、缩略图)。

一切看起来都很好,图像在产品细节中得到了正确的排序,但是没有设置小图像和缩略图。

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

代码语言:javascript
复制
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){
    }       
}

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

有线索吗?

编辑

我找到了一个补丁,但它并不能让我满意.在第一次保存了产品后,我回忆起现有的图像,并将第一个设置为基本/拇指/小,它看起来很有效,但它实际上浪费了很多时间……

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

EN

回答 1

Stack Overflow用户

发布于 2020-07-17 22:15:22

我终于成功地通过调用:

代码语言:javascript
复制
$this->productRepository->save($_product);

.的

代码语言:javascript
复制
$_product->save();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49177977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档