Nous allons voir dans ce tutoriel comment afficher de manière aléatoire des produits phares sur une boutique Prestashop version 1.5.6.2. Pour information, Prestashop est un système de gestion de contenu Open Source permettant de créer une boutique en ligne.
Le module produits phares de Prestashop est un module natif qui permet d’afficher des produits affectés à la catégorie accueil. Le bloc produits phares se situe donc en principe sur la page d’accueil de la boutique. Il existe deux méthodes pour pouvoir afficher les produits phares aléatoirement : en installant un module tiers ou en modifiant le code source du module installé par défaut dans Prestashop. Nous allons voir la deuxième méthode, en modifiant directement le code source (script PHP).
Modification du script PHP
Le module produits aléatoires se nomme homefeatured et se situe dans le répertoire modules :
modules/homefeatured
Il faut ouvrir et éditer un seul fichier du module pour arriver à nos fins, c’est le fichier homefeatured.php :
modules/homefeatured/homefeatured.php
Comme vous pouvez le constater, le fichier PHP contient une classe HomeFeatured qui hérite de la classe Module. Nous allons modifier deux lignes de code dans une méthode de classe qui a pour fonction de récupérer les produits et de les afficher dans le template situé sur la page d’accueil (bloc produits phares). La méthode de classe en question est la méthode hookDisplayHome(). Rendez-vous donc dans la méthode de classe hookDisplayHome à la ligne 123 :
$products = $category->getProducts((int)Context::getContext()->language->id, 1, ($nb ? $nb : 8));
$products contient les produits phares (normalement des objets) qui ont été retournés par la méthode getProducts() de l’objet $category. Nous allons ajouter des paramètres à cette méthode comme ceci :
$products = $category->getProducts((int)Context::getContext()->language->id, 1, ($nb ? $nb : 8), NULL, NULL, false, true, true, ($nb ? $nb : 8), ‘position’);
Si vous voulez en savoir plus sur les paramètres de la méthode getProducts() de la classe Category, rendez-vous à la ligne 539 du fichier :
classes/Category.php
Nous allons ensuite modifier la ligne 131 :
return $this->display(__FILE__, ‘homefeatured.tpl’, $this->getCacheId(‘homefeatured’));
Ce code retourne le template homefeatured.tpl grâce à la méthode display() de la classe HomeFeatured. Pour pouvoir afficher les produits phares à chaque rafraichissement de la page accueil, nous allons supprimer le deuxième paramètre de la méthode comme ceci :
return $this->display(__FILE__, ‘homefeatured.tpl’);
Voilà, en modifiant ces deux lignes (123 et 131) de code, les produits phares devraient s’afficher de manière aléatoire à chaque rafraichissement de la page accueil. N’oubliez pas que pour afficher les produits phares, vous devez affecter les produits à la catégorie accueil dans le back office de Prestashop.
Partager sur les réseaux sociaux
Lire des commentaires
Information
Aucun commentaire enregistré dans la base de données.
Poster un commentaire