Jump to content

Liste produits par catégorie


Recommended Posts

Bonsoir à tous, 

Je développe actuellement commerce et travaille sur Prestashop 1.7.6.7.

Pour effectuer une recherche de pièces détachées, je me suis basé sur le module LeoPartsFilter (excellent module de filtration au passage)

Tout fonctionne à merveille, mais j'ai besoin de modifier le script initial pour y ajouter des informations.

Essai du site ici : https://www.conceptauto83.fr

Lors d'une recherche selon la marque, modèle, motorisation et version, le script renvoie vers une page vierge et liste les produits (je dois travailler le CSS pour les problèmes d'affichage)

Je souhaiterais lister les produits par catégories, par exemple, si le produit 1 se trouve dans la catégorie "Ampoules", je veux ajouter une section avec un titre "Ampoules" puis lister les produits de cette catégorie. Si le produit 2 se trouve dans la catégorie "Essuies-glace", je veux générer un autre block similaire au premier, qui viendrait se placer juste en dessous, en ajoutant le titre "Essuie-glace" et listes les produits de cette catégorie.

Le filtre affiche automatiquement les produits pour lesquels j'ai défini le filtre, donc pas de soucis d'affichage des produits. Je souhaite juste les lister par section.

Pour récupérer le nom de la catégorie, j'utilise le code

{if isset($product.id_category_default)}
{assign var='catname' value=Category::getCategoryInformations(array($product.id_category_default))}
{$catname[$product.id_category_default].name}
{/if}

Le code me renvoie exactement la catégorie adéquat et me l'affiche.

Pour avoir une idée du résultat, le lien vers une page après filtre : https://conceptauto83.fr/recherche-pieces?action=&make=3&model=20&year=81&device=193

Le morceau de template qui liste les produits

 <section id="products">
      {if isset($listing.products) && $listing.products|count}
        <div>
          {block name='product_list'}
          {* catalog/listing/product-list.tpl *}
            {* include file='catalog/_partials/products.tpl' listing=$listing *}
            <div id="js-product-list">
              <div class="products">  
                {assign var="products" value=$listing.products}
                {if isset($productProfileDefault) && $productProfileDefault}
                  {include file='catalog/_partials/miniatures/leo_col_products.tpl' products=$products} 
                {else}
                  <div class="row">
                    {foreach from=$products item="product"}
                      <div class="ajax_block_product product_block col-sp-12 col-xs-6 col-sm-6 col-md-6 col-lg-3 col-xl-3">
                        {block name='product_miniature'}
                          {include file='catalog/_partials/miniatures/product.tpl' product=$product}
                        {/block}
                      </div>
                      {/foreach}
                  </div>
                {/if}  
              </div>

 

Comment modifier le template pour que pour chaque produit assigné donc à une catégorie, le résultat soit

Catégorie 1 (si un ou plusieurs produits de la catégorie 1 existent)

-------------------------> Produit de catégoie 1 / Produit de catégoie 1 / Produit de catégoie 1  .....

Catégorie 2 (si un ou plusieurs produits de la catégorie 2 existent)

-------------------------> Produit de catégoie 2 / Produit de catégoie 2 / Produit de catégoie 2  .....

 

Je précise, je ne suis pas développeur, je fais ça moi même avec les quelques notions que j'ai .

Merci pour votre aide !

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...