删除Magento上的所有产品

2022-08-30 22:29:33

在Magento上有很多关于这个问题的帖子。它们中的大多数都可以工作,但是在执行删除代码/ SQL语句后,类别未将其值重置为零的问题仍然存在,直到现在才得到解决。

这里是否有人有正确的代码或程序来正确删除库存中的所有产品,并在执行后将类别列表重置为零?

提前致谢。


答案 1

从Magento中删除所有产品都可以轻松实现,只需运行:

DELETE FROM `catalog_product_entity`

由于Magento数据库中设置了外键约束,因此所有其他包含产品信息的表都得到了很好的清理。删除大量产品当然需要一些时间,但它至少可以很好地清理。

如果查询由于最长执行时间而无法运行,则始终可以运行如下操作:

DELETE FROM `catalog_product_entity` LIMIT 10000

更新:此逻辑也用于Magento的核心,因此使用起来很安全!https://github.com/OpenMage/magento-mirror/blob/magento-1.8/app/code/core/Mage/ImportExport/Model/Import/Entity/Product.php#L462


答案 2

在独立脚本中:

<?php
require 'app/Mage.php';
Mage::app('admin')->setUseSessionInUrl(false);


$products = Mage::getModel('catalog/product')->getCollection();    
foreach ($products as $product) {
    try {
        $product->delete();
    } catch(Exception $e) {
        echo "Product #".$product->getId()." could not be remvoved: ".$e->getMessage();
    }
}

对超过1400种产品做了这件事,效果很好。之后,您必须重新编制索引。

请注意,上述脚本将删除您的所有产品


推荐