我正在尝试使用
将产品图片导入Magento$product->addImageToMediaGallery($imageFile, array('image','thumbnail','small_image'), false, false);
然而,我无法想出一种设置图像标签的方法。我尝试使用 getMediaGallery 获取图库,手动设置值并使用 setMediaGallery 将其分配回产品,但它会引发异常。
有没有人有这方面的经验?谢谢!
答案 0 :(得分:8)
通过此代码将图像添加到媒体库...
$product->addImageToMediaGallery($imageFile, array('image','thumbnail','small_image'), false, false);
...从产品中获取media_gallery
数组,然后弹出添加的最新图像,然后在那里设置标签。
之后你可以把它推回media_gallery
的图像数组,这里是代码:
$gallery = $product->getData('media_gallery');
$lastImage = array_pop($gallery['images']);
$lastImage['label'] = $image_label;
array_push($gallery['images'], $lastImage);
$product->setData('media_gallery', $gallery);
$product->save();
答案 1 :(得分:3)
几天前有相同的任务,可以通过扩展核心类(将它们放在'本地'代码池中)来解决它。
在Mage/Catalog/Model/Product.php
中向方法$label=''
添加新参数addImageToMediaGallery
并将其传递给$mediaGalleryAttribute->getBackend()->addImage($this, $file, $mediaAttribute, $move, $exclude, $label);
Mage/Catalog/Model/Product/Attribute/Backend/Media.php
中再次添加新参数$label=''
并将'label' => ''
更改为'label' => $label
HTH
答案 2 :(得分:0)
我建议你尝试Magmi,你可以分配标签,而且速度非常快。