2016-12-26 113 views
0

我使用下面的代碼以編程方式從Magento數據庫中刪除產品,並且此代碼適用於我。如何刪除編程後產品在Magento中的圖像...?

$productEntityTable = Mage::getModel('importexport/import_proxy_product_resource')->getEntityTable(); 
    if ($idToDelete) { 
    $this->db->query("DELETE FROM `{$productEntityTable}` WHERE `entity_id` IN (?)", $idToDelete); 
    echo 'Deleted'; 
    } 

但我想刪除產品圖片也和這一點,我用下面一段代碼

$_product = Mage::getModel('catalog/product')->load($idToDelete); 
$mediaApi = Mage::getModel("catalog/product_attribute_media_api"); 
try { 
    $items = $mediaApi->items($_product->getId()); 
    foreach($items as $item) { 
    echo ($mediaApi->remove($_product->getId(), $item['file'])); 
    } 
} catch (Exception $exception){ 
    var_dump($exception); 
    die('Exception Thrown'); 
} 

而且我得到了下面的錯誤,我使用了許多代碼,但所有的時間我同樣的錯誤。

Fatal error: Call to a member function getUserId() on a non-object in /my_path/app/code/local/Mage/Catalog/Model/Product/Attribute/Backend/Media.php on line 263

回答

0

可能要求當前用戶。

設置當前用戶爲管理員的代碼

Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID); 
+0

我已通過商店和網站我倒是這個下面添加一行頂,我試圖與上述解決方案,但仍然得到同樣的錯誤。 我想知道,如果我們使用Mage API刪除產品,它會自動刪除產品的圖像或不... ...? –

0
Use can use below code 

<?php 
    require_once "YOURMAGENTODIR/app/Mage.php"; 
    umask(0); 
    Mage::app('admin'); 
    Mage::setIsDeveloperMode(true); 

    $productCollection=Mage::getResourceModel('catalog/product_collection'); 
    foreach($productCollection as $product){ 
    echo $product->getId(); 
    echo "<br/>"; 
      $MediaDir=Mage::getConfig()->getOptions()->getMediaDir(); 
      echo $MediaCatalogDir=$MediaDir .DS . 'catalog' . DS . 'product'; 
    echo "<br/>"; 

    $MediaGallery=Mage::getModel('catalog/product_attribute_media_api')->items($product->getId()); 
    echo "<pre>"; 
    print_r($MediaGallery); 
    echo "</pre>"; 

     foreach($MediaGallery as $eachImge){ 
      $MediaDir=Mage::getConfig()->getOptions()->getMediaDir(); 
      $MediaCatalogDir=$MediaDir .DS . 'catalog' . DS . 'product'; 
      $DirImagePath=str_replace("/",DS,$eachImge['file']); 
      $DirImagePath=$DirImagePath; 
      // remove file from Dir 

      $io  = new Varien_Io_File(); 
      $io->rm($MediaCatalogDir.$DirImagePath); 

      $remove=Mage::getModel('catalog/product_attribute_media_api')->remove($product->getId(),$eachImge['file']); 
     } 


    } 
+0

得到此錯誤: - 致命錯誤:未收集異常'異常'與消息'嚴格通知:Phxsolution_Manufactures_Helper_Profit_Data :: getPrice()聲明應與Mage_Tax_Helper_Data :: getPrice($ product,$ price,$ includesTax = NULL,$ shippingAddress = NULL,$ billingAddress = NULL,$ ctc = NULL,$ store = NULL,$ priceIncludesTax = NULL,$ roundPrice = true)位於/my_path/app/code/community/Phxsolution/Manufactures/Helper/Profit/Data.php在/my_path/app/code/core/Mage/Core/functions.php:245 –

+0

當你得到錯誤 – faizanbeg

+0

當我運行上面的代碼。 –

相關問題