doud62 Posted August 14, 2015 Share Posted August 14, 2015 (edited) Bonjour, Sur la page d'un produit j'aimerais que l'on puisse choisir la couleur grâce à une liste déroulante et non des carrés de couleur, comme on le fait pour une taille par exemple. Je sais qu'on peut le faire directement dans le BO de Prestashop mais le problème est que j'ai plus de 300 attributs et qu'en plus mon catalogue se synchronise avec la caisse d'une boutique physique donc le nombre de déclinaisons peut augmenter à tout moment. Il me faut donc pouvoir mettre ce type de sélection en liste déroulante par défaut. Je suppose qu'il faut toucher au code, savez-vous comment faire ? Merci d'avance, doud62. Edited August 15, 2015 by doud62 (see edit history) Link to comment Share on other sites More sharing options...
erouvier29 Posted August 15, 2015 Share Posted August 15, 2015 Bonjour A priori pas besoin de toucher au code à moins que votre thème ne tienne pas compte de cela: BO > CATALOGUE > Attributs de Produits > "Couleur" (ou autre) > Modifier > Type d'attribut > Liste déroulante Cordialement 1 Link to comment Share on other sites More sharing options...
doud62 Posted August 15, 2015 Author Share Posted August 15, 2015 Merci pour votre réponse. Néanmoins, comme je l'ai précisé, faire cette modification me prendrait un temps fou car j'ai plus de 300 attributs ! Il me faudrait le faire via le code pour que cela soit par défaut. Link to comment Share on other sites More sharing options...
erouvier29 Posted August 15, 2015 Share Posted August 15, 2015 Désolé, j'avais lu "déclinaisons"... Je suppose que c'est la synchro avec le logiciel de caisse qui génère autant d'attributs couleur. Pour faire en sorte qu'ils ne soient pas présentés comme "carrés de couleur", mais comme liste déroulante, il faudrait savoir comment cette synchro est implémentée: insertion directe en base de données: cherchez où est renseignée la colonne group_type de la table ps_attribute_group ("color" => carrés de couleur, "select" => liste déroulante) module utilisant les classes "coeur" de PrestaShop: cherchez où est renseigné le champ $group_type des instances de AttributeGroup (valeurs idem ci-dessus) Ceci suppose bien sûr que le code vous soit accessible. Sinon, vous pouvez à tout moment, et en particulier suite à une mise à jour, exécuter la requête suivante via phpMyAdmin: UPDATE ps_attribute_group SET group_type = "select" WHERE group_type = "color" L'effet est de transformer tout attribut présenté comme carrés de couleur en liste déroulante. Cordialement Link to comment Share on other sites More sharing options...
doud62 Posted August 15, 2015 Author Share Posted August 15, 2015 Merci beaucoup ! Super la requête SQL ! ==> NB : Attention cependant à remplacer le préfixe par celui utilisé dans par Prestashop car il doit être différent selon les installations Je vais contacter l'entreprise qui gère ce module voir s'il y a possibilité de faire cette action par défaut car sinon je devrai faire cette requête SQL régulièrement. Link to comment Share on other sites More sharing options...
erouvier29 Posted August 16, 2015 Share Posted August 16, 2015 Bonjour Petits compléments à la discussion d'hier, pour vous éviter d'avoir à mettre à jour manuellement les caractéristiques de vos attributs: 1. Au niveau de votre logiciel de caisse, ne pouvez-vous pas éviter de déclarer les attributs en question de type "couleur", mais utiliser des attributs "standards"? 2. Vous pouvez vous remplacer les sélecteurs de couleur par des listes déroulantes au niveau de votre thème, et ainsi laisser la synchro avec le logiciel de caisse telle qu'elle est: Dans le fichier /themes/xxx/product.tpl, remplacez {if ($group.group_type == 'select')} par {if ($group.group_type == 'select' || $group.group_type == 'color')} (ligne 341 si thème par défaut PS 1.6.0.14) Pour être complètemet propre, vous pouvez aussi remplacer la ligne <label class="attribute_label" {if $group.group_type != 'color' && $group.group_type != 'radio'}for="group_{$id_attribute_group|intval}"{/if}>{$group.name|escape:'html':'UTF-8'} </label> par <label class="attribute_label" {if $group.group_type != 'radio'}for="group_{$id_attribute_group|intval}"{/if}>{$group.name|escape:'html':'UTF-8'} </label> (ligne 338) Et enfin, si vous ne voulez pas non plus les carrés de couleur (non sélectionnables) dans les cases produit de vos pages catégories, dans le fichier /themes/xxx/product-list.tpl, supprimez ou commentez les lignes {if isset($product.color_list)} <div class="color-list-container">{$product.color_list}</div> {/if} par {* if isset($product.color_list)} <div class="color-list-container">{$product.color_list}</div> {/if *} (lignes 160 à 162) Link to comment Share on other sites More sharing options...
doud62 Posted August 16, 2015 Author Share Posted August 16, 2015 Merci ! J'essaye cela et je vous tiens au courant Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now