【问题标题】:Adding Magento's small_image and thumbnail Programmatically以编程方式添加 Magento 的 small_image 和 thumbnail
【发布时间】:2012-09-19 02:57:33
【问题描述】:

在 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);        

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

【问题讨论】:

    标签: php magento


    【解决方案1】:

    尝试:

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

    【讨论】:

    • 奇怪,我有这个代码,图像已经上传,但是基础图像等没有被选中......有什么想法吗?
    • @BobvanLuijt 7 年后我仍然有这个问题!
    【解决方案2】:

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

    希望对您有所帮助。 山姆

    【讨论】:

      【解决方案3】:

      这对我有用

      导入和设置

      $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();
      

      【讨论】:

        猜你喜欢
        • 2018-08-17
        • 2016-03-14
        • 2011-02-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-06-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多