Magento没有在管理员中以编程方式显示新的类别名称

时间:2012-07-26 21:03:03

标签: magento

我刚刚使用以下代码以编程方式创建了一个新的根类:

$category = new Mage_Catalog_Model_Category();
$category->setStoreId(0);
$category->setName('Storybloks6');
$category->setUrlKey('storyblocks6');
$category->setIsActive('1');
$category->setIncludeInMenu('0');
$category->setDescription('Produtos que aparecem em destaque no carrossel da home');
$category->setDisplayMode('PRODUCTS');
$category->setIsAnchor('0');
$category->setLevel('1');
$category->setParentId('1');

$parentCategory = Mage::getModel('catalog/category')->load('1');
$category->setPath($parentCategory->getPath()); 
$category->save();

添加了类别,但在管理类别页面中,菜单上没有显示标签: new category appears as (0) on menu 新类别在菜单上显示为(0)。我该如何解决?

2 个答案:

答案 0 :(得分:0)

检查您是否在同一商店(管理商店 - 代码0)的后端查看类别树,或者查看未设置标签的其他商店。

答案 1 :(得分:-1)

在Magento根文件夹中创建名为somename.php的文件,并将以下代码粘贴到文件中并保存。只需通过webbrowser运行脚本即可。它应该创建一个类别“汽车” - 在1.4.2.0上为我工作。

<?php
require_once 'app/Mage.php';
Mage::app('default'); // Default or your store view name.

//get a new category object
$category = Mage::getModel('catalog/category');
$category->setStoreId(0); // 0 = default/all store view. If you want to save data for a specific store view, replace 0 by Mage::app()->getStore()->getId().

//if update
if ($id) {
  $category->load($id);
}

$general['name'] = "Cars";
$general['path'] = "1/3"; // 1/3 is root catalog
$general['description'] = "Great new cars";
$general['meta_title'] = "Cars"; //Page title
$general['meta_keywords'] = "car, automobile";
$general['meta_description'] = "Some description to be found by meta search robots.";
$general['landing_page'] = ""; //has to be created in advance, here comes id
$general['display_mode'] = "PRODUCTS_AND_PAGE"; //static block and the products are shown on the page
$general['is_active'] = 1;
$general['is_anchor'] = 0;
$general['url_key'] = "cars";//url to be used for this category's page by magento.
$general['image'] = "cars.jpg";


$category->addData($general);

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