Jump to content

Modifier l'affichage des attributs sur la fiche produit (menu déroulant => liste)


Recommended Posts

Bonjour à tous,

Je cherche à modifier l'affichage des attributs sur la fiche produit : au lieu d'un menu déroulant, j'aimerais qu'ils s'affichent en liste (voir image jointe qui offre un résultat "idéal").

J'ai déjà testé plusieurs morceaux de solutions piochées ici et là dans le forum, mais sans succès, j'obtiens des bugs entre les attributs ajoutés au panier.

Avez-vous des pistes de recherche ?
Par avance, merci ;-)

28038_bppUSxnDOkiXKkt3G8ec_t

Link to comment
Share on other sites

Bonjour et merci Marider !

Ce module se concentre sur l'ordre des attributs, ce qui est très pratique (je l'ai d'ailleurs installé, ça peut servir ;-) ), mais ce n'est pas ce que je cherche.
J'aimerais que les attributs soient affichés côté client en liste ou en tableau, avec la possibilité d'ajouter au panier chaque attribut de façon distincte (comme sur l'image jointe).

Sur mon ancienne boutique (osc), en affichant les attributs en liste, j'obtiens des taux de conversion plus satisfaisants qu'en menu déroulant, ainsi qu'un panier moyen lui aussi plus important.

Link to comment
Share on other sites

J'ai aussi planché sur la question il y'a quelque temps.

J'ai réussi à obtenir cet affichage (voir en pièce jointe)

Suffit juste de toucher au product.tpl pour obtenir un tel résultat


C'est pas mal du tout ça !

Je suis dessus depuis plusieurs jours et je n'ai même pas réussi à obtenir cela, est-il possible de te demander quelle modif tu as réalisée ?

Par avance, un grand merci...
Link to comment
Share on other sites

Alors, tout d'abord je tourne sous Prestashop 1.3.1, je ne peux pas garantir que ça fonctionne sous d'autres versions.

Dans le fichier product.tpl, Remplacez le code de l'affichage des groupes par :

{if isset($groups)}
<!-- attributes -->

 {foreach from=$groups key=id_attribute_group item=group}



{$group.name|escape:'htmlall':'UTF-8'} :
       {assign var='groupName' value='group_'|cat:$id_attribute_group}

       {foreach from=$group.attributes key=id_attribute item=group_attribute}


             <input type="radio" name="{$groupName}" value="{$id_attribute|intval}" id="group_{$id_attribute_group|intval}" {if (isset($smarty.get.$groupName) && $smarty.get.$groupName|intval == $id_attribute) || $group.default == $id_attribute} checked="checked"{/if} onClick="[removed]findCombnation();{if $colors|@count > 0}$('#resetImages').show('slow');{/if}" />
Choisir ce produit
Choisir ce produit
{$group_attribute|escape:'htmlall':'UTF-8'}
              -         

              [removed]testou({$id_attribute|intval});[removed]



       {/foreach}


{/foreach}


{/if}



PS (le forum a remplacé les balises [removed][removed] par des [removed], n'oubliez pas de changer ça

Avec ce code, vous aurez un affichage comme je l'ai montré.

Par contre, afin que le prix du produit soit correctement pris en compte pour l'ajout dans le panier, il faut modier aussi le fichier product.js pour y ajouter la fonction (que j'ai appellée testou) (mais je n'ai pas mon code sous les yeux là, je posterais plus tard)



EDIT : le plus simple est que j'envoie mes fichiers, si vous les voulez, faites moi signe par MP

Link to comment
Share on other sites

  • 8 months later...

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