magento后台如何批量删除产品

magento后台如何批量删除产品
2011-04-24 01:08

magento怎样批量删除产品?用过magento的朋友都知道,在magento后台批量删除产品的速度是非常慢的,一分钟还删不掉30个产品,勾选 较多产品进行批量删除动作时往往会出现 Time Get Out 504 错误 。这是因为每个产品都有很多的属性,都关联着数据库里将近30多个表,每删除一个产品时数据库都要执行30多个表的查询,所以批量删除的产品越多所花费的 时间将越长,将很容易导致服务器时间超时的状况。
下面介绍一种简便方法可以在3秒之内删除将近上千数量的产品(做之前最好先备份数据库,本人在magento1.4版本测试通过): 先打开你的magento数据库,选择sql ,复制下列代码在数据库 magento 运行 SQL 查询:

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

很快,只需几秒就删除了所有产品及产品的相关记录,这样节省了大量的宝贵时间。
另外介绍一种通过数据库删除产品类别目录的方法:
同样复制下列代码在数据库 magento 运行 SQL 查询
 TRUNCATE TABLE `catalog_category_entity`;
TRUNCATE TABLE `catalog_category_entity_datetime`;
TRUNCATE TABLE `catalog_category_entity_decimal`;
TRUNCATE TABLE `catalog_category_entity_int`;
TRUNCATE TABLE `catalog_category_entity_text`;
TRUNCATE TABLE `catalog_category_entity_varchar`;
TRUNCATE TABLE `catalog_category_product`;<h2></h2><h1></h1>
TRUNCATE TABLE `catalog_category_product_index`;
INSERT  INTO `catalog_category_entit`(`entity_id`,`entity_type_id`,`attribute_set_id`,`parent_id`,`created_at`,`updated_at`,`path`,`POSITION`,`level`,`children_count`) VALUES (1,3,0,0,'0000-00-00 00:00:00','2009-02-20 00:25:34','1',1,0,1),(2,3,3,0,'2009-02-20 00:25:34','2009-02-20 00:25:34','1/2',1,1,0);
INSERT  INTO `catalog_category_entity_int`(`value_id`,`entity_type_id`,`attribute_id`,`store_id`,`entity_id`,`value`) VALUES (1,3,32,0,2,1),(2,3,32,1,2,1);
INSERT  INTO `catalog_category_entity_varchar`(`value_id`,`entity_type_id`,`attribute_id`,`store_id`,`entity_id`,`value`) VALUES (1,3,31,0,1,'Root Catalog'),(2,3,33,0,1,'root-catalog'),(3,3,31,0,2,'Default Category'),(4,3,39,0,2,'PRODUCTS'),(5,3,33,0,2,'default-category');

这样就很快的删除了目录及其相关信息。

你可能感兴趣的:(agent)