Bagaimana cara menghapus semua produk dari katalog besar?

8

Saya sedang mengerjakan impor produk ~ 40k ke Magento. Saya perlu cara mudah untuk menghapus semua produk di antara tes, tetapi mencoba melakukan ini dari kesalahan admin sebelum membuatnya sangat jauh.

Jika saya mencoba memotong tabel secara langsung, saya menemukan banyak dependensi yang mencegah tindakan.

Apakah mungkin untuk menghapus semua produk tanpa menggunakan admin?

Ryre
sumber
1
Jika itu hanya untuk pengujian, mungkin cara mudahnya adalah: backup database Anda sebelum impor dan untuk mengembalikannya setelah itu.
Arnaud L

Jawaban:

4

Jika Anda mengimpor melalui Mage_ImportExportada juga opsi "HAPUS". Jika Anda menerapkan ini pada file impor yang sama, semua SKU yang terkandung dalam file ini akan dihapus.

Dalam kode ini ->setBehavior(Mage_ImportExport_Model_Import::BEHAVIOR_DELETE);

Anda masih dapat memotong tabel produk tertentu melalui SQL - tetapi tentu saja Anda harus menyelesaikan semua dependensi dan juga memotong tabel tersebut.

Atau: Buat dump database "bersih" sebelum mengimpor dan terapkan dump ini sebelum setiap tes.

Alex
sumber
Terima kasih. Katalog terlalu besar untuk menggunakan alat impor default Mage, jadi kami menggunakan modul pihak ke-3. Saya pikir membuat dump DB bersih yang bisa saya kembalikan adalah pilihan terbaik saya.
Ryre
Modul yang mana? Mungkin yang satu itu juga memiliki opsi hapus? Mungkin masih Mage_ImportExportberbasis?
Alex
Ini uRapidflow, dan saya belum menemukan opsi hapus di mana pun.
Ryre
Jika Anda memiliki Pro, maka periksa unirgy.com/wiki/urapidflow/fixed_row_format#cpcatalog_product
Petar Dzhambazov
7

Anda dapat menghapus semua produk menggunakan Direct Sql.

Silakan ambil cadangan database Anda, dan jalankan kueri sql berikut.

Setel ulang semua tabel produk. Hati-hati, skrip di bawah ini akan menghapus SEMUA data produk Anda, jadi lakukan dengan hati-hati.

`SET FOREIGN_KEY_CHECKS = 0;
TRUNCATE TABLE `catalog_product_bundle_option`;
TRUNCATE TABLE `catalog_product_bundle_option_value`;
TRUNCATE TABLE `catalog_product_bundle_selection`;
TRUNCATE TABLE `catalog_product_entity_datetime`;
TRUNCATE TABLE `catalog_product_entity_decimal`;
TRUNCATE TABLE `catalog_product_entity_gallery`;
TRUNCATE TABLE `catalog_product_entity_int`;
TRUNCATE TABLE `catalog_product_entity_media_gallery`;
TRUNCATE TABLE `catalog_product_entity_media_gallery_value`;
TRUNCATE TABLE `catalog_product_entity_text`;
TRUNCATE TABLE `catalog_product_entity_tier_price`;
TRUNCATE TABLE `catalog_product_entity_varchar`;
TRUNCATE TABLE `catalog_product_link`;
TRUNCATE TABLE `catalog_product_link_attribute`;
TRUNCATE TABLE `catalog_product_link_attribute_decimal`;
TRUNCATE TABLE `catalog_product_link_attribute_int`;
TRUNCATE TABLE `catalog_product_link_attribute_varchar`;
TRUNCATE TABLE `catalog_product_link_type`;
TRUNCATE TABLE `catalog_product_option`;
TRUNCATE TABLE `catalog_product_option_price`;
TRUNCATE TABLE `catalog_product_option_title`;
TRUNCATE TABLE `catalog_product_option_type_price`;
TRUNCATE TABLE `catalog_product_option_type_title`;
TRUNCATE TABLE `catalog_product_option_type_value`;
TRUNCATE TABLE `catalog_product_super_attribute`;
TRUNCATE TABLE `catalog_product_super_attribute_label`;
TRUNCATE TABLE `catalog_product_super_attribute_pricing`;
TRUNCATE TABLE `catalog_product_super_link`;
TRUNCATE TABLE `catalog_product_enabled_index`;
TRUNCATE TABLE `catalog_product_website`;
TRUNCATE TABLE `catalog_product_entity`;
TRUNCATE TABLE `cataloginventory_stock`;
TRUNCATE TABLE `cataloginventory_stock_item`;
TRUNCATE TABLE `cataloginventory_stock_status`;
INSERT INTO `catalog_product_link_type` VALUES(1, 'relation');
INSERT INTO `catalog_product_link_type` VALUES(3, 'super');
INSERT INTO `catalog_product_link_type` VALUES(4, 'up_sell');
INSERT INTO `catalog_product_link_type` VALUES(5, 'cross_sell');
INSERT INTO `catalog_product_link_attribute` VALUES(1, 1, 'position', 'int');
INSERT INTO `catalog_product_link_attribute` VALUES(2, 3, 'position', 'int');
INSERT INTO `catalog_product_link_attribute` VALUES(3, 3, 'qty', 'decimal');
INSERT INTO `catalog_product_link_attribute` VALUES(4, 4, 'position', 'int');
INSERT INTO `catalog_product_link_attribute` VALUES(5, 5, 'position', 'int');
INSERT INTO `cataloginventory_stock` VALUES(1, 'Default');
SET FOREIGN_KEY_CHECKS = 1;`

