Prestashop : Module Produits Phares

Prestashop, module des produits phares. Détails du module et explication de l’utilisation. Modification du code pour afficher aléatoirement l’affichage des produits.

/****/

[box type= »info »] Mise à jour MAI 2014 pour Prestashop 1.6[/box]

Suite à vos nombreuses demandes et au succès de ce tuto expliquant comment afficher aléatoirement les produits affichés en page d’accueil avec le module produits phare, notre agence web de Bayonne a décidé de mettre à jour notre script. Maintenant, il est compatible Prestashop 1.6

Prestashop permet d’overrider les TPL des modules, mais pas les fichiers PHP. Nous allons donc directement éditer le fichier homefeatured.php du dossier /modules/homefeatured.php

Remplacer la ligne 132

$this->_cacheProducts();

Par

$this->_cacheProducts();

shuffle(HomeFeatured::$cache_products);

Et voila, vos produits vont maintenant s’afficher aléatoirement.

/****/

Produits Phares

Le système Prestashop vous offre la possibilité de mettre en avant certains produits, en les affichant sur la première page. Ce module, activé par défaut sur les boutiques Prestashop se nomme homefeatured.

Le module est très simple à utiliser. En effet, il vous suffit de sélectionner la catégorie « Accueil » pour permettre aux produits de se retrouver sur la première page. Vous devez donc, pour chaque produits que vous souhaitez voir en page d’accueil, sélectionner 2 catégories.

Le nombre de produits phares à afficher sur la page d’accueil et défini à 10 par défaut. Pour modifier le nombre de produit à afficher, cliquez sur le lien configuration du module « Produits phares sur la page d’accueil ».

L’affichage des produits se fait par ordre décroissant d’ajout. Pour modifier cet ordre afin d’avoir un affichage aléatoire des produits phares, il vous suffit d’ajouter une ligne de code.

En dessous de :


$products = $category->getProducts(intval($params['cookie']->id_lang), 1, ($nb ? $nb : 10))

Ajoutez :


shuffle($products);

Ce qui donne :


function hookHome($params)
	{
		global $smarty;

		$category = new Category(1);
		$nb = intval(Configuration::get('HOME_FEATURED_NBR'));
		$products = $category->getProducts(intval($params['cookie']->id_lang), 1, ($nb ? $nb : 10));
		shuffle($products);
		$smarty->assign(array('products' => $products, 'homeSize' => Image::getSize('home')));

		return $this->display(__FILE__, 'homefeatured.tpl');
	}

Cette modification du module à pour résultat l’affichage aléatoire des produits phares.

