2011-03-04 2 views
3

nous avons un magasin magento avec différentes catégories les uns dans les autres (sous-catégorie). Notre problème est que lorsque nous entrons dans l'admin pour gérer les catégories dans l'arbre des catégories sur la gauche, certaines de nos catégories qui ont des sous-catégories regarde correctement avec l'icône plus (+) sur la gauche mais quand nous essayons d'étendre la catégorie magento N'afficher aucun article.Magento ne montre pas toutes les catégories dans l'admin

Le point d'appel ajax à cette url:

index.php/admin/catalog_category/categoriesJson/key/09b218741dce69171825fdbf4954855d/isAjax = true

et retourne un tableau vide sans jeter n'importe quelle erreur. Frontend affiche toutes les catégories correctement.

Magento version 1.4.2.1

Une idée?

+0

obtenu le même problème. Maintenant, Magento cherche apparemment le paramètre POST 'id', et je ne reçois que' form_key'. –

Répondre

2

Après avoir lu Joseph réponse que j'ai essayé de rechercher des erreurs dans catalog_category_entity et fondée que toutes les catégories dans mon arbre a le niveau 1 ou 2, sauf pour les catégories qui ne semble pas que avoir le niveau 7. Les choses étranges est que le niveau 7 est le bon niveau pour ces catégories de toute façon je pense que le problème est que Magento a trouvé une catégorie avec le niveau 2 et que les enfants directs ont 7 et ne reconnaissent pas ces catégories comme enfants pour la catégorie père.

J'ai changé le niveau des enfants à 2 et tout semble fonctionner. Pourquoi toutes les catégories de mon arbre ont-elles le niveau 1?

Je ne sais pas ...

1

Avez-vous créé les catégories par programme (par opposition à l'utilisation de l'interface d'administration)? Comme c'est souvent le cas dans Magento, quand une valeur est manquante ou incorrecte dans la base de données, les entrées peuvent ne pas apparaître du tout. Si tel est le cas, jetez un coup d'œil à un enregistrement de catégorie «bonne» dans la base de données et assurez-vous que les catégories manquantes respectent les bonnes conventions.

Espérons que ça aide!

Merci, Joe

+1

Salut Joseph, merci pour votre réponse.Nous avons créé la catégorie en utilisant l'interface d'administration normale, pas par programmation – wezzy

1

Dans mon cas, j'ai importé toutes les catégories et j'ai assigné 'level' comme position dans l'arbre. Peut-être que ce n'est pas ce dont il s'agit, parce que mettre toutes les catégories à un niveau de 2 a fonctionné magnifiquement et gardé mon arbre intact.

Code I utilisé pour mettre tous les niveaux à 2 après l'avoir configuré correctement:

 

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

     $level = $category->getLevel(); 

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

    } 

0

Pour les cas mentionnés, cette requête aurait pu aider:

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 

Il ne m'a pas aidé avec mes catégories, cependant.

2

vous voulez aller dans la table catalog_category_entity

Exécutez la requête SQL suivante:

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,"/%")); 
Questions connexes