2016-04-29 12 views
1

以下のコードで、Magentoの製品イメージをcsvファイルのproduct skuを使用して更新する必要があります。Magento製品画像のアップロードがコード内で機能していません

私のCSVファイルには、Product SKUのFirstカラムとImage Nameの2つのカラムがあります。

<?php 
    ini_set('display_errors', 1); 
    ini_set('display_startup_errors', 1); 
    error_reporting(E_ALL); 
    set_time_limit(0); 

    require_once 'app/Mage.php'; 
    Mage::app(); 
    //Mage::app()->getStore()->setId(Mage_Core_Model_App::ADMIN_STORE_ID); 

    $connection = Mage::getSingleton('core/resource')->getConnection('core_write'); 
    define('CSV_PATH','csvfiles/'); 

    $csv_fileoutput = CSV_PATH . "output_imagesupload.csv"; 
    $csvfileoutput = fopen($csv_fileoutput, 'a'); 

    $importDir = Mage::getBaseDir('media') . DS . 'incoming/'; 
    $file_handle = fopen("csvfiles/images_insert.csv", "r"); 
    while (!feof($file_handle)) { 
     $line_of_text = fgetcsv($file_handle, 1024); 
     $productSKU = $line_of_text[0]; 
     $productid = Mage::getModel('catalog/product')->getIdBySku($productSKU); 
     if ($productid) 
     { 
      $Products = Mage::getModel('catalog/product')->loadByAttribute('sku',$productSKU); 
      $fileName = $line_of_text[1]; 
      $filePath = $importDir.$fileName; 

      if(file_exists($filePath)) { 

       $Products->addImageToMediaGallery($filePath, array('image', 'small_image', 'thumbnail'), true, false); 
       $Products->save(); 


      /* $Products->addImageToMediaGallery($filePath,'image',true,false); 
       $Products->save(); 
*/ 
    /* 
       $setbaseimage=Mage::getModel('catalog/product')->load($objProduct); 
       $setbaseimage->addImageToMediaGallery($filePath,array('image','small_image','thumbnail'),true,false); 
       Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID); 
       $setbaseimage->save(); 
    */ 
      } else{ 
       echo $productSKU . " Not done \n"; 

      } 
       $my_product = Mage::getModel('catalog/product')->load($productid); 
       $url = $my_product->getProductUrl(); 

       fputcsv($csvfileoutput, array($productSKU,$url)); 
     } 
     else {echo $productSKU." - Product is not available\n"; } 

    } 
    fclose($file_handle); 

    ?> 

私のコードが間違っていることを教えてください。

答えて

1

、例えばこれを参照してください https://magento.stackexchange.com/questions/69944/magento-add-image-to-media-gallery-causing-duplicate-images-with-1-appended

foreach ($skuImageMap as $sku => $images) { 
    $ourProduct = Mage::getModel('catalog/product')->loadByAttribute('sku', $sku); 
    $saveFlag = true; 
    if ($ourProduct) { 
     foreach ($images as $index => $imagePath) { 
      if (file_exists($imagePath)) { 
       try { 
        $ourProduct->addImageToMediaGallery($imagePath, null, false, false); 
        $imageCount++; 
       } catch (Exception $e) { 
        $saveFlag = false; 
        echo "There was an issue saving image $imagePath to $sku :" . $e->getMessage() . "\n"; 
       } 
      } else { 
       $saveFlag = false; 
       echo "The image $imagePath does not exist.\n"; 
      } 
     } 

     if($saveFlag) { 
      try { 
       $ourProduct->save(); 
       echo "The image $imagePath was added to $sku successfully : $imageCount \n"; 
      } catch (Exception $e) { 
       zend_debug::dump($e->getMessage()); 
      } 
     } 

    } else { 
     echo "The product $sku does not exist \n"; 
    } 
} 
関連する問題