Magento Xóa tất cả hình ảnh sản phẩm


8

Tôi có một Cài đặt magento đã có một số lần nhập hình ảnh được thực hiện bởi khách hàng và nó có hình ảnh sai trong các sản phẩm sai, lò nướng bánh với tủ đông vì tủ nhập ban đầu có tên img sai. Sau khi nhập thêm qua CSV, có vẻ như đã thêm hình ảnh thay vì thay đổi chúng.

Tôi cần xóa tất cả các hình ảnh sản phẩm trên trang web, sau đó thực hiện lại việc nhập ĐÚNG để tất cả các hình ảnh đều chính xác.

Có cách nào nhanh chóng để xóa tất cả các hình ảnh sau đó thực hiện nhập mới thông qua Dataflow Profiles và ánh xạ lại các trường chính xác không?

Bất cứ sự giúp đỡ nào cũng thật sự tuyệt vời!

Câu trả lời:


16

Cách nhanh nhất để xóa hình ảnh, sau đó làm theo các bước dưới đây: xóa tất cả các bản ghi khỏi

  1. catalog_product_entity_media_gallery
  2. catalog_product_entity_media_gallery_value'

bảng vì magento lưu tất cả dữ liệu hình ảnh sản phẩm tại các bảng đó.

Sau đó lập chỉ mục từ Quản lý chỉ mục từ quản trị viên để đặt hình ảnh màu đen.

Sau đó xóa hình ảnh from dir sau đó goto thư mục magento của bạn tại media/catalog/product và từ thư mục này xóa tất cả các tập tin.

Một quy trình khác:

Andy Simpson, bạn cần một kịch bản is delete all producttừ hệ thống của bạn delete from DB and file system.

Bước 1: Tạo a php tại root direct of magento systemđó bao gồm Mage.php at first code.

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

Bước2: đặt current store isquản trị viên và đặt chế độ Nhà phát triển

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

Bước 3: Nhận Product Collectionvà tạo một vòng lặp để nhận từng sản phẩm một

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

Bước 4: tìm nạp hình ảnh sản phẩm một và loại bỏ hình ảnh một bằng mã bên dưới:

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

MÃ ĐẦY ĐỦ:

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


}

Xin chào, cảm ơn bạn đã trả lời, tôi đã tạo tệp php và gọi nó là xóa-image.php, làm cách nào để thực thi tập lệnh, tôi có cần truy cập trang qua trình duyệt không? Tôi cũng đã thay đổi catalog / sản phẩm_collection thành danh mục / sản phẩm vì đây là nơi hình ảnh, điều đó có đúng không? Cảm ơn bạn đã giúp đỡ.
Andy Simpson

1
sử dụng thực thi shell php, đó là quy trình tốt hơn .... khác nhấn tệp của bạn từ trang thông qua trình duyệt
Amit Bera

đối với tôi ... đó là chỉ xóa những hình ảnh của sản phẩm đầu tiên
Alam Zaib

@AmitBera, có cần phải cắt bớt bảng này không? Danh mục BẢNG TRUNCATE_product_entity_media_gallery_value_to_entity;
jafar pinjar

2

Câu lệnh mysql đầy đủ cho câu trả lời của Amit là

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

Tôi không nghĩ rằng có một cách khắc phục nhanh vấn đề này trừ khi bạn có thể nhập lại tất cả các sản phẩm của mình từ bản xuất dự phòng với dữ liệu hình ảnh chính xác.

Bạn có thể sử dụng tập lệnh PHP để lặp qua tất cả các sản phẩm của mình và xóa phương tiện truyền thông. Hãy xem /programming/5709496/magento-programmatically-remove-product-images để biết thêm thông tin.

Bạn có thể xóa / media / catalog / sản phẩm / và khôi phục một cách an toàn nếu bạn có bản sao lưu hoạt động với các tệp hình ảnh chính xác.


0

Tôi đã từng sử dụng Kevando trên magento 2.2.7 nhưng khi nhập lại hình ảnh sẽ không chính xác. Vì vậy, đây là câu trả lời của tôi, nó sẽ được kiểm tra.

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

Cảm ơn "Amit Bera", nó đã cứu tôi và làm việc tốt

Chỉ cần tôi làm theo các thủ tục dưới đây để xóa tất cả các hình ảnh sản phẩm.

Cách nhanh nhất để xóa hình ảnh, sau đó làm theo các bước dưới đây: xóa tất cả các bản ghi khỏi

danh mục_product_entity_media_gallery catalog_product_entity_media_gallery_value 'vì magento lưu tất cả dữ liệu hình ảnh sản phẩm tại các bảng đó.

Sau đó lập chỉ mục từ Quản lý chỉ mục từ quản trị viên để đặt hình ảnh màu đen.

Sau đó xóa hình ảnh khỏi dir sau đó goto dir magento của bạn tại media / catalog / sản phẩm và từ thư mục này xóa tất cả các tập tin.


Bạn có thể vui lòng giải thích tại sao -1 cho điều này.
Rajesh Jai

Đó không phải là một câu trả lời
seanbreeden 26/03/18
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.