2012-08-07 1 views
7

Ho provato a importare un elenco di prodotti su Magento. Nel primo test, ho avuto successo, ma i prodotti non sono stati mostrati in back office o front office.Come rimuovere tutti i prodotti del catalogo in Magento

Dopo aver ripetuto il processo di importazione alcune volte, ho scoperto che ho i prodotti importati sul database, ma che non viene ancora visualizzato.

Se si accede a Catalogo> Gestisci categorie> Categoria predefinita -> Categoria prodotti, è possibile che vengano visualizzati i prodotti importati.

Più tardi, ho trovato un errore nel mio file di importazione ... e io possa correttamente importare prodotti

conflitti invece .... ho trovato nel campo 'sku' ...

quei primi prodotti non vengono ancora visualizzati, ma sono ancora sul database ...

Domanda: Come rimuovo quei prodotti se non riesco ad accedervi ???? Posso farlo direttamente sul database? l'eliminazione delle righe può generare altri problemi?

qualsiasi indizio sarà apprezzato!

Magento ver. 1.7.0.1

risposta

18

Ripristinare tutte le tabelle del prodotto. Attenzione, qui sotto lo script eliminerà TUTTI i tuoi dati di 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`; 
TRUNCATE TABLE `catalog_product_link`; 
TRUNCATE TABLE `catalog_product_link_type`; 
TRUNCATE TABLE `catalog_product_option`; 
TRUNCATE TABLE `catalog_product_option_type_value`; 
TRUNCATE TABLE `catalog_product_super_attribute`; 
TRUNCATE TABLE `catalog_product_entity`; 
TRUNCATE TABLE `cataloginventory_stock`; 
TRUNCATE TABLE `catalog_category_product`; 
DELETE FROM catalog_product_flat_1; 
DELETE FROM catalog_product_flat_10; 
DELETE FROM catalog_product_flat_11; 
DELETE FROM catalog_product_flat_12; 
DELETE FROM catalog_product_flat_13; 
DELETE FROM catalog_product_flat_14; 
DELETE FROM catalog_product_flat_15; 
DELETE FROM catalog_product_flat_16; 
DELETE FROM catalog_product_flat_17; 
DELETE FROM catalog_product_flat_18; 
DELETE FROM catalog_product_flat_19; 
DELETE FROM catalog_product_flat_2; 
DELETE FROM catalog_product_flat_20; 
DELETE FROM catalog_product_flat_21; 
DELETE FROM catalog_product_flat_22; 
DELETE FROM catalog_product_flat_23; 
DELETE FROM catalog_product_flat_24; 
DELETE FROM catalog_product_flat_25; 
DELETE FROM catalog_product_flat_26; 
DELETE FROM catalog_product_flat_27; 
DELETE FROM catalog_product_flat_28; 
DELETE FROM catalog_product_flat_29; 
DELETE FROM catalog_product_flat_3; 
DELETE FROM catalog_product_flat_30; 
DELETE FROM catalog_product_flat_31; 
DELETE FROM catalog_product_flat_32; 
DELETE FROM catalog_product_flat_33; 
DELETE FROM catalog_product_flat_34; 
DELETE FROM catalog_product_flat_35; 
DELETE FROM catalog_product_flat_36; 
DELETE FROM catalog_product_flat_37; 
DELETE FROM catalog_product_flat_4; 
DELETE FROM catalog_product_flat_5; 
DELETE FROM catalog_product_flat_6; 
DELETE FROM catalog_product_flat_7; 
DELETE FROM catalog_product_flat_8; 
DELETE FROM catalog_product_flat_9; 
SET FOREIGN_KEY_CHECKS = 1; 

insert into `catalog_product_link_type`(`link_type_id`,`code`) values (1,'relation'),(2,'bundle'),(3,'super'),(4,'up_sell'),(5,'cross_sell'); 
insert into `catalog_product_link_attribute`(`product_link_attribute_id`,`link_type_id`,`product_link_attribute_code`,`data_type`) values (1,2,'qty','decimal'),(2,1,'position','int'),(3,4,'position','int'),(4,5,'position','int'),(6,1,'qty','decimal'),(7,3,'position','int'),(8,3,'qty','decimal'); 
insert into `cataloginventory_stock`(`stock_id`,`stock_name`) values (1,'Default'); 

Potrebbe essere necessario ripetere l'indicizzazione di tutti gli indici dopo l'esecuzione sopra la query.

System > Index Management > Reindex all

http://ka.lpe.sh/2012/08/09/magento-how-to-delete-remove-all-products-from-all-categories/

Buon divertimento!

+0

thnx molto @Kalpesh Mehta ha funzionato quasi perfetto. Ha pulito i prodotti, ma, su - Catalogo> Gestisci categorie - I nomi delle Categorie hanno ancora il numero di prodotti, come: Categoria predefinita (5) ... ma non ci sono prodotti collegati a nessuna categoria –

+0

potrebbe essere necessario fare Re -indexing .. 'Admin> Sistema> Gestione indice' – Kalpesh

+0

sicuro che l'ho fatto, in effetti molte volte. E il sistema di cache è stato disabilitato da quando ho iniziato ... Ho provato la tua soluzione solo nel mio localhost, non ancora online ... –

0

è inoltre necessario aggiungere:

TRUNCATE TABLE catalog_product_entity; 

Altrimenti si otterrà errori vincolo di integrità.

+0

questo è già presente nell'altra risposta, non c'è bisogno di metterlo due volte – OSdave

0

La risposta data da Kalpesh Mehta funziona in modo impeccabile.

Ma dopo la rimozione di tutti i prodotti, l'importazione mucchio di nuovi prodcuts e tenta di eliminare utilizzando amministratore interfaccia utente si potrebbe un errore come questo:

SQLSTATE [22003]: il valore numerico non compreso nell'intervallo: 1690 BIGINT valore senza segno è fuori portata in '(.. magento_storeqitems_count-1)'

Quindi, questo articolo mi ha aiutato molto: Magento deleting product BIGINT UNSIGNED value is out of range

E p rovides diverse opzioni per risolvere il problema e il primo ha lavorato nel mio caso:

DELETE FROM sales_flat_quote WHERE updated_at < DATE_SUB(Now(),INTERVAL 30 DAY); 
5

Prodotti Elimina con una query SQL non è il modo Magento e vi consiglio di non farlo. Può causare il danneggiamento del database o problemi con gli indici/vincoli di chiave esterna as stated here.

Tutti gli interessati ad utilizzare un modo corretto, sicuro e veloce per modificare le cose in Magento dovrebbero SEMPRE utilizzare le funzioni ORM di Magento.

In questo caso questo sarebbe in uno script php.

Mage::getModel('catalog/product')->getCollection()->delete(); 

Questo è l'unico modo sicuro in Magento.

+0

Questa dovrebbe essere la risposta accettata. –

1

È possibile eliminare tutto il prodotto utilizzando Direct Sql.

Eseguire il backup del database ed eseguire le seguenti query SQL.

Ripristinare tutte le tabelle del prodotto. Attenzione, qui sotto lo script eliminerà TUTTI i tuoi dati di 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;` 

