Magento не показывает все категории в админке - PullRequest
3 голосов
/ 04 марта 2011

у нас есть магазин magento с различными категориями внутри (подкатегория).Наша проблема в том, что когда мы входим в администратор для управления категориями в дереве категорий слева, некоторые из наших категорий, в которых есть подкатегории, выглядят правильно со значком плюса (+) слева, но когда мы пытаемся развернуть категорию, magento hasnне отображать никакой элемент

и возвращает пустой массив без каких-либо ошибок.Веб-интерфейс отображает все категории правильно.

Magento версия 1.4.2.1

Есть идеи?

Ответы [ 5 ]

2 голосов
/ 18 августа 2015

Вы хотите перейти в таблицу 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 голосов
/ 04 марта 2011

После прочтения ответа Джозефа я попытался найти ошибки в catalog_category_entity и обнаружил, что все категории в моем дереве имеют уровень 1 или 2, за исключением категорий, которые не отображаются с уровнем 7. Странно то, чтоуровень 7 - правильный уровень для этой категории, так или иначе, я думаю, что проблема в том, что Magento нашел категорию с уровнем 2, и он указывает, что дети имеют уровень 7, и он не распознает эти категории как дети для категории отца.

Я изменил уровень дочерних элементов на 2, и все, кажется, работает.

Почему все категории в моем дереве имеют уровень 1?я не знаю ...

1 голос
/ 11 декабря 2011

В моем случае я импортировал все категории и назначил «уровень» в качестве его позиции в дереве.Может быть, это не то, для чего это нужно, потому что установка всех категорий на уровень 2 работала прекрасно и не повредила мое дерево.

Код Я использовал для установки всех уровней на 2 после неправильной установки:


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

        $level = $category->getLevel();

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

    }

1 голос
/ 04 марта 2011

Создавали ли вы категории программно (в отличие от использования интерфейса администратора)?Как часто бывает в Magento, когда какое-либо значение отсутствует или неверно в базе данных, записи могут вообще не отображаться.Если это так, пожалуйста, взгляните на «хорошую» запись категории в базе данных и убедитесь, что отсутствующие категории соответствуют правильным соглашениям.

Надеюсь, это поможет!

Спасибо,Джо

0 голосов
/ 28 июля 2015

В упомянутых случаях этот запрос мог бы помочь:

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

Это не помогло мне с моими категориями.

...