magento addImageToMediaGallery无效

时间:2017-09-21 15:15:42

标签: php magento

我试图以编程方式将图像添加到magento产品中,但没有运气。

我发现addImageToMediaGallery函数可以做到这一点,但它不起作用

$p = Mage::getModel('catalog/product')->load($id);

// save product 
foreach ($imgs as $k => $img) {


    $img_path = Mage::getBaseDir('media'). $img;
    if( !$k ) {
        $p->addImageToMediaGallery( $img_path , array('small_image', 'thumbnail', 'image'), false, false);
    } else {
        $p->addImageToMediaGallery( $img_path , array(), false, false);
    }
    $p->save();

}

我所知道的

  • 产品加载成功我尝试$p->getName()我得到了标题

  • 路径正确,图片确实存在于/home/tronixco/public_html/caskyco/media/temp_images/dji_phantom_4_drone_4k_hd_camerea_3_axis_gimbal_5km_range_with_28_minutes_flight_time_manfrotto_bag_pack_4_.jpg

  • addImageToMediaGallery 正在做一些工作,因为它将图片复制到catalog/product/d/j...

  • 管理面板中的
  • product_edit没有任何内容,就像没有上传任何图像一样

  • 即时运行外部脚本并且没有在var文件夹中获取任何日志,而且error_logs文件中没有任何错误

  • 整个代码在函数product_add_images( $id , $images )

  • 中运行

磁力版是1.9.2.4

1 个答案:

答案 0 :(得分:0)

<?php
require_once 'app/Mage.php';
Mage::app();
Mage::app()->getStore()->setId(Mage_Core_Model_App::ADMIN_STORE_ID);
$importDir = Mage::getBaseDir('media') . DS . 'bulkimages/101/';

$productsData = array('Purple-Crown-Ring-MFAS.jpg','Purple-Crown-Ring-MFC.jpg','Purple-Crown-Ring-MSAS.jpg','Purple-Crown-Ring-MSF.jpg');

$productSKU = '111';
$ourProduct = Mage::getModel('catalog/product')->loadByAttribute('sku',$productSKU);

foreach($productsData as $fileName){
    $filePath = $importDir.$fileName;
    if (file_exists($filePath)) {
        $ourProduct->addImageToMediaGallery($filePath, array('image', 'small_image', 'thumbnail'), false, false);
        $ourProduct->save();
        echo "done ";
    } else {
        echo $productSKU . " not done";
        echo "<br>";
    }   
}
?>