クリーンなデータベースから始めるために、すべてのテスト カテゴリをクリアしたいと考えていました。次のコードですべてのカテゴリを削除しました
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 でカテゴリの 1 つを編集しようとすると、新しいルート カテゴリを作成するためのフォームしか表示されません。
これの原因は何ですか?SO で似たような別の問題を見つけましたが、そこに記載されている解決策 (mod_security を無効にする) ではうまくいきませんでした。だから私は何か他のことが起こっていると思います。カテゴリを適切に削除していない可能性が非常に高いです。
その方法の前にカテゴリを追加したので、API ではないことは確かです。その後、管理者でそれらを編集できました。
あなたの助けを待つことができません。