Mise à jour de l’article le 28/12/2021 : Compatible avec Prestashop 1.7.7.1
Mise à jour de l’article le 02/05/2020 : J’ai testé sur la version 1.7.6.5 et cela fonctionne parfaitement. Attention à bien vider le cache pour voir les modifications.
Sur Prestashop 1.7 nous n’avons plus les sous-catégories d’affichées sur les catégories de produits. Si vous n’avez pas un thème spécifique avec cette option alors ce tutoriel va vous aider ! De plus nous allons voir comment utiliser la miniature de la catégorie et non l’image de couverture.
Pourquoi afficher des sous-catégories sur son site e-commerce ?
Dans une catégorie de produits, le fait d’afficher les sous éléments, cela va agrandir la ligne de flottaison de votre site. L’utilisateur va devoir scroller plus longtemps avant de voir vos produits. Mais les sous-catégories vont avoir un avantage considérable, elles vont servir d’entonnoir à vos futurs clients. Il va pouvoir rejoindre directement l’endroit qu’il cherche.
Voici un exemple avec un site de vêtement : – Vêtement (catégorie) – Homme (sous-catégorie) – Sports (sous-catégorie) – Jogging (sous-catégorie) *Liste des produits que le client recherche*
Bien sûr vous pouvez utiliser la navigation de recherche pour cela sur Prestashop. L’avantage de la sous-catégorie c’est qu’elle est illustrée en image.
Afficher vos sous-catégories dans category.tpl sur Prestashop 1.7
Je vais donner plusieurs exemples d’affichage en dessous en utilisant le thème par défaut Classic. Ils seront tous différents au niveau de l’image à afficher.
Tout d’abord rendez vous dans votre back-office et créez une sous-catégorie. Ensuite, ajoutez une image de couverture à votre catégorie (image principale qui sera affichée) puis enregistrez (très important). Maintenant qu’elle est active vous pouvez la modifier à nouveau et si vous le souhaitez, ajouter une miniature.
Modifier le fichier category.tpl
Pour exposer l’ensemble sur votre site vous allez devoir faire une modification dans le code.
Rendez-vous ici : themes/nomdevotrethemes/templates/catalog/listing/ et ouvrir le category.tpl
Sur le thème Classic vous pouvez le mettre dans : themes/nomdevotrethemes/templates/catalog/_partials/category-header.tpl À la suite des éléments déjà présents. Certains thèmes Prestashop ne disposent pas de ce fichier c’est pour cela que je me concentre sur le fichier category.tpl.
Une fois que vous avez ouvert le category.tpl vous devez ajouter ce code dans le {block name=’product_list_header’} :
{** * 2007-2018 PrestaShop * * NOTICE OF LICENSE * * This source file is subject to the Academic Free License 3.0 (AFL-3.0) * that is bundled with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * https://opensource.org/licenses/AFL-3.0 * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to license@prestashop.com so we can send you a copy immediately. * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade PrestaShop to newer * versions in the future. If you wish to customize PrestaShop for your * needs please refer to http://www.prestashop.com for more information. * * @author PrestaShop SA <contact@prestashop.com> * @copyright 2007-2018 PrestaShop SA * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) * International Registered Trademark & Property of PrestaShop SA *} {extends file='catalog/listing/product-list.tpl'}
Dans l’URL de l’image nous allons chercher dans le dossier image de Prestashop les miniatures (img/tmp) et on détermine avec une variable l’ID de la sous-catégorie en ajoutant “thumb” ce qui permet d’afficher l’image redimensionnée par Prestashop.
Charger la miniature catégorie avec sa taille par défaut
Vous pouvez aussi ne pas charger une image avec “thumb” pour des problèmes de qualité. On va donc appeler l’image non formaté par Prestashop. Attention à ne pas charger des images trop lourdes si c’est juste pour l’avoir en miniature sur le site. Cela peut alourdir le temps de chargement.
Il vous faut tout simplement supprimer “-thumb” du nom de l’image :
Voici quelques lignes de CSS à ajouter pour avoir un meilleur rendu visuel sur le site. Adaptez-le selon vos besoins et votre thème. Pour mon exemple, j’ai mis cela dans le custom.css du thème Classic de Prestashop 1.7.
#subcategories ul { text-align: center; } #subcategories ul li img { width: 100% } #subcategories li a { display: block; } #subcategories li a.subcategory-name { margin-top: 1rem; }
Je vous confirme après test que cela fonctionne très bien sous 1.7.6.5. Attention à bien fermer les balises et de bien vider le cache après modification.
Bonjour, J’ai bien la catégorie catégory-header tpl mais je n’ai pas la balise block. Dois-je mettre le code à la fin du coup ? Voici ce que j’ai : {if $listing.pagination.items_shown_from == 1}
Vous n’avez pas forcément besoin de la balise. Placez le après {if $category.image.large.url}{/if}. Mais au vu de ce fichier de thème, je pense que ça devrait être dans un autre fichier pour un rendu esthétique. Là par contre c’est du cas par cas par rapport au thème
bonjour, j’ai la version 1.7.8.6, le thème SpicyPepper et je n’y parviens pas avec votre tuto, même ne vidant le cache etc. avez-vous une idée ? merci d’avance
Peut-être que la structure du thème n’est pas adaptée pour ce tutoriel. Depuis, Prestashop intègre cette fonction dans son thème et c’est les mêmes variables que dans mon tutoriel. A mon avis, cela doit être placé dans un autre fichier dans votre thème
Bonjour, comment ajouter une liste de produit dans ces sous categorie ? 4 produit par categorie par exemple. Je ne trouve e pas de solution. Merci pour votre aide
Bonjour Mathieu, je parle en FO, dans les catégories principales, il y a des sous-catégories. Je voudrais ajouter, sous l’affichage des sous-catégories, quelques produits (une petite liste des produits que l’on va trouver dans ces sous-catégories). Mais je ne trouve pas comment faire. Comme ici par exemple:
En natif, il y a toujours des produits sous les sous-catégories, comme j’ai dit c’est le système natif. Vous avez une variable et conditions qui génèrent automatiquement les produits dans les catégories Donc si cela ne fonctionne pas, c’est un soucis dans votre thème / code et le votre à l’air particulier.
Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site web. Si vous continuez à utiliser ce site, nous supposerons que vous en êtes satisfait.OK
bonjour,
petit soucis sur la version 1.7.6.5 de prestashop
j’ai toujours le cadre avec le message veuillez nous excuser pour la gène occasionner
Bonjour,
Je vous confirme après test que cela fonctionne très bien sous 1.7.6.5.
Attention à bien fermer les balises et de bien vider le cache après modification.
Bonjour,
Merci pour ce astuce qui fonctionne très bien sur 1.7.7.5
cordialement
Bonjour,
Du coup la modification est valable que sur ordinateur ou effective également sur mobile ?
Merci 🙂
Cela est bien responsive, normalement cela doit être compatible avec presque tous les thèmes
Bonjour,
J’ai bien la catégorie catégory-header tpl mais je n’ai pas la balise block. Dois-je mettre le code à la fin du coup ?
Voici ce que j’ai :
{if $listing.pagination.items_shown_from == 1}
{$category.name}
{if $category.description}
{$category.description nofilter}
{/if}
{if $category.image.large.url}
{/if}
{/if}
Vous n’avez pas forcément besoin de la balise.
Placez le après {if $category.image.large.url}{/if}.
Mais au vu de ce fichier de thème, je pense que ça devrait être dans un autre fichier pour un rendu esthétique.
Là par contre c’est du cas par cas par rapport au thème
bonjour, j’ai la version 1.7.8.6, le thème SpicyPepper et je n’y parviens pas avec votre tuto, même ne vidant le cache etc. avez-vous une idée ? merci d’avance
Peut-être que la structure du thème n’est pas adaptée pour ce tutoriel.
Depuis, Prestashop intègre cette fonction dans son thème et c’est les mêmes variables que dans mon tutoriel.
A mon avis, cela doit être placé dans un autre fichier dans votre thème
Bonjour, comment ajouter une liste de produit dans ces sous categorie ? 4 produit par categorie par exemple.
Je ne trouve e pas de solution.
Merci pour votre aide
Fonctionnement de base de PrestaShop, vous ajoutez vos produits à des catégories, il faut aller dans chaque fiche produit en back
Bonjour Mathieu,
je parle en FO, dans les catégories principales, il y a des sous-catégories. Je voudrais ajouter, sous l’affichage des sous-catégories, quelques produits (une petite liste des produits que l’on va trouver dans ces sous-catégories). Mais je ne trouve pas comment faire. Comme ici par exemple:
En natif, il y a toujours des produits sous les sous-catégories, comme j’ai dit c’est le système natif.
Vous avez une variable et conditions qui génèrent automatiquement les produits dans les catégories
Donc si cela ne fonctionne pas, c’est un soucis dans votre thème / code et le votre à l’air particulier.
Merci pour ton tutoriel, cela marche impeccablement !
Testé sur PrestaShop 1.7.8.6 avec le thème Artistic.