Jump to content

Attribut couleur en liste déroulante par défaut


Recommended Posts

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 by doud62 (see edit history)
Link to comment
Share on other sites

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

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

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

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

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