Magento не показывает все категории в админке
У нас есть магазин magento с различными категориями внутри (подкатегория). Наша проблема в том, что когда мы входим в администратор, чтобы управлять категориями в дереве категорий слева, некоторые из наших категорий, у которых есть подкатегории, выглядят правильно со значком плюса (+) слева, но когда мы пытаемся расширить категорию, magento hasn не отображать любой элемент.
Точка вызова Ajax на этот URL:
index.php / администратор /catalog_category/categoriesJson/ ключ /09b218741dce69171825fdbf4954855d/?isAjax= истина
и он возвращает пустой массив без каких-либо ошибок. Веб-интерфейс отображает все категории правильно.
Magento версия 1.4.2.1
Любая идея?
5 ответов
Прочитав ответ Джозефа, я попытался найти ошибки в catalog_category_entity и обнаружил, что все категории в моем дереве имеют уровень 1 или 2, за исключением категорий, которые не отображаются с уровнем 7. Странно то, что уровень 7 В любом случае, правильный уровень для этой категории. Я думаю, что проблема в том, что Magento нашел категорию с уровнем 2, и он указывает детям уровень 7, и он не распознает эти категории как детей для категории отца.
Я изменил уровень детей до 2, и все, кажется, работает.
Почему все категории в моем дереве имеют уровень 1? я не знаю...
Ты хочешь пойти в стол 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,"/%"));
Вы создавали категории программно (в отличие от использования интерфейса администратора)? Как часто бывает в Magento, когда какое-либо значение отсутствует или неверно в базе данных, записи могут вообще не отображаться. Если это так, пожалуйста, посмотрите на "хорошую" запись категории в базе данных и убедитесь, что отсутствующие категории соответствуют правильным соглашениям.
Надеюсь, это поможет!
Спасибо джо
В моем случае я импортировал все категории и назначил "уровень" в качестве его позиции в дереве. Может быть, это не то, для чего это нужно, потому что установка всех категорий на уровень 2 работала прекрасно и не повредила мое дерево.
Код, который я использовал для установки всех уровней на 2 после неправильной установки:
foreach ($ category как $category) { $category = $category->load($category->getId()); $level = $category->getLevel(); if($level > 2) { $ Category->setLevel(2); $ Category-> Save(); } }
В упомянутых случаях этот запрос мог бы помочь:
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
Это не помогло мне с моими категориями.