Magento Удалить все изображения продуктов

8

У меня есть magento Installation, в котором клиенту было выполнено несколько импортов изображений, и он получил неправильные изображения в неправильных продуктах, тостеры с холодильниками с морозильной камерой, поскольку первоначальный импорт имел неправильные имена img. После дальнейшего импорта через CSV, кажется, он добавляет изображения, а не меняет их.

Мне нужно удалить все изображения продуктов на сайте, а затем повторно выполнить ПРАВИЛЬНЫЙ импорт, чтобы все изображения были правильными.

Есть ли быстрый способ удалить все изображения, а затем выполнить новый импорт через профили потоков данных и повторно сопоставить правильные поля?

Любая помощь будет потрясающей!

Энди Симпсон
источник

Ответы:

16

Самый быстрый способ удалить изображение, затем выполните следующие действия: удалите все записи из

  1. catalog_product_entity_media_gallery
  2. catalog_product_entity_media_gallery_value'

таблица, потому что magento сохранить все данные изображения продукта в этих таблицах.

Затем индекс из управления индексами от администратора для установки изображения черного цвета.

Затем удалите изображение, from dir затем media/catalog/product перейдите в папку magento dir и из этой папки удалите все файлы.

Другой процесс:

Энди Симпсон, вам нужен скрипт, который is delete all productиз вашей системы будет delete from DB and file system.

Шаг 1: Создайте, a php на root direct of magento systemкотором включают Mage.php at first code.

require_once "YOURMAGENTODIR/app/Mage.php";
umask(0);

Шаг 2: установить current store isадминистратора и установить режим разработчика

Mage::app('admin');
Mage::setIsDeveloperMode(true);

Шаг 3: Получить Product Collectionи создать цикл для получения одного продукта по одному

$productCollection=Mage::getResourceModel('catalog/product_collection');

Шаг 4: получить изображение товара по одному и удалить изображение, используя следующий код:

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

ПОЛНЫЙ КОД:

<?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']);
    }


}
Амит Бера
источник
Привет, спасибо за ваш ответ, я создал файл php и назвал его delete-image.php, как мне выполнить скрипт, мне нужно зайти на страницу через браузер? Я также изменил каталог / product_collection на каталог / product, так как здесь находятся изображения, это правильно? Спасибо за вашу помощь.
Энди Симпсон
1
Использование PHP исполнение оболочки, то лучше процесс .... еще попал файл со страницы с помощью браузера
Amit Бера
для меня ... это удаление только изображения первого продукта
Алам Заиб
@AmitBera, нужно ли усекать и эту таблицу? СТОЛ TRUNCATE catalog_product_entity_media_gallery_value_to_entity;
Джафар Пинджар
2

Полный текст MySQL для ответа Амит

SET FOREIGN_KEY_CHECKS = 0;
TRUNCATE TABLE catalog_product_entity_media_gallery;
TRUNCATE TABLE catalog_product_entity_media_gallery_value;
SET FOREIGN_KEY_CHECKS = 1;
kevando
источник
0

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

Вы можете использовать скрипт PHP, чтобы просмотреть все ваши продукты и удалить носитель. Взгляните на /programming/5709496/magento-programmatics-remove-product-images для получения дополнительной информации.

Вы можете безопасно удалить / media / catalog / product / и восстановить, если у вас есть рабочая резервная копия с правильными файлами изображений.

PAJ
источник
0

Я использовал Kevando на magento 2.2.7, но при импорте изображений снова не будет точно. Так что это мои ответы, это будет проверено.

SET FOREIGN_KEY_CHECKS = 0;
TRUNCATE TABLE catalog_product_entity_media_gallery;
TRUNCATE TABLE catalog_product_entity_media_gallery_value;
TRUNCATE TABLE catalog_product_entity_media_gallery_value_to_entity;
SET FOREIGN_KEY_CHECKS = 1;
xanka
источник
-1

Спасибо "Amit Bera", он спас мой день и работает нормально

Просто я следовал приведенной ниже процедуре, чтобы удалить все изображения товара.

Самый быстрый способ удалить изображение, затем выполните следующие действия: удалите все записи из

catalog_product_entity_media_gallery catalog_product_entity_media_gallery_value 'таблица, поскольку magento сохраняет все данные изображения продукта в этой таблице.

Затем индекс из управления индексами от администратора для установки изображения черного цвета.

Затем удалите изображение из dir, затем перейдите в папку magento dir по адресу media / catalog / product и из этой папки удалите все файлы.

Раджеш Джай
источник
Можете ли вы объяснить, почему -1 для этого.
Раджеш Джай
Это не ответ
seanbreeden