**Remove the Product counts from category at back-end** 

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


**Remove the Bestseller and Most view Products at Dashboards** 

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

**Flush all the flat table of products** 

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

**Remove the review and rating of products** 

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

**For enterprise flush the following tables** 

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

Con il vostro SQL-script SQL ho rotto il mio indice dei prezzi. Questo succede perché utilizziamo i prezzi di gruppo nel negozio. A seguito di errore si è verificato ogni timewhen ho provato a reindicizzare l'indice "catalog_product_price":

SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails  (`db`.`catalog_product_index_group_price`, CONSTRAINT `FK_CAT_PRD_IDX_GROUP_PRICE_ENTT_ID_CAT_PRD_ENTT_ENTT_ID` FOREIGN KEY (`entity_id`) REFERENCES `catalog_product_entity` (`entity_id`), query was: INSERT INTO `catalog_product_index_group_price` SELECT `gp`.`entity_id`, `cg`.`customer_group_id`, `cw`.`website_id`, MIN(IF(gp.website_id = 0, ROUND(gp.value * cwd.rate, 4), gp.value)) FROM `catalog_product_entity_group_price` AS `gp` 
INNER JOIN `customer_group` AS `cg` ON gp.all_groups = 1 OR (gp.all_groups = 0 AND gp.customer_group_id = cg.customer_group_id) 
INNER JOIN `core_website` AS `cw` ON gp.website_id = 0 OR gp.website_id = cw.website_id 
INNER JOIN `catalog_product_index_website` AS `cwd` ON cw.website_id = cwd.website_id WHERE (cw.website_id != 0) GROUP BY `gp`.`entity_id`, 
     `cg`.`customer_group_id`, 
     `cw`.`website_id` ON DUPLICATE KEY UPDATE `price` = VALUES(`price`) 

Si prega di aggiungere seguente riga:

TRUNCATE TABLE `catalog_product_entity_group_price`;