Answers:
最快的方法是直接运行此查询。
DELETE FROM `catalog_product_entity` WHERE `sku` IN ('SKU1', 'SKU2', ...., 'SKU1000');一切都应该很好地级联。属性值将被删除,类别关系将被删除,追加销售,交叉销售及相关等等。
[编辑]
 
有一个陷阱。感谢STW发现这一点。评论和评分将仍然是孤儿,因为他们的产品表没有外键。
->delete()但是会躲避任何侦听事件的代码。Magento库存中的商品,似乎评论和评分将被孤立(当与它们相关的产品被删除时,它们不会被删除)。
                    catalog_product_entity_*表在该entity_id字段上都有一个FK catalog_product_entity.entity_id。他们应该很好地级联。
                    充分尊重Marius,但如果可以避免的话,请不要直接与数据库进行交互。如果您的Magento版本和所有扩展在所有正确的地方都没有错误,则可能会自动更新相关表。但是,如果不是这样的话,这种事情可能会破坏您的网站。
相反,您可以使用Magento自己的CSV导入功能。
只需在文件中列出您的SKU,简单如下:
sku
ABC1
ABC2
ABC3...等等。然后另存为CSV文件。
然后,在系统>导入/导出>导入中,选择实体类型:产品和导入行为:删除实体,然后导入此文件。就是这样!
Mage_ImportExport_Model_Import_Entity_Product::_deleteProducts())
                    您可以通过编程方式进行。创建一个skustodelete.csv,列出要删除的所有skus,之后是继续进行代码的代码
    require_once 'app/Mage.php';
    Mage :: app("default")->setCurrentStore(Mage_Core_Model_App :: ADMIN_STORE_ID);
    $skuAll = array();
    $file_handle = fopen("skustodelete.csv", "r");
    $catalog = Mage::getModel('catalog/product');
   while (!feof($file_handle)) {
     $line_of_text = fgetcsv($file_handle, 1024);
     $allSku = $line_of_text[0];
     $product = $catalog->loadByAttribute('sku', $allSku);
     try {
          $product->delete();
          echo "Product with ID: " . $product->getId() . " Deleted Successfully". PHP_EOL;
     } catch (Exception $e) {
          echo "Product with ID: " . $product->getId() . "cannot be deleted" . PHP_EOL;
     }
}
echo "Finish Delete";无代码方式
在管理部分下Manage Products,将找到包含所有产品的表格。有一个名为的列SKU。您可以在此处根据价值过滤产品。

然后,按SKU进行过滤后,您可以使用左侧的复选框选择要删除的所有项目。

请注意select all,它将选择整个网格中的所有项目,select visible而将仅选择网格当前页面上的项目。
选择了所需的项目后,您可以使用网格右上方的总体操作按钮并选择删除选项。

这将提示您确定要删除这些项目。在此弹出窗口中选择是后,它将继续删除您的项目。根据您的索引设置,在此过程之后,您可能必须运行重新索引。
Kevin S,您可以通过csv文件删除产品。只需跟随滚滚脚步
第1步 :
创建一个csv文件,然后越过要从系统中删除的skus。命名为skus.csv
第2步 :
在根目录中创建并替换一个php文件。然后通过下面的代码
require_once '../app/Mage.php';
Mage :: app("default") -> setCurrentStore( Mage_Core_Model_App :: ADMIN_STORE_ID );
$skuAll =array();
$file_handle = fopen("skus.csv", "r");
 while (!feof($file_handle) ) {
    $line_of_text = fgetcsv($file_handle, 1024);
$allSku = $line_of_text[0];
}
$products = Mage::getResourceModel('catalog/product_collection')
    ->addAttributeToSelect('*') 
    ->addAttributeToFilter(
        'sku', array('in' => $allSku)
    )
    ->load();
    if(is_array($products))
    {
        foreach ($products as $key => $pId)
        {
            try
            {
                $product = Mage::getModel('catalog/product')->load($pId)->delete();
                echo "successfully deleted product with ID: ". $pId ."<br />";
            } 
            catch (Exception $e) 
            {
                echo "Could not delete product with ID: ". $pId ."<br />";
            }
        }
    }注意: 我建议您在运行此代码之前必须先进行备份。希望对您有所帮助。
因为列表表
是catalog_product_entity的外键。
因此,当删除catalog_product_entity中的记录时,上述表的某些记录也将被删除。
代码(实现Marius的答案)删除所有具有entity_id <= 18069的产品:
$adapter = $setup->getConnection("catalog_write");
$where = array(
    'entity_id <= ?' => '18069'
);
$tableCatalogProduct = Mage::getModel("catalog/product")->getResource()->getEntityTable();
$adapter->delete($tableCatalogProduct, $where);
$tableRating = Mage::getModel("rating/rating")->getResource()->getMainTable();
$adapter->delete($tableRating,  $where);
$tableRating = Mage::getModel("review/review")->getResource()->getMainTable();
$adapter->delete($tableRating, $where);