How to remove all catalog products in Magento

前端 未结 6 1489
一个人的身影
一个人的身影 2021-02-04 17:42

I\'ve trying to import a products list to magento. In the firsts test, I got success, but the products were not showing up in back or front office.

After redo the impor

相关标签:
6条回答
  • 2021-02-04 18:02

    You can delete all the product using Direct Sql.

    Please take backup your database, and run the following sql queries.

    Reset all product tables. Beware, below script will delete ALL your product data so do it carefully.

    `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 讨论(0)
  • 2021-02-04 18:14

    You also need to add:

    TRUNCATE TABLE catalog_product_entity;
    

    Otherwise you will get integrity constraint errors.

    0 讨论(0)
  • 2021-02-04 18:15

    With your SQL-Sql Script i broke my price index. This happens because we use group prices in the shop. Following error occurred every timewhen i tried to reindex the index "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`)
    

    Please add following line:

    TRUNCATE TABLE `catalog_product_entity_group_price`;
    
    0 讨论(0)
  • 2021-02-04 18:19

    Delete products with a SQL query is not the Magento way and I recommend not doing it. It may cause database corruption or problems with the foreign key indexes/constraints as stated here.

    Everybody interested in using a correct, safe and also fast way to alter things in Magento should ALWAYS use Magento's ORM functions.

    In this case this would be in a php script.

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

    This is the only safe way in Magento.

    0 讨论(0)
  • 2021-02-04 18:24

    The answer given by Kalpesh Mehta works flawlessly.

    But after you remove all products, import bunch of new prodcuts and try to delete it using admin UI you could an error like this:

    SQLSTATE[22003]: Numeric value out of range: 1690 BIGINT UNSIGNED value is out of range in '(magento_store.q.items_count - 1)'

    So, this article helped me a lot: Magento deleting product BIGINT UNSIGNED value is out of range

    It provides several options to solve problem and the first one worked in my case:

    DELETE FROM sales_flat_quote WHERE updated_at < DATE_SUB(Now(),INTERVAL 30 DAY);
    
    0 讨论(0)
  • 2021-02-04 18:27

    Reset all product tables. Beware, below script will delete ALL your product data so do it carefully.

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

    You may require re-indexing all your indexes after running above query.

    System > Index Management > Reindex all

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

    Have fun!

    0 讨论(0)
提交回复
热议问题