Magento:如何以编程方式从图库中排除图像?

时间:2016-01-28 10:56:59

标签: magento

我正在以编程方式创建产品和图片。唯一不起作用的是“从图库中排除”功能。

有关详细信息,请参阅http://snag.gy/QGhPg.jpg

我如何在代码中设置它?我目前的代码如下:

$product->addImageToMediaGallery($myImage, array('image','thumbnail','small_image'), false, false);

该标志被称为disabled我认为,但不确定。

谢谢!

4 个答案:

答案 0 :(得分:2)

例如,禁用产品的所有图像

$product = Mage::getModel('catalog/product')->load(12345);
$images = $product->getMediaGalleryImages();
$attributes = $product->getTypeInstance(true)->getSetAttributes($product);
$mediaGalleryAttribute = $attributes['media_gallery'];
foreach ($images as $image) {
    $mediaGalleryAttribute->getBackend()->updateImage($product, $image['file'], array('exclude' => true));
}
$product->save();

答案 1 :(得分:1)

尝试使用:

$product->addImageToMediaGallery($myImage, array('image','thumbnail','small_image'), false, true);

最后一个参数应设置为true,以便从图库中排除图片。

请参阅:app/code/core/Mage/Catalog/Model/Product.php

答案 2 :(得分:0)

尝试以下代码..首先保存产品并插入图片

$productid=10; // Product id of that product which image you want to update
//for remove existing Images
$loadpro=Mage::getModel('catalog/product')->load($productid);
$mediaApi = Mage::getModel("catalog/product_attribute_media_api");
$mediaApiItems = $mediaApi->items($loadpro->getId());

foreach($mediaApiItems as $item) {
  $datatemp=$mediaApi->remove($loadpro->getId(), $item['file']);
}
$loadpro->save(); //before adding need to save product

//for add new images
$loadpro=Mage::getModel('catalog/product')->load($loadpro->getId());  
$loadpro->addImageToMediaGallery($loadpro, array ('image','small_image','thumbnail'), true, false);

答案 3 :(得分:0)

$mediaArray = array(
        'thumbnail'   => $oscProduct['products_image'],
        'small_image' => $oscProduct['products_mediumimage'],
        'image'       => $oscProduct['products_largeimage'],
    );

    // Remove unset images, add image to gallery if exists
    $importDir = Mage::getBaseDir('media') . DS . 'import/';

    foreach ( $mediaArray as $imageType => $fileName ) {
        $filePath = $importDir . $fileName;
        if ( file_exists($filePath) ) {
            try {
                $product->addImageToMediaGallery($filePath, $imageType, false);
            } catch (Exception $e) {
                echo $e->getMessage();
            }
        } else {
            echo "Product does not have an image or the path is incorrect. Path was: {$filePath}<br/>";
        }
    }

注意: $ imageType不是数组,与对应的数据相同。

编辑:您只需要一个图片,并将其设置为每种类型。使用$ product-&gt; save()保存产品后,尝试使用以下内容,假设您已经设置了图像类型:

$product->setThumbnail($product->getImage());
$product->setSmallImage($product->getImage());
$product->save();