Magento Elimina tutte le immagini dei prodotti


8

Ho un'installazione magento che ha avuto diverse importazioni di immagini fatte dal cliente e ha ottenuto immagini errate nei prodotti sbagliati, tostapane con congelatori poiché l'importazione iniziale aveva i nomi img sbagliati. Dopo un'ulteriore importazione tramite CSV sembra aver aggiunto le immagini anziché modificarle.

Devo eliminare tutte le immagini dei prodotti sul sito, quindi ripetere l' importazione CORRETTA in modo che tutte le immagini siano corrette.

Esiste un modo rapido per eliminare tutte le immagini e quindi effettuare una nuova importazione tramite i profili di flusso di dati e mappare nuovamente i campi corretti?

Qualsiasi aiuto sarebbe fantastico!

Risposte:


16

Il modo più veloce per rimuovere l'immagine, quindi seguire i passaggi seguenti: eliminare tutti i record da

  1. catalog_product_entity_media_gallery
  2. catalog_product_entity_media_gallery_value'

tabella perché magento sta salvando tutti i dati di immagine del prodotto in quella tabella.

Quindi indicizza da Gestione indice da admin per impostare l'immagine in nero.

Quindi rimuovi l'immagine, from dir quindi vai al tuo dir magento media/catalog/product e da questa cartella elimina tutti i file.

Un altro processo:

Andy Simpson, hai bisogno di uno script che is delete all productdal tuo sistema lo farà delete from DB and file system.

Step1: Crea a php in root direct of magento systemquale include Mage.php at first code.

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

Step2: imposta current store isadmin e imposta la modalità sviluppatore

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

Step3: Ottieni Product Collectione crea un loop per ottenere un prodotto uno alla volta

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

Step4: recupera l'immagine del prodotto di uno e rimuovi l'immagine uno usando il codice seguente:

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

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


}

Ciao, grazie per la tua risposta, ho creato il file php e l'ho chiamato delete-image.php, come eseguo lo script, devo visitare la pagina tramite browser? Ho anche cambiato catalog / product_collection in catalog / product in quanto queste sono le immagini, è corretto? Grazie per l'aiuto.
Andy Simpson,

1
usa l'esecuzione della shell php, è un processo migliore .... altrimenti premi il tuo file dalla pagina tramite browser
Amit Bera

per me ... sta eliminando solo le immagini del primo prodotto
Alam Zaib,

@AmitBera, è necessario troncare anche questa tabella? TRUNCATE TABLE catalog_product_entity_media_gallery_value_to_entity;
jafar pinjar,

2

La dichiarazione mysql completa per la risposta di Amit è

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;

0

Non credo che ci sia una soluzione rapida a meno che non sia possibile reimportare tutti i prodotti da un'esportazione di backup con i dati immagine corretti.

È possibile utilizzare uno script PHP per scorrere tutti i prodotti e rimuovere i media. Dai un'occhiata a /programming/5709496/magento-programmatical-remove-product-images per maggiori informazioni.

È possibile eliminare / media / catalog / product / e ripristinare in modo sicuro se si dispone di un backup funzionante con i file di immagine corretti.


0

Ho usato Kevando su Magento 2.2.7 ma quando importare di nuovo le immagini non sarà esattamente. Quindi questa è la mia risposta, è stata testata.

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;

-1

Grazie "Amit Bera", mi ha salvato la giornata e ha funzionato bene

Ho appena seguito la procedura seguente per eliminare tutte le immagini dei prodotti.

Il modo più veloce per rimuovere l'immagine, quindi seguire i passaggi seguenti: eliminare tutti i record da

catalog_product_entity_media_gallery catalog_product_entity_media_gallery_value 'tabella perché magento salva tutti i dati di immagine del prodotto in quella tabella.

Quindi indicizza da Gestione indice da admin per impostare l'immagine in nero.

Quindi rimuovi l'immagine dalla directory, quindi vai alla tua directory magento su media / catalogo / prodotto e da questa cartella elimina tutti i file.


Puoi spiegare perché -1 per questo.
Rajesh Jai,

Non è una risposta
seanbreeden,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.