Prestashop : Listing de produits avec les attributs

Prestashop: ajouter les tailles des produits sur la page catégories listing. Prestashop attributs produits modifications.

Prestashop propose par défaut de nombreux modules et fonctionnalités qui lui permettent d’être la solution de boutique E-commerce la plus utilisée en ce moment.

Nous avons décidé de rédiger entre 2 et 4 Tutoriaux par mois, afin de nous perfectionner dans le développement sous Prestashop et d’offrir à la communauté du forum de Prestashop de nouvelles fonctionnalités pour leurs boutiques en ligne.

Cette semaine, nous allons découvrir comment ajouter les attributs sur le listing des produits de chacune des catégories. Dans notre exemple, nous allons prendre une boutique en ligne spécialisées dans la vente de vêtements. Nous allons donc afficher les tailles des produits.

Administration Prestashop

Création du groupe d’attributs Taille

La première étape, si vous ne l’avez pas encore fait et de créer le groupe d’attribut Taille. Allez dans catalogue -> attributs et groupe et cliquez sur ajouter un groupe d’attributs. Pour notre exemple, nous avons créé le groupe d’attribut taille.

Création des déclinaisons d’attributs

Cette deuxième étape consiste en l’ajout en base des attributs. Il est important d’entrer les éléments dans l’ordre, ce qui permettra d’avoir les tailles organisées de la même façon sur la fiche produit.
Sélectionnez le groupe taille et ajoutez toutes les tailles disponibles dans votre boutique.
Nous avons ajouté S, M, L et XL.

Création des déclinaisons des produits

Maintenant, nous allons créer pour nos produits des déclinaisons avec les tailles. Vous pouvez voir sur la capture d’écran que les 4 tailles ont été ajoutées.

Développement Prestashop

Passons aux choses sérieuses maintenant. Nous avons seulement 2 fichiers à éditer afin d’afficher les tailles sur le listing des produits. Mais avant toute chose, vous devez récupérer le numéro du groupe d’attributs que vous venez de créer (dans notre exemple le groupe taille) .Allez dans le menu Catalogue -> attributs et groupe et cliquez sur l’icône d’édition. Levez les yeux et regardez l’URL. Vous devez voir le numéro (Dans notre exemple : id_attribute_group=4 ). L’ID de votre groupe est donc le 4,

Edition de la Class Category

Le fichier se trouve ici : /classes/Category.php

Vers la ligne 421, vous devez voir :


$result = Db::getInstance()->ExecuteS($sql) ;

Copiez juste en dessous le code ci dessous en prennant soin de remplacer le groupe ID.


/*  Début du script    */
		/*  code réalisé par devoox.com  */
		
		/*C'est ce numéro qui doit être modifié par l'ID de votre groupe */
		$numero_du_groupe = 4;
		
		/* Cette boucle sert à ajouter au produit l'attribut de taille */
		for ($i=0;$i<=count($result);$i++){
		
			$nouvelle_requette =  'SELECT al.name
			FROM '._DB_PREFIX_.'product_attribute pa
			JOIN '._DB_PREFIX_.'product_attribute_combination pac ON pac.id_product_attribute = pa.id_product_attribute
			JOIN '._DB_PREFIX_.'attribute_lang al ON (al.id_attribute = pac.id_attribute AND al.id_lang = '.intval($id_lang).')
			JOIN '._DB_PREFIX_.'attribute a ON (a.id_attribute_group = '.$numero_du_groupe.' AND a.id_attribute = pac.id_attribute)
			WHERE pa.id_product = '.$result[$i]['id_product'].' AND pa.quantity >= 1';
			$attributs = Db::getInstance()->ExecuteS($nouvelle_requette);
			if($attributs){
				foreach($attributs as $ajouter_au_tableau){
					$result[$i]['attribute'][]= $ajouter_au_tableau['name'];
						
				}
			}
		}
/*  Fin du script  */

Édition du thème

La class étant modifiée, la dernière étape consiste à afficher les tailles sur votre thème Prestashop. Le fichier à éditer est : /themes/votre_themes/product-list.tpl

Il vous suffit maintenant de placer à l’endroit ou vous le souhaitez (dans la theme par défaut de presta, à la ligne 14) le listing des tailles en ajoutant ce code :


{if $product.attribute}
	
	Taille disponibles:
 
		{foreach from=$product.attribute item=attribute name=attribute}
			{$attribute}
		{/foreach}
	
{/if}

Et voilà, si vous affichez une catégorie en ligne, vous devez maintenant voir les tailles. Ce module à été testé sur Prestashop  1.3.1.1. Je n’ai pas eu le temps de le tester sur d’anciennes versions mais logiquement, ca doit fonctionner.

2 réflexions sur “ Prestashop : Listing de produits avec les attributs ”