0

以下のコードを使用してカテゴリを追加しています。

私の質問は次のとおりです。ルート カテゴリにカテゴリを追加するためにこのコードを変更する方法は?

require_once('../app/Mage.php');
Mage::app('mysite');

$category = Mage::getModel('catalog/category');
$category->setStoreId(Mage::app()->getStore()->getId());

if ($id) {
  $category->load($id);
}
$general['name'] = "My Category";
$general['description'] = "Great My Category";
$general['meta_title'] = "My Category"; //Page title
$general['meta_keywords'] = "My , Category";
$general['meta_description'] = "Some description to be found by meta search robots. 2";
$general['is_active'] = 1;
$general['is_anchor'] = 0;
$general['url_key'] = "cars";//url to be used for this category's page by magento.
$category->addData($general);

try {
    $category->save();
    echo "<p>Success! Id: ".$category->getId();
}
catch (Exception $e){
    echo $e->getMessage();
}
4

2 に答える 2

1

これを追加するだけです:

$general['path'] = "1/root_id/path_to_your_cat";

たとえば、追加するルート カテゴリがカテゴリ ID 5 の場合は、次のように指定します。

$general['path'] = "1/5"; 
于 2013-03-01T17:06:57.690 に答える
1

APIクラスを使用すると簡単です:)

try {
    $storeId = Mage::app()->getStore()->getId();
    $parentId = Mage::app()->getStore($storeId)->getRootCategoryId();
    $categoryData = array(
         'is_active'         => TRUE,
         'default_sort_by'   => 'price',
         'available_sort_by' => 'price',
         'include_in_menu'   => TRUE,
         'name'              => 'something here'
    );
    $api = new Mage_Catalog_Model_Category_Api_V2;
    return $api->create($parentId, (object) $categoryData, $storeId);
}
catch(Exception $e) {
    echo $e->getMessage(); // do something here...
}
于 2013-03-01T16:59:22.960 に答える