2016-12-26 5 views
0

Я использовал ниже код, чтобы удалить продукт из Magento Database программно, и этот код работает для меня.Как удалить изображения продукта в 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

Я уже Pass магазин и сайт я, и я попытался с выше решения, но все еще получаю ту же ошибку. Я хочу знать, что если мы удалим продукт с помощью 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, $ inclTax = NULL, $ shippingAddress = NULL, $ billingAddress = NULL, $ ctc = NULL, $ store = NULL, $ priceIncludesTax = NULL, $ roundPrice = true) в /my_path/app/code/community/Phxsolution/Manufactures/Helper/Profit/Data.php в строке 29 'в /my_path/app/code/core/Mage/Core/functions.php:245 –

+0

, когда вы получите сообщение об ошибке – faizanbeg

+0

Как я запустил приведенный выше код. –