我想清除所有测试类别,以干净的数据库开始。我使用以下代码删除了所有类别
Mage::app()->setCurrentStore(Mage::getModel('core/store')>load(Mage_Core_Model_App::ADMIN_STORE_ID));
// 1 is default store_id
$rootCategoryId = Mage::app()->getStore(1)->getRootCategoryId();
$resource = Mage::getSingleton('core/resource');
$db_read = $resource->getConnection('core_read');
$categories = $db_read->fetchCol("SELECT entity_id FROM " . $resource->getTableName("catalog_category_entity") . " WHERE entity_id>1 ORDER BY entity_id DESC");
foreach ($categories as $category_id) {
if ($category_id == $rootCategoryId)
continue;
try {
Mage::getModel("catalog/category")->load($category_id)->delete();
} catch (Exception $e) {
return $e->getMessage() . "\n";
}
}
删除了根类别以外的所有内容。完成后,我通过API添加了类别,这非常顺利。现在出现问题:当我尝试编辑Magento Admin中的一个类别时,他只显示form to create a new root category。
这可能是什么原因?我发现another issue在SO上看起来很相似,但那里提到的解决方案(禁用mod_security)并没有为我做好工作。所以我想还有其他事情要发生。我很有可能没有以良好的方式删除类别。
我很确定它不能是API,因为我之前添加了类别,之后我可以在管理员中编辑它们。
不能等待你的帮助。