51 réflexions sur “ Prestashop : Module Produits Phares ”

  1. Bonjour,
    excellent !
    Savez vous comment faire pour retirer automatiquement les produits vendus de la liste dans homefeature ?

    Autre question éventuelle, comment afficher le nombre de produits à côté de chaque catégorie ? Version 1.5.5.0
    Merci,

  2. Bonjour,

    Savez vous comment faire pour retirer automatiquement les produits vendus de la liste dans homefeature ?

    Voici une astuce pour le faire:

    http://www.prestashop.com/forums/topic/236298-afficher-uniquement-les-produits-en-stock/?p=1189319

    Autre question éventuelle, comment afficher le nombre de produits à côté de chaque catégorie ? Version 1.5.5.0

    Il faut passer par un dev spécifique. Nous pouvons réaliser cette modification. Merci de nous contacter

  3. bonsoir,
    je suis novice dans la création de site et très peu de connaissance.
    je voudrais donc rendre aléatoires mes produits sur la page d’accueil mais lorsque j’ouvre avec notepad++ le module homefeature il y a plusieurs fichiers php, tpl, etc. Lequel faut il ouvrir pour effectuer la modification et à quelle ligne.
    merci pour votre aide

  4. Bonjour, il faut éditer le fichier homefeatured.php
    En remplaçant :

    $products = $category->getProducts((int)Context::getContext()->language->id, 1, ($nb ? $nb : 10));

    Par:

    $products = $category->getProducts((int)Context::getContext()->language->id, 1, ($nb ? $nb : 10));
    shuffle($products);

    Ca devrait fonctionner ;)

  5. Bonjour,

    Savez comment faire pour afficher les produits en promotions ou pas sur la page d’accueil avec ce type de critères :

    – Produit titre seulement
    – Produit sans titre
    – Produit titre + prix ou Produit titre + prix + prix barré

    avec possibilité d’indiquer «nouveautés, soldes, promos ou -15%…»

    clic sur fiche produit ou lien

    Existe-il un module ou faudrait-il faire un dev. spécifique?

  6. Bonjour,
    Je souhaiterai afficher mes Produits Phares en liste (1 article par ligne: image à gauche, description au centre et prix sur la droite)
    Est-il possible de le faire et si oui, comment?
    Toute aide est la bienvenue, merci.

  7. Bonjour,
    J’aimerai afficher mes Produits Phares sous forme de liste et non sous forme de grille.
    Est-ce possible et si oui pouvez-vous me guider dans cette démarche?
    Merci.

  8. Bonjour,
    j’ai installé un module qui fonctionne très bien et qui s’appelle ajaxinfinity.
    Il permet de descendre dans la page et les articles s’affichent au fur et a mesure comme dans facebook.
    il fonctionne très bien, sauf pour le bloc produits phares sur la page d’accueil.
    Or, c’est précisément là que je le voudrais.
    ou bien si c’est impossible, j’aimerais faire apparaitre une ou plusieurs catégories en pages d’accueil, sur qui le module fonctionne.
    Auriez-vous une idée?
    Merci.

  9. Bonjour,

    Super site web :-))

    Pourriez-vous me dire comment afficher les catégories de produits à la place des produits phares sur la homepage via le module « homefeatured » de Prestashop (version 1.5.6.0). Et si possible quelles seraient les lignes à modifier dans le fichier « homefeatured.tpl ». Merci d’avance.

  10. Bonjour,

    Dans le homefeatured.php, vous avez un listing de produits. Il faut depuis ces produits identifier la catégorie principale qui est affectée et créer une variable qui sera assignée à Smarty.

    Ce n’est pas une simple modification du TPL ;)

  11. Bonjour,
    Je souhaiterai avoir la possibilité de choisir l’ordre d’affichage des produits sur la page d’accueil via ce module. Savez-vous comment faire ? est-ce aussi simple que de le mettre en mode aléatoire ?

    Merci pour votre retour !

    1. L’ordre d’affichage peut se gérer manuellement depuis le backoffice. Il suffit d’aller dans catalogue, de cliquer sur Filtrer par Catégories, de sélectionner Accueil et de déplacer manuellement avec le picto qui ressemble à une croix à droite les produits. Simple non ? Merci Prestashop !

  12. Serait-il possible de mettre carrément la totalité de la page homefeatured.php ?

    Je n’ai pas du tout le même fichier que vous, d’ailleurs, la fonction « hookhome » n’existe même pas dans mon doc PHP…

  13. Bonjour,
    merci pour vos information.
    ma question est il y a juste a rajouter une ligne et rien d’autre a modifier ?
    car j’ai rajouter la ligne de code shuffle(HomeFeatured::$cache_products);et sa ne fonctionne pas.
    merci

    1. Bonjour, oui. La fonction shuffle permet d’organiser aléatoirement le tableau (array).
      Pouvez-vous vider votre cache et réessayer ?

  14. bjr,
    je cherche à supprimer la phrase « produits phares » dans la page d’accueil, ainsi que les phrases dans les fiches produits « Attention:dernières pièces disponibles! », et supprimer « Short description » et laisser que le texte descriptif.
    j’ai la version 1.6.0.5
    Par avance merci.

    1. Je souhaite également supprimer le titre « produits phares » dans la page d’accueil. Après de longues heures de recherche je ne trouve toujours pas de solution.

  15. Bonjour Mickael,

    Ma question est la suivante: est-il possible d’afficher quelques produits de chaque catégorie sur ma page d’accueil? Vu que je possède plusieurs images, et j’aimerais afficher quelques unes seulement.

  16. Bonjour Mickaël,
    j’ai associer tout mon catalogue a la page d’accueil, dans le module produits phare j’ai sélectionner 16 produits et j’aimerais que les produits s’affiche aléatoirement parmi tout les produits associer a la page d’accueil et pas seulement parmi les 16 premiers
    est-ce possible ?
    Merci beaucoup

  17. Bonjour Mickael,

    J’ai un souci d’affichage dans mes produits phares. Mes produits ne s’affichent pas correctement dans ce bloc, pour être plus claire vu que je ne peux joindre une image ici je laisse un schéma simple.

    ——

    ——
    ——

    ——
    Voilà comment sont affichés mes produits dans ce bloc. Je sais que ça quitte du Css si je ne me trompe pas, mais jusque là je ne sais pas comment m’y prendre malgré touts vérifications.

    Merci bien.

      1. En ce moment il est maintenance… Mais là j’ai limité le nombre de produit à 14 il affiche bien. Dès lors que je remets à 16 c’est le bordel.

  18. Bonjour et merci pour ce post simple mais efficace.

    J’ai cependant un problème, l’apparition des produits phares est bien aléatoire mais seulement limité au 16 premiers produits (nombre que j’ai paramétré), alors que j’ai bien plus de produits dans ma catégorie « accueil ».

    Comment faire pour que tous mes produits présents dans « accueil » puisse apparaître aléatoirement.

    Cordialement

    1. Un petit « up », effectivement la fonction shuffle affiche aléatoirement les données du tableau, mais votre astuce ne permet pas d’afficher aléatoirement 16 produits parmi X produits phares. Comment peut-on faire ça ?

        1. Bonjour,

          Oui j’en ai paramétré 16 (je ne veux pas plus sur ma page d’accueil), mais je dois en avoir près d’une trentaine dans ma « catégorie » accueil.
          Penez-vous qu’il soit donc possible de faire tourner automatiquement et aléatoirement ces 30 produits ? car pour l’instant seuls les 16 qui s’affichent tournent aléatoirement entre eux.
          Merci, cordialement.

  19. Bonjour Mickael !

    Je voudrais afficher que 4 produits dans la page d’accueil, mais qui lorsqu’on clic sur un produit renvoie à sa catégorie (pour voir toute la gamme) au lieu d’aller directement à la page du produit.

  20. Hello mickael,
    Tout d’abord merci pour tous ces conseil, j’ai l’impression de me retrouver sur le bon vieux forum de oscommerce…Bon, je suis sur une version prestashop 1.6.0.9 et j’ai appliqué le changement dans « homefeatured.php »…
    if (!$this->isCached(‘tab.tpl’, $this->getCacheId(‘homefeatured-tab’)))
    $this->_cacheProducts();
    shuffle(HomeFeatured::$cache_products);
    En fait c’est sur la ligne 139 chez moi, j’ai vidé le cache dans performances de l’admin et vider le cache du navigateur, et malgré tout les produit ne changes pas dans les nouveautés… Une idée, merci d’avance et encore merci…

    Alain

    1. Bonsoir,

      Oscommerce, que de souvenirs ;)

      Sur votre site je ne vois pas le module des produits phares …

      Il faut appliquer ce patch dans le module de votre thème qui affiche les derniers produits et les meilleures ventes.

      Bonne soirée!

      Mickaël

      1. Bonjour Mickaël,

        J’ai regardé dans mon thème et en fait il n’y a que des fichiers TPL. Dans la dernière version de prestashop que j’ai en production actuellement, la 1.6.0.9, la configuration de base est celle de mon site, donc peut-être pas de module « produits phares ». par contre j’ai pris en compte vos observations et je pense que le module qui affiche les news dans cette version est « monsite/modules/blocknewproducts/blocknewproducts.php ».L’écriture du script est totalement différente de « homefeatured.php », donc le patch est difficile à appliquer pour un novice en presta comme moi (-de 1 mois), mais je peus mettre les moins sous le capot comme je l’ai fais avec OSC pendant des années…;-)Si vous avez une piste, you’re welcome…

        Alain