7

在 Magento 中,以下代码将以编程方式将图片添加到产品的图片库中

//set store to admin id so we can save a product
Mage::app()->getStore()->setId(Mage_Core_Model_App::ADMIN_STORE_ID);

//load a product with an id of 2514
$product = Mage::getModel('catalog/product')->load('2514');

//add the image
$product->addImageToMediaGallery('/tmp/test.png','image',false,false);        

正如预期的那样,这会将图像添加到产品的媒体库中,并且该图像将被选为产品的“基础图像”。但是,不会为此图像选择“small_image”和“thumbnail”图像。

如果使用以下代码

$product->addImageToMediaGallery('/tmp/test.png','image',false,false);        
$product->addImageToMediaGallery('/tmp/test.png','small_image',false,false);        
$product->addImageToMediaGallery('/tmp/test.png','thumbnail',false,false);        

Magento 将向媒体库添加三个新图像。一张选择了基本图像,一张选择了小图像,第三张选择了缩略图。

是否可以在您致电时向 Magento 发出信号

$product->addImageToMediaGallery('/tmp/test.png','image',false,false);        

它应该自动生成小图像和缩略图?

4

3 回答 3

11

尝试:

$product->addImageToMediaGallery('/tmp/test.png',array('image', 'small_image', 'thumbnail'),false,false); 
于 2012-09-19T03:06:02.543 回答
0

我和你有同样的问题。图像被导入但媒体属性(基本、缩略图、小)未显示的原因是因为它是在子网站中设置的。相反,您希望将其设置为默认值。换句话说,商店 ID = 0。

希望有帮助。山姆

于 2015-11-05T11:11:09.860 回答
0

这对我有用

导入并设置

$id = 2400;
$product = $object_Manager->create('Magento\Catalog\Model\Product')->load($id);
$imageType = ['image', 'small_image', 'thumbnail'];
$imagePath = '/tmp/test.png';
$product->addImageToMediaGallery($imagePath, $imageType, false, false);
$product->setStoreId(0)->save();

只是为了设置

$id = 2400;
$product = $object_Manager->create('Magento\Catalog\Model\Product')->load($id);
if (!$product->hasImage()) continue;
if (!$product->hasSmallImage()) $product->setSmallImage($product->getImage());
if (!$product->hasThumbnail()) $product->setThumbnail($product->getImage());
$product->setStoreId(0)->save();
于 2021-05-17T12:34:35.367 回答