Magento在导入期间设置产品图像标签

时间:2011-08-27 14:19:01

标签: magento

我正在尝试使用

将产品图片导入Magento
$product->addImageToMediaGallery($imageFile, array('image','thumbnail','small_image'), false, false);

然而,我无法想出一种设置图像标签的方法。我尝试使用 getMediaGallery 获取图库,手动设置值并使用 setMediaGallery 将其分配回产品,但它会引发异常。

有没有人有这方面的经验?谢谢!

3 个答案:

答案 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,你可以分配标签,而且速度非常快。