2010-08-30 4 views
3

J'ai quelques attributs personnalisés sur mes produits dans Magento et ils sont consultables dans la page de recherche de Magento; problème est que les champs sont répertoriés dans le mauvais ordre sur la page de recherche;Modifier l'ordre des attributs dans la page de recherche avancée de Magento

Par exemple:

 
Title _____ 
Author _____ 
SKU _____ 
ISBN _____ 

devrait être:

 
Author _____ 
Title _____ 
ISBN _____ 
SKU _____ 

J'ai examiné le fichier de modèle et il semble être sortie d'un tableau (ou objet) à partir de son ordre interne . Je voudrais savoir comment changer cette commande :).

Des idées (relativement simples)?

Répondre

6

Si vous ouvrez le bloc qui correspond à votre modèle (catalogsearch\advanced\form.phtml ->Mage_CatalogSearch_Block_Advanced_Form), vous verrez qu'il est d'appeler la méthode getAttributes de Mage_CatalogSearch_Model_Advanced qui à son tour d'exécution:

$attributes = Mage::getResourceModel('catalog/product_attribute_collection') 
      ... 
      ->setOrder('main_table.attribute_id', 'asc') 
      ->load(); 

Tout cela signifie qu'il est le tri par le champ attribute_id dans le tableau eav_attribute, pas un domaine particulier utile.

Cependant, la requête réelle effectue une jointure sur la table catalog_eav_attribute comme additional_table ce qui signifie que vous pouvez modifier la partie de tri du code pour être ->setOrder('additional_table.position', 'asc') puis modifiez les valeurs du champ « position » dans ce tableau via phpMyAdmin.

Afin de faire cette modification à l'épreuve du futur, prenez une copie du fichier Mage_CatalogSearch_Model_Advanced et copiez-la au app/code/local/Mage/CatalogSearch/Model avant de faire des modifications. Pour déboguer la requête SQL, activez $_debug et $_logAllQueries dans lib/varien/Db/Adapter/Pdo/Mysql.php.Ne pas oublier de désactiver cela dans la production !!

Hope this helps, JD

+0

@Jonanthan: Je déteste de telles choses à faire.Mais magnéto n'est pas très intelligent sur de telles choses.tout de même vous avez sauvé mon temps.tarques – Gowri

0

Vous avez essayé de définir l'attribut de position sur ces attributs?

Catalogue -> Attributs -> Gérer les attributs -> Attribut -> Propriétés Frontend -> Position

Edit:

En fait, il semble que vous pourriez avoir à appliquer le tri manuel au bloc de résultats de recherche/modèle.

Commencez ici pour plus de détails sur la façon de faire ce genre de chose: http://alanstorm.com/category/magento

+1

de magento IRC: La position de l'attribut dans le bloc de navigation en couches fait référence à l'attribut Dropdown, Select ou Price où la position est réellement dans la navigation is_anchor ou quelque chose de similaire. Donc, si l'attribut est juste une entrée de texte, alors la position est désactivée. –

2

Magento 1,7x cela peut être fait par la direction de l'attribut produit Set.

Aller à Catalog-> Attributs -> Gérer Attribute Set --- Sélectionnez votre ensemble d'attributs

De là, vous pouvez modifier l'ordre, ajouter et supprimer les attributs d'un ensemble.

+0

Sur 1.9x il change l'ordre des attributs sur la page du produit pas dans la recherche avancée – turson

Questions connexes