Magento Hapus semua Gambar Produk


8

Saya memiliki Instalasi Magento yang telah melakukan beberapa impor gambar yang dilakukan oleh klien dan gambarnya salah pada produk yang salah, pemanggang roti dengan freezer kulkas karena impor awal memiliki nama img yang salah. Setelah impor lebih lanjut melalui CSV tampaknya telah menambahkan gambar daripada mengubahnya.

Saya perlu menghapus semua gambar produk di situs, lalu melakukan impor ulang yang BENAR sehingga semua gambar sudah benar.

Apakah ada cara cepat untuk menghapus semua gambar lalu melakukan impor baru melalui Profil Dataflow dan memetakan kembali bidang yang benar?

Bantuan apa pun akan luar biasa!

Jawaban:


16

Cara tercepat untuk menghapus gambar, lalu ikuti langkah-langkah di bawah ini: hapus semua rekaman dari

  1. catalog_product_entity_media_gallery
  2. catalog_product_entity_media_gallery_value'

tabel karena magento menyimpan semua data gambar produk di tabel tersebut.

Kemudian indeks dari Manajemen indeks dari admin untuk mengatur gambar hitam.

Kemudian hapus gambar from dir kemudian goto dir magento Anda di media/catalog/product dan dari folder ini hapus semua file.

Proses lain:

Andy Simpson, Anda memerlukan skrip yang is delete all productdari sistem Anda yang akan delete from DB and file system.

Langkah1: Buat a php di root direct of magento systemmana termasuk Mage.php at first code.

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

Step2: atur current store isadmin dan atur mode Pengembang

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

Langkah 3: Dapatkan Product Collectiondan buat satu lingkaran untuk mendapatkan satu produk satu per satu

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

Langkah4: ambil gambar produk dengan satu dan hapus gambar satu dengan menggunakan kode di bawah ini:

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

KODE LENGKAP:

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


}

Hai, terima kasih atas balasan Anda, saya telah membuat file php dan menyebutnya delete-image.php, bagaimana saya menjalankan skrip, apakah saya perlu mengunjungi halaman melalui browser? Saya juga telah mengubah katalog / product_collection ke katalog / produk karena di sinilah gambarnya, apakah itu benar? terima kasih atas bantuan Anda.
Andy Simpson

1
gunakan eksekusi php shell, lebih baik proses .... lain tekan file Anda dari halaman melalui browser
Amit Bera

bagi saya ... itu hanya menghapus gambar produk pertama
Alam Zaib

@AmitBera, apakah perlu memotong tabel ini juga? TRUNCATE TABLE catalog_product_entity_media_gallery_value_to_entity;
jafar pinjar

2

Pernyataan mysql lengkap untuk jawaban Amit adalah

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

Saya tidak berpikir ada perbaikan cepat untuk ini kecuali Anda dapat mengimpor kembali semua produk Anda dari ekspor cadangan dengan data gambar yang benar.

Anda bisa menggunakan skrip PHP untuk mengulang semua produk Anda dan menghapus media. Lihat /programming/5709496/magento-programmatically-remove-product-images untuk info lebih lanjut.

Anda dapat menghapus / media / katalog / produk / dan mengembalikan dengan aman jika Anda memiliki cadangan yang berfungsi dengan file gambar yang benar.


0

Saya pernah menggunakan Kevando di magento 2.2.7 tetapi ketika mengimpor gambar lagi tidak akan tepat. Jadi ini jawaban saya yang harus diuji.

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

Terima kasih "Amit Bera", Ini menyelamatkan hari saya dan bekerja dengan baik

Saya baru saja mengikuti prosedur di bawah ini untuk menghapus semua gambar produk.

Cara tercepat untuk menghapus gambar, lalu ikuti langkah-langkah di bawah ini: hapus semua rekaman dari

catalog_product_entity_media_gallery catalog_product_entity_media_gallery_value 'table karena magento menyimpan semua data gambar produk di tabel tersebut.

Kemudian indeks dari Manajemen indeks dari admin untuk mengatur gambar hitam.

Kemudian hapus gambar dari dir lalu goto dir magento Anda di media / katalog / produk dan dari folder ini hapus semua file.


Bisakah Anda jelaskan mengapa -1 untuk ini.
Rajesh Jai

Itu bukan jawaban
seanbreeden
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.