删除Magento上的所有产品
在Magento上有很多关于这个问题的帖子。它们中的大多数都可以工作,但是在执行删除代码/ SQL语句后,类别未将其值重置为零的问题仍然存在,直到现在才得到解决。
这里是否有人有正确的代码或程序来正确删除库存中的所有产品,并在执行后将类别列表重置为零?
提前致谢。
在Magento上有很多关于这个问题的帖子。它们中的大多数都可以工作,但是在执行删除代码/ SQL语句后,类别未将其值重置为零的问题仍然存在,直到现在才得到解决。
这里是否有人有正确的代码或程序来正确删除库存中的所有产品,并在执行后将类别列表重置为零?
提前致谢。
从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
在独立脚本中:
<?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种产品做了这件事,效果很好。之后,您必须重新编制索引。
请注意,上述脚本将删除您的所有产品