Come eliminare tutti i prodotti da un grande catalogo?


8

Sto lavorando all'importazione di circa 40.000 prodotti in Magento. Ho bisogno di un modo semplice per rimuovere tutti i prodotti tra i test, ma provando a farlo dagli errori di amministrazione prima di arrivare molto lontano.

Se provo a troncare direttamente la tabella, incontro molte dipendenze che impediscono le azioni.

È possibile cancellare tutti i prodotti senza usare l'amministratore?


1
Se è solo per il test, potrebbe essere il modo più semplice: eseguire il backup del database prima dell'importazione e ripristinarlo dopo.
Arnaud L

Risposte:


4

Se stai importando tramite Mage_ImportExportc'è anche un'opzione "ELIMINA". Se lo applichi sullo stesso file di importazione, verranno eliminati tutti gli SKU contenuti in questo file.

Nel codice questo è ->setBehavior(Mage_ImportExport_Model_Import::BEHAVIOR_DELETE);

È comunque possibile troncare le tabelle dei prodotti specifici tramite SQL, ma ovviamente è necessario risolvere tutte le dipendenze e troncare anche quelle tabelle.

Oppure: creare un dump del database "pulito" prima di importare e applicare questo dump prima di ogni test.


Grazie. Il catalogo è troppo grande per usare gli strumenti di importazione predefiniti di Mage, quindi stiamo usando un modulo di terze parti. Penso che la creazione della migliore opzione sia la creazione di un dump DB pulito da cui posso ripristinare.
Ryre,

Quale modulo? Forse quello ha anche un'opzione di eliminazione? Forse è ancora Mage_ImportExportbasato?
Alex

È uRapidflow e non ho trovato un'opzione di eliminazione da nessuna parte.
Ryre,


7

Puoi eliminare tutto il prodotto usando Direct Sql.

Effettuare il backup del database ed eseguire le seguenti query sql.

Ripristina tutte le tabelle dei prodotti. Attenzione, lo script seguente eliminerà TUTTI i dati del tuo prodotto, quindi fallo con attenzione.

`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;`

Rimuovi i conteggi dei prodotti dalla categoria nel back-end

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

Rimuovi il bestseller e la maggior parte visualizza i prodotti nelle 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;`

Lavare tutti i tavoli piatti dei prodotti

`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;`

Rimuovi la recensione e la valutazione dei prodotti

`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;`

Per le aziende svuotare le seguenti tabelle

`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;`

Vale la pena ricordare che se hai troncato i tuoi prodotti è consigliabile eseguire l'indicizzatore. Soprattutto se si utilizza Solr. Anche per EE ho scoperto che anche la seguente tabella potrebbe essere cancellata: enterprise_catalog_product_rewriteE per CE ed EE:catalogsearch_query catalog_product_entity_url_key
PanPipes

risposta perfetta con spiegazione +1 :) !!!
SagarPPanchal,

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.