THELIA Forum

Welcome to the THELIA support and discusssion forum

Offline


Bonjour,

la boucle de déclinaison ne s'affiche pas en respectant l'ordre manuel, BUG sur la version Thelia 2.3.3 ??

{loop name="attributes" type="attribute" product="$product_id" order="manual"}

Offline


Il n'y a pas de bug: order="manual" ne peut fonctionner correctement que si tu donnes une catégorie, car les produits sont ordonnés relativement à leur catégorie par défaut.


OpenStudio Toulouse

Offline


Désolé mais je comprends pas...

j'aimerais que s'affiche la liste des déclinaisons (exemple. s - m - xl etc) dans le même ordre que définit dans la  admin/configuration/attributes

j'ai beau ajouter un id="une valeur" rien ne change

Last edited by mediaboost (21-03-2017 16:26:31)

Offline


Bonjour UP

please smile

Offline


Bonjour,

J'ai la même question et je ne pense pas que la réponse de Roadster corresponde à la demande originale. Mediaboost demande je pense à ordonner les valeurs d'une déclinaisons (appartenant probablement à un gabarit), en l’occurrence dans son cas (et dans le mien) des tailles de vêtements, pas les produits eux-mêmes.

Dans le back-office j'ai ordonné de façon manuelle genre XS / S / M / L / XL . Ça apparait correctement quand on crée une combinaison dans le back-office mais sur le front-office dans le select des tailles on a un classement bizarre qui n'est même pas dépendant de l'ordre des id ou l'ordre alpha:   S / M / L / XS / XL (en alpha le XS devrait être après le XL !)

Dans la boucle de type "attribute_combination" de product.html (distri) j'ai un order="manual" mais rien ne semble marcher si je change ça en alpha ou si j’ajoute un reverse, j'ai toujours cet ordre bizarre ...

Thelia 2.3.3 tout à jour.

Pierre

Offline


Je relance sur ce sujet car en effet, je n'ai pas trouvé de solution à ce problème.
Par défaut, il me semble que l'ordre devrait être "manual" et non alpha. En effet, on peut avoir besoin de classer comme on veut (pour les tailles par exemple, le XS étant avant le S et non après le XL... Mais aussi 1litre / 5litres / 10litres... 10 litres va se retrouver avant 5 litres - pareil pour les mètres...)
Bref, il me semble qu'un classement manuel est parfois plus judicieux.
Est-ce que quelqu'un a trouvé la solution à ce problème ?
Al.


v. 1.5.4 - v 2.3.4 - v 2.4.3

Offline


Hello!

Par défaut dans le template "product" on a :

{loop name="combi" type="attribute_combination" product_sale_elements="$ID" order="manual"}

donc logiquement c'est trié en "manuel" ...?


Aide les autres, ils t'aideront en retour.

Offline


