Jump to content

Modifier l'image de couverture en fonction du filtre choisi


Recommended Posts

Bonjour !

Je viens chercher de l'aide car je ne trouve pas de solution concrète que ce soit de part mes connaissances ou sur le net.

Mon problème est que dans la vente de prêt a porter beaucoup de personnes filtres par couleur et non par prix ou autre.
Je cherche donc a, lorsque le client filtre par couleur, changer l'image de couverture du produit.

Voici comment j'ai essayé de faire ça "home made" :

J'ai un groupe d'attribut "Couleur Principale" :

Il contient Rouge, bleu etc ..

Ensuite j'ai le groupe "Couleur" :

Celui ci contient les couleurs dites "romantic" (par exemple : Horizon Blue, Red Fire, etc..)

Maintenant si je filtre par Couleur Principale sur "Violet"
image.png.f62798b4f20f7bad4be5e4c0f909d4de.png
Le résultat fonctionne, il me sort tous les produits qui présentent une déclinaison qui a comme couleur principale "Violet" mais le soucis c'est que l'image ne correspond pas..
Exemple : image.thumb.png.db6c8c953ac8f80c96186d313c0f470f.png

Ici on voit bien que la couleur sélectionnée dans le filtre est violet mais est noir (sur la prévisu produit) et que l'image montre la veste rouge (Image de couverture du produit)

Maintenant ma question est (comme dans le titre) : Y-a-t'il un module qui permet de changer l'image affichée en fonction de ce qu'on a coché dans le filtre a facette et en option est-il possible de sélectionné en avance la déclinaison violette dans la prévisu produit ?

C'est peut-être faisable en natif mais je ne trouve pas comment faire.

PS : Les images sont bien configurées sur les déclinaisons (image par défaut Rouge pour la déclinaison rouge).

Merci d'avance pour votre aide !
Cordialement,

Tim.

Link to comment
Share on other sites

Bug du module 1.7 (ou du tpl qui affiche la liste des produits sans tenir compte de l'attribut), en 1.6 ça fonctionne très bien.

Normalement c'est quelque chose comme ça dans le tpl

$link->getImageLink($product.link_rewrite, $product.id_image, 'home_default')

Link to comment
Share on other sites

1 hour ago, Eolia said:

Bug du module 1.7 (ou du tpl qui affiche la liste des produits sans tenir compte de l'attribut), en 1.6 ça fonctionne très bien.

Normalement c'est quelque chose comme ça dans le tpl

$link->getImageLink($product.link_rewrite, $product.id_image, 'home_default')

D'accord dans le fichier productlist.tpl ?

Merci encore de votre aide

Link to comment
Share on other sites

ce fichier n'existe pas en 1.7

c'est plutôt dans /templates/catalog/_partials/miniatures/product.tpl mais à priori ils ramènent toujours la couverture... (cover)

        {if $product.cover}
            <img data-src="{$product.cover.bySize.medium_default.url}"
                 alt="{if !empty($product.cover.legend)}{$product.cover.legend}{else}{$product.name|truncate:30:'...'}{/if}"
                 class="c-pdt-mini__img u-img-fluid u-lazy-scale /js lazyload"
                 width="{$product.cover.bySize.medium_default.width}"
                 height="{$product.cover.bySize.medium_default.height}" data-expand="-10">
        {else}
            <img data-src="{$urls.no_picture_image.bySize.medium_default.url}"
                 alt="{$product.name|truncate:30:'...'}"
                 class="c-pdt-mini__img u-img-fluid /js lazyload">
        {/if}

 

  • Like 1
Link to comment
Share on other sites

2 hours ago, Eolia said:

ce fichier n'existe pas en 1.7

c'est plutôt dans /templates/catalog/_partials/miniatures/product.tpl mais à priori ils ramènent toujours la couverture... (cover)

        {if $product.cover}
            <img data-src="{$product.cover.bySize.medium_default.url}"
                 alt="{if !empty($product.cover.legend)}{$product.cover.legend}{else}{$product.name|truncate:30:'...'}{/if}"
                 class="c-pdt-mini__img u-img-fluid u-lazy-scale /js lazyload"
                 width="{$product.cover.bySize.medium_default.width}"
                 height="{$product.cover.bySize.medium_default.height}" data-expand="-10">
        {else}
            <img data-src="{$urls.no_picture_image.bySize.medium_default.url}"
                 alt="{$product.name|truncate:30:'...'}"
                 class="c-pdt-mini__img u-img-fluid /js lazyload">
        {/if}

 

Oula.. oui je vois, je vais voir si j'arrive a retoucher le code mais je ne suis pas sur d'y arriver ! Si jamais tu as une idée je suis preneur mais dans tout les cas merci pour ton aide précieuse !

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...