Как удалить изображения продукта в 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');
}

И я получил следующую ошибку, и я использовал много кода, но все время получал одну и ту же ошибку.

Неустранимая ошибка: вызов функции-члена getUserId () для необъекта в
/my_path/app/code/local/Mage/Catalog/Model/Product/Attribute/Backend/Media.php
по линии 263

0

Решение

Может его просить текущего пользователя.

установить текущего пользователя в качестве администратора для этого добавить ниже строки верхней части кода

Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
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

По вопросам рекламы [email protected]