Prestashop : gérer l'ordre des attributs
Accueil Tags Recherche30 Octobre 2013
Prestashop : gérer l'ordre des attributs
Comment changer l'ordre d'affichage des attributs sous Prestashop, pour ne pas utiliser un classement alphabétique ?Avec Prestashop, vous avez la possibilité de créer plusieurs déclinaisons pour un même produit afin de le fournir, par exemple, en différentes couleurs. Ces déclinaisons sont basées sur des attributs (dans notre exemple, l’attribut Couleur). Jusque là, rien de bien méchant. Côté Front-Office, plutôt que d’avoir plusieurs produits en différentes couleurs, vous aurez une unique fiche produit, avec une sélection pour chaque attribut :
Malheureusement, Prestashop 1.4 ne gère pas l’ordre de ces attributs, il les classe simplement par ordre alphabétique. Cela ne pose aucun souci dans le cas de couleurs, mais ça se corse quand vous commencez à utiliser des tailles vestimentaires :
- L
- M
- S
- XL
- XS
- XXL
Je le rappelle, Prestashop vous permet d’ordonner tout ça avec sa version 1.5. Pour ceux qui en sont toujours à la 1.4, vous pourrez désormais utiliser un petit module gratuit : AttributePosition. Ci-dessous la procédure d’installation.
Téléchargement
Vous pouvez trouver ce petit module sur prestatools.com, ou sur le site du développeur (Henri Baeyens). Il n’est malheureusement pas disponible sur le dépôt officiel des addons Prestashop.
Installation
Une fois téléchargé, suivez la procédure habituelle, en installant le module via le Back-Office.
Configuration
Pour fonctionner, le module requiert quelques modifications mineures sur deux classes. Vous pouvez créer des override de ces classes si besoin (recommandé).
Dans la classe Product, modifiez la clause ORDER BY de la requête dans la fonction getAttributesGroups()
:
ORDER BY ag.`position` ASC, a.`position` ASC
Dans la classe ProductController, commentez ces deux lignes dans la fonction process()
:
// foreach ($groups AS &$group)
// natcasesort($group['attributes']);
Et voilà notre module installé. Pour pouvez maintenant le retrouver dans le Back-Office en passant par Catalogue > Ordre des attributs (il est possible que ce soit en anglais, mais ça reste simple à trouver).
Liens
Le site du développeur AttributePosition sur le site du développeur Doc PHP : la fonction natcasesort() Le site officiel de Prestashop Le dépôt officiel des addons Prestashop