2013-03-01 3 views
0

Я добавляю категорию, используя следующий код.Список категорий Magento пуст

Мой вопрос: Как изменить этот код, чтобы добавить категорию в Корневую категорию?

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(); 
} 

ответ

1

Просто добавьте это:

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

с пути к этому, например, если корневая категория вы хотите добавить в категорию id 5 использовать:

$general['path'] = "1/5"; 
+0

все, спасибо! –

+0

Добро пожаловать. Если вы не создаете это как сценарий с одним выстрелом, не стесняйтесь смотреть на путь API. Много документов доступно через Интернет, и сообщение Андрея должно помочь вам много. – dagfr

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... 
} 
Смежные вопросы