私は新しいカテゴリを作成し、このメソッドを使用しています:私は、Magentoのカテゴリに割り当てられたIDを知っているMagento - カテゴリの新しい親をプログラムで設定する方法
private function createCat($name){
$category = Mage::getModel('catalog/category');
$category->setStoreId(0);
$category->setName($name); // The name of the category
$category->setUrlKey(strtolower($name)); // The category's URL identifier
$category->setIsActive(1); // Is it enabled?
$category->setIsAnchor(0);
// Display mode can be 'PRODUCTS_AND_PAGE', 'PAGE', or 'PRODUCTS'
$category->setDisplayMode('PRODUCTS');
$category->setPath('1/3'); // Important you get this right.
$category->setPageTitle($name);
$category->save();
return $category->getId();
}
した後、私はその後、各カテゴリに親カテゴリを割り当てるには、ループ内で次のメソッドを呼び出します。
実際には機能しません。最初の方法はカテゴリをうまく作成しますが、2番目の方法を実行した後は、管理パネルを読み込んでカテゴリを表示することさえできません。
私は間違っていますか?
EDIT:
私は第二の方法に間違ったIDを送信していました。データベーステーブルcatalog_category_entityが正しく入力されたように見えますが、管理ビューではカテゴリが正しく表示されません。彼らはまだルートカテゴリが親であるかのように表示されており、データベースでは新しい親が0の子を持つとして表示されています。何らかのインデックス作成が必要ですか?
EDIT:SOLUTION:
私は平均時間で解決策を見つけることができました。あなただけのsetParentId()
を使用することができます
private function assignCat($id, $parent){
$category = Mage::getModel('catalog/category')->load($id);
Mage::unregister('category');
Mage::unregister('current_category');
Mage::register('category', $category);
Mage::register('current_category', $category);
$category->move($parent);
return;
}
解決策を回答として投稿する必要があります – Benubird