実際には、セットアップスクリプトを使用してカテゴリを追加できますが、何らかの理由で一部のフィールドが正しく設定されていません。これが私のコードです
$this->startSetup();
Mage::register('isSecureArea', 1);
$category = Mage::getModel('catalog/category');
$category->setPath('1/2') // set parent to be root category
->setName('Category Name')
->setUrlKey('category-name')
->setIsActive(0)
->setIncludeInMenu(1)
->setInfinitescroll(1)
->setDisplayMode('PAGE')
->setLandingPage($idToCmsBlock)
->setPageLayout('anotherLayoutThanDefault')
->setCustomUseParentSettings(0)
->setCustomLayoutUpdate('<reference name="head"><action method="addCss"><stylesheet>css/somecss.css</stylesheet></action></reference>')
->save();
$this->endSetup();
このスクリプトを実行した後、EAVテーブルにすべての値を設定して作成されたカテゴリがあります。ただし、フラットテーブルのインデックスを再作成しても、フラットテーブルにはdisplayMode、landingPage、pageLayout、customLayoutUpdateがありません。
奇妙なことに、管理者に入ると、これらのフィールドがすべて適切に設定されているのがわかりますが、フロントエンドに入ると、これらのフィールドのほとんどが無視されます。管理者に行き、それらの値の設定を解除し、それぞれが正しく機能するようにリセットする必要があります。
また、setEnabled(1)を使用すると、私のカテゴリは管理者では「有効」になりますが、フロントエンドには表示されません。
PS:フラットカテゴリをアクティブにしました。無効にすると正常に機能するように見えますが、インデックスを再作成しても機能しません。