Magento Exclua todas as imagens do produto

8

Eu tenho uma instalação magento que teve várias importações de imagens feitas pelo cliente e tem imagens erradas nos produtos errados, torradeiras com freezers de geladeira, pois a importação inicial tinha os nomes de IMG incorretos. Após uma importação adicional via CSV, parece que as imagens foram anexadas em vez de alteradas.

Preciso excluir todas as imagens do produto no site e refazer a importação CORRETA para que todas as imagens estejam corretas.

Existe uma maneira rápida de excluir todas as imagens e fazer uma nova importação via perfis de fluxo de dados e mapear novamente os campos corretos?

Qualquer ajuda seria incrível!

Andy Simpson
fonte

Respostas:

16

A maneira mais rápida de remover a imagem e siga as etapas abaixo: exclua todos os registros de

  1. catalog_product_entity_media_gallery
  2. catalog_product_entity_media_gallery_value'

porque o magento salva todos os dados da imagem do produto nessas tabelas.

Em seguida, indexe no Gerenciamento de índice do administrador para definir a imagem em preto.

Em seguida, remova a imagem from dir e vá para Seu diretório magento para media/catalog/product e desta pasta exclua todos os arquivos.

Outro processo:

Andy Simpson, você precisa de um script que a is delete all productpartir do seu sistema que irá delete from DB and file system.

Etapa 1: crie a php em root direct of magento systemque incluir Mage.php at first code.

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

Etapa 2: definir current store isadmin e definir o modo de desenvolvedor

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

Etapa 3: obtenha Product Collectione crie um loop para obter um produto por um por um

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

Etapa 4: busque a imagem do produto por uma e remova a imagem usando o código abaixo:

$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
fonte
Olá, obrigado pela sua resposta, eu criei o arquivo php e o chamei delete-image.php, como executo o script, preciso visitar a página pelo navegador? Também alterei catalog / product_collection para catalog / product, pois é onde estão as imagens, está correto? Obrigado pela ajuda.
Andy Simpson
11
execução shell uso php, é melhor processo .... outra atingiu seu arquivo de página através do browser
Amit Bera
para mim ... está excluindo apenas as imagens do primeiro produto
Alam Zaib 28/10
@AmitBera, também é necessário truncar esta tabela? TABELA TRUNCATE catalog_product_entity_media_gallery_value_to_entity;
Jafar pinjar
2

A declaração completa do mysql para a resposta de 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;
kevando
fonte
0

Acho que não há uma solução rápida para isso, a menos que você possa reimportar todos os seus produtos a partir de uma exportação de backup com os dados de imagem corretos.

Você pode usar um script PHP para percorrer todos os seus produtos e remover a mídia. Dê uma olhada em /programming/5709496/magento-programmatically-remove-product-images para obter mais informações.

Você pode excluir / mídia / catálogo / produto / e restaurar com segurança se tiver um backup funcional com os arquivos de imagem corretos.

paj
fonte
0

Eu costumava usar o Kevando no magento 2.2.7, mas quando importar imagens novamente não exatamente. Então, essas são minhas respostas, devem ser testadas.

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

Obrigado "Amit Bera", salvou o meu dia e está funcionando bem

Apenas segui o procedimento abaixo para excluir todas as imagens do produto.

A maneira mais rápida de remover a imagem e siga as etapas abaixo: exclua todos os registros de

catalog_product_entity_media_gallery catalog_product_entity_media_gallery_value 'porque o magento salva todos os dados da imagem do produto nessa tabela.

Em seguida, indexe no Gerenciamento de índice do administrador para definir a imagem em preto.

Em seguida, remova a imagem do diretório e vá para o diretório magento em mídia / catálogo / produto e, nessa pasta, exclua todos os arquivos.

Rajesh Jai
fonte
Você pode explicar por que -1 para isso.
Rajesh Jai 21/09
Não é uma resposta
seanbreeden