Magento Eliminar todas las imágenes del producto

8

Tengo una instalación de magento que ha tenido varias importaciones de imágenes realizadas por el cliente y tiene imágenes incorrectas en los productos incorrectos, tostadoras con congeladores de refrigerador ya que la importación inicial tenía los nombres de img incorrectos. Después de una importación adicional a través de CSV, parece haber agregado las imágenes en lugar de cambiarlas.

Necesito eliminar todas las imágenes del producto en el sitio, luego volver a hacer la importación CORRECTA para que todas las imágenes sean correctas.

¿Existe una forma rápida de eliminar todas las imágenes y luego realizar una nueva importación a través de los perfiles de flujo de datos y volver a asignar los campos correctos?

¡Cualquier ayuda sería increíble!

Andy Simpson
fuente

Respuestas:

16

La forma más rápida de eliminar la imagen, luego siga los pasos a continuación: elimine todos los registros de

  1. catalog_product_entity_media_gallery
  2. catalog_product_entity_media_gallery_value'

tabla porque magento guarda todos los datos de imagen del producto en esa tabla.

Luego indexe desde la administración de índice del administrador para configurar la imagen en negro.

Luego elimine la imagen y from dir luego vaya a su directorio de magento en media/catalog/product y desde esta carpeta elimine todos los archivos.

Otro proceso:

Andy Simpson, necesitas un script que is delete all productde tu sistema lo hará delete from DB and file system.

Paso 1: Crear a php en el root direct of magento systemque incluir Mage.php at first code.

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

Paso 2: configura el current store isadministrador y configura el modo de desarrollador

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

Paso 3: Obtenga Product Collectiony cree un ciclo para obtener un producto uno por uno

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

Paso 4: obtenga la imagen del producto por uno y elimine la imagen uno usando el siguiente código:

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

CÓDIGO COMPLETO:

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


}
Amit Bera
fuente
Hola, gracias por su respuesta, he creado el archivo php y lo llamé delete-image.php, ¿cómo ejecuto el script? ¿Necesito visitar la página a través del navegador? También he cambiado catalog / product_collection a catalog / product ya que aquí es donde están las imágenes, ¿es correcto? gracias por tu ayuda.
Andy Simpson
1
use la ejecución del shell php, es un mejor proceso ... de lo contrario, presione su archivo desde la página a través del navegador
Amit Bera
para mí ... está borrando solo las imágenes del primer producto
Alam Zaib
@AmitBera, ¿también es necesario truncar esta tabla? TABLA TRUNCADO catalog_product_entity_media_gallery_value_to_entity;
jafar pinjar 01 de
2

La declaración completa de mysql para la respuesta de Amit es

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
fuente
0

No creo que haya una solución rápida para esto, a menos que pueda volver a importar todos sus productos desde una exportación de respaldo con los datos de imagen correctos.

Puede usar un script PHP para recorrer todos sus productos y eliminar los medios. Eche un vistazo a /programming/5709496/magento-programmatic-remove-product-images para obtener más información.

Puede eliminar / media / catalog / product / y restaurar de forma segura si tiene una copia de seguridad que funcione con los archivos de imagen correctos.

paj
fuente
0

Solía ​​Kevando en magento 2.2.7 pero cuando importo imágenes nuevamente no será exactamente. Así que esta es mi respuesta, se pondrá a prueba.

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
fuente
-1

Gracias "Amit Bera", me salvó el día y funciona bien

Solo seguí el siguiente procedimiento para eliminar todas las imágenes del producto.

La forma más rápida de eliminar la imagen, luego siga los pasos a continuación: elimine todos los registros de

catalog_product_entity_media_gallery catalog_product_entity_media_gallery_value 'tabla porque magento guarda todos los datos de imagen del producto en esa tabla.

Luego indexe desde la administración de índice del administrador para configurar la imagen en negro.

Luego, elimine la imagen del directorio y luego vaya a su directorio de magento en media / catalog / product y de esta carpeta elimine todos los archivos.

Rajesh Jai
fuente
¿Puede explicar por qué -1 para esto?
Rajesh Jai
No es una respuesta
seanbreeden