Hapus jumlah Produk dari kategori di back-end

`SET FOREIGN_KEY_CHECKS = 0;
TRUNCATE TABLE `catalog_category_product`;
TRUNCATE TABLE `catalog_category_product_index`;
SET FOREIGN_KEY_CHECKS = 1;`

Hapus Bestseller dan Most view Products di Dashboard

`SET FOREIGN_KEY_CHECKS = 0;
TRUNCATE TABLE `report_compared_product_index`;
TRUNCATE TABLE `report_viewed_product_aggregated_daily`;
TRUNCATE TABLE `report_viewed_product_aggregated_monthly`;
TRUNCATE TABLE `report_viewed_product_aggregated_yearly`;
TRUNCATE TABLE `report_viewed_product_index`;
TRUNCATE TABLE `sales_bestsellers_aggregated_daily`;
TRUNCATE TABLE `sales_bestsellers_aggregated_monthly`;
TRUNCATE TABLE `sales_bestsellers_aggregated_yearly`;
SET FOREIGN_KEY_CHECKS = 1;`

Siram semua produk tabel datar

`SET FOREIGN_KEY_CHECKS = 0;
DELETE FROM catalog_product_flat_1;
DELETE FROM catalog_product_flat_2;
DELETE FROM catalog_product_flat_3;
DELETE FROM catalog_product_flat_4;
DELETE FROM catalog_product_flat_5;
SET FOREIGN_KEY_CHECKS = 1;`

Hapus ulasan dan peringkat produk

`SET FOREIGN_KEY_CHECKS = 0;
TRUNCATE table `rating_option_vote`; 
TRUNCATE table `rating_option_vote_aggregated`;
TRUNCATE table `review`; 
TRUNCATE table `review_detail`; 
TRUNCATE table `review_entity_summary`; 
TRUNCATE table `review_store`;
SET FOREIGN_KEY_CHECKS = 1;`

Untuk perusahaan siram tabel berikut

`SET FOREIGN_KEY_CHECKS = 0;
TRUNCATE TABLE `catalog_category_flat_cl`;
TRUNCATE TABLE `catalog_category_product_cat_cl`;
TRUNCATE TABLE `catalog_category_product_index_cl`;
TRUNCATE TABLE `catalog_product_flat_cl`;
TRUNCATE TABLE `catalog_product_index_price_cl`;
TRUNCATE TABLE `cataloginventory_stock_status_cl`;
TRUNCATE TABLE `catalogsearch_fulltext_cl`;
SET FOREIGN_KEY_CHECKS = 1;`
Kinjalkumar Prajapati
sumber
Perlu disebutkan bahwa jika Anda telah memotong produk Anda, bijaksana untuk menjalankan pengindeks. Terutama jika Anda menggunakan Solr. Juga untuk EE, saya menemukan tabel berikut juga dapat dihapus: enterprise_catalog_product_rewriteDAN untuk CE dan EE:catalogsearch_query catalog_product_entity_url_key
PanPipes
jawaban sempurna dengan penjelasan +1 :) !!!
SagarPPanchal
3

Apakah Anda sudah melihat Magmi ? Salah satu plugin "lanjutan" adalah Katalog Jelas yang super cepat dan bahkan me-reset ID ke 1.

Magmi di SourceForge

andyjv
sumber