2012-08-07 155 views
7

我試圖將產品列表導入magento。在第一次測試中,我獲得了成功,但產品沒有出現在後臺或前臺。如何刪除Magento中的所有目錄產品

重做導入過程幾次後,我發現我有數據庫上的進口產品,但仍然沒有顯示。

如果我訪問de目錄>管理類別>默認類別 - >類別產品我可能會看到導入的產品。

後來,我發現在我的導入文件中的錯誤......我可以正確導入產品

代替....我發現矛盾在「SKU」場......

那些第一個產品還沒有出現,但他們仍然在數據庫...

問:如果我無法訪問它們,我該如何刪除這些產品? 我可以直接使用數據庫嗎?刪除行可能會產生其他問題?

任何線索將不勝感激!

Magento ver。 1.7.0.1

回答

18

重置所有產品表。當心,下面的腳本將刪除所有的產品數據,所以要小心。

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'); 

運行上述查詢後,您可能需要重新索引所有索引。

System > Index Management > Reindex all

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

玩得開心!

+0

日Thnx很多@Kalpesh梅塔它的工作近乎完美。它清理產品,但是,在目錄>管理類別 - 該分類的名稱仍然有產品的數量,如:默認類別(5)...但沒有任何產品鏈接到任何類別 – 2012-08-09 01:00:01

+0

可能需要你做Re -indexing ..'管理員>系統>索引管理' – Kalpesh 2012-08-09 13:09:34

+0

確實我做到了,其實很多次。而且自從我開始緩存系統被禁用...我只在我的本地主機上測試過你的解決方案,而不是在線... – 2012-08-09 23:56:09

0

您還需要添加:

TRUNCATE TABLE catalog_product_entity; 

否則你會得到完整性約束錯誤。

+0

這已經出現在其他回覆中,不需要再重複兩次 – OSdave 2014-05-21 09:29:31

0

Kalpesh Mehta給出的答案完美無瑕。

但是之後刪除了所有的產品,新產品展示進口串並嘗試使用管理界面就刪除你可以像這樣的錯誤:

SQLSTATE [22003]:數值超出範圍:1690 BIGINT無符號值超出範圍 '(。magento_storeqitems_count - 1)'

所以,這篇文章對我幫助很大:Magento deleting product BIGINT UNSIGNED value is out of range

它p rovides幾個選項來解決問題,在我的案件的第一個工作:

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

刪除產品的SQL查詢是不是Magento的方式,我不建議這樣做。它可能導致數據庫損壞或外鍵索引/約束問題as stated here

每個有興趣使用正確,安全和快速的方式來改變Magento中的東西的人都應該始終使用Magento的ORM函數。

在這種情況下,這將在一個PHP腳本。

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

這是Magento中唯一安全的方法。

+0

這絕對應該是被接受的答案。 – 2015-10-06 22:54:53

1

您可以使用Direct Sql刪除所有產品。

請備份您的數據庫,並運行以下sql查詢。

重置所有產品表。當心,下面的腳本將刪除所有的產品數據,所以要小心。

`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

有了您的SQL-SQL腳本我打破了我的價格指數。 發生這種情況是因爲我們在商店中使用團體價格。發生 跟隨誤差每timewhen我試圖重新編制索引 「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`) 

請添加以下行:

TRUNCATE TABLE `catalog_product_entity_group_price`;