Magento没有在admin中显示所有类别

时间:2011-03-04 10:16:10

标签: magento admin categories

我们有一个magento商店,其中包含一个在另一个(子类别)中的各种类别。我们的问题是,当我们进入管理员来管理左侧类别树中的类别时,我们的一些具有子类别的类别正确地看起来与左侧的加号(+),但是当我们尝试扩展类别magento时不显示任何项目。

ajax呼叫指向此网址:

  

的index.php /管理/ catalog_category / categoriesJson /键/ 09b218741dce69171825fdbf4954855d /?isAjax =真

并返回一个空数组而不会抛出任何错误。前端正确显示所有类别。

Magento版本1.4.2.1

有什么想法吗?

5 个答案:

答案 0 :(得分:2)

在阅读约瑟夫答案后,我试图在catalog_category_entity中搜索错误,并确定我树中的所有类别都有1级或2级,除了没有出现级别7的类别。奇怪的是7级是这些类别的正确级别无论如何我认为问题在于Magento发现了一个级别为2的类别,并且直接孩子有7级并且它不会将这些类别识别为父类别的孩子。

我把孩子的等级改为2,一切似乎都有效。

为什么我树中的所有类别都是1级?我不知道......

答案 1 :(得分:2)

你想进入表catalog_category_entity

运行以下SQL查询:

UPDATE catalog_category_entity SET children_count =
(SELECT COUNT(*) FROM
(SELECT * FROM catalog_category_entity) AS table2
WHERE path LIKE
CONCAT(catalog_category_entity.path,"/%"));

答案 2 :(得分:1)

您是否以编程方式创建了类别(而不是使用管理界面)?与Magento中的情况一样,当数据库中的某些值丢失或不正确时,条目可能根本不会显示。如果是这种情况,请查看数据库中的“好”类别记录,并确保缺少的类别遵循正确的约定。

希望有所帮助!

谢谢, 乔

答案 3 :(得分:1)

在我的例子中,我导入了所有类别,并将“level”指定为树中的位置。也许这不是它的用途,因为将所有类别设置为2级可以很好地工作并保持我的树完好无损。

代码我在设置错误后将所有级别设置为2:


    foreach ($categories as $category) {
        $category = $category->load($category->getId());

        $level = $category->getLevel();

        if($level > 2) {
            $category->setLevel(2);
            $category->save();
        }

    }

答案 4 :(得分:0)

对于上述情况,此查询可能有所帮助:

select c.entity_id cid, p.entity_id pid
from 
  catalog_category_entity c
  inner join catalog_category_entity p on c.parent_id = p.entity_id
where c.level != p.level+1
但是,它对我的​​类别没有帮助。