Oui, logiquement, c'est ce que j'aurai cru...
Mais non. C'est trier en "alpha" par défaut. Et dans la doc, il est bien précisé qu'il n'y a qu'alpha ou alpha_reverse (http://doc.thelia.net/en/documentation/ … ation.html)


v. 1.5.4 - v 2.3.4 - v 2.4.3

Offline


La doc n'est pas en phase avec le code wink

            new Argument(
                'order',
                new TypeCollection(
                    new Type\EnumListType(array('id', 'id_reverse', 'alpha', 'alpha_reverse', 'manual', 'manual_reverse'))
                ),
                'manual'
            )

OpenStudio Toulouse

Offline


Il y a donc bien "manual" en effet. Mais alors, je ne m'explique pas que ce ne soit pas pris en compte...
Y a-t-il une quelconque interaction avec Thelia.min.js que nous avons modifié avec Elyos (et qui est efficace !) ?
Pour voir notre nouveau thelia.min.js : http://forum.thelia.net/viewtopic.php?pid=78618#p78618


v. 1.5.4 - v 2.3.4 - v 2.4.3

Offline


Non mon js ne modifie pas l'ordre des listes.

Après on ne parle peut être pas de la même boucle...

La boucle que tu mets en lien est "order_product_attribute_combination"

Celle qui est dans la page product est attribute_combination.

De mon côté c'est bien trié selon l'ordre établi dans l'admin : Accueil / Configuration / Attributs  => MODIFIER LA DÉCLINAISON "COULEUR" => "VALEURS DE LA DÉCLINAISON"

Tu ne confonds pas avec l'ordre des PSE dans l'admin ? (qui ne peuvent être ordonné d'ailleurs)


Aide les autres, ils t'aideront en retour.

Offline


Tu as raison, c'est bien type="attribute_combination" et j'ai bien l'ordre "manual" (je n'ai rien changé à la boucle par défaut).
Mais j'ai fini par trouver ! J'utilise le module AttributeType-1.3.2 et c'est lui qui ne reclasse pas les déclinaisons !
Je vais aller fouiller dans le code de ce dernier pour corriger ça ! Ou voir s'il y a une nouvelle version...


v. 1.5.4 - v 2.3.4 - v 2.4.3

Offline


T'as réussi Alazais ?

Parce que moi je viens de rencontrer le souci...

Dans le BO, sur les prix produits c'est dans l'ordre des ID (pse) donc 6,9,8,10 dans les valeurs de déclinaison c'est bien dans l'ordre aussi, mais sur le front ça s'affiche dans le désordre : 6cm, 9cm, 10cm, 8cm ... (ID : 540, 542, 543, 1257) vu qu'on a ajouté le 8cm après...

En fouinant dans le code de la loop ça trie selon la champ "position" de la table si on met order="manual" sauf que mes champs position sont tous à null ... et qu'à priori rien ne permet de changer cette valeur dans le BO... où j'ai mal cherché...?


Aide les autres, ils t'aideront en retour.

Offline


Salut Elyos,
Non, je n'ai pas trouvé la solution à ce problème. En effet, il y a un champ position dans le module AttributeType-1.3.2  mais qui n'est pas remis à jour quand on modifie l'ordre des déclinaisons. Il garde la position initiale quoiqu'il en soit (voir la table attribute_av dans la bdd).
A mon avis, il faudrait au moins pouvoir rajouter une possibilité de trier les déclinaisons associées comme on le fait pour les déclinaisons tout court. Pour l'instant, je n'ai pas avancé davantage hélas... Mais ça reste à l'ordre du jour !
Je vais mettre en place un nouveau site de tests pour être sûre de ne pas mettre le bazar sur le site de prod.
On se tient au courant...


v. 1.5.4 - v 2.3.4 - v 2.4.3

Offline


Salut Alazais,

Je pense qu'il manque un système de tri dans l'onglet "prix" qui affecterait la valeur du champ "position" ?


Aide les autres, ils t'aideront en retour.

Offline


Une piste...?
Dans le code qui créé les listes déroulantes donne ça :

// build select
for (combinationValueId in PSE_COMBINATIONS_VALUE) {
	combinationValue = PSE_COMBINATIONS_VALUE[combinationValueId];
	$pse.options[combinationValue[1]]
		.append("<option value='" + combinationValueId + "'>" + combinationValue[0] + "</option>");
}

Donc inévitablement ça sera toujours affiché par ordre croissant de l'ID (dans l'ordre d'insertion dans la bdd/création de la déclinaison)

Il faut donc code quelque chose qui permet de trier les PSE pour ensuite affecter la valeur "position" de la table "attribute_combination" puis la récupérer dans la boucle

{loop name="combi" type="attribute_combination" product_sale_elements="$ID" order="manual"}

et dans le code du dessus (build select) faire une boucle selon la valeur "position" récupérée.

Si Roadster peut confirmer ^^'


Aide les autres, ils t'aideront en retour.

Offline


La boucle attribute_combination trie les résultats en fonction de l'ordre de la déclinaison dans le gabarit utilisé par le produit. Du coup, ça ne vous aide pas


OpenStudio Toulouse