Subsilio Posted July 9, 2010 Share Posted July 9, 2010 Bonjour à tous, j'ai cherché sur le forum mais je n'ai pas encore trouvé la solution à mon problème alors je me permets de poster!Tout d'abord je tiens à féliciter les programmeurs, c'est un très bon outil ce Prestashop !! Bravo !Je rencontre néanmoins une difficulté: Lorsque je crée les déclinaisons pas de problème.Je rencontre le problème lorsque je me mets dans la peau d'un client, je veux acheter un produit, j'ouvre le menu déroulant pour sélectionner la taille et la, j'ai devant moi L M S XL XS XLL XLLL.... l'ordre alphabétique quoi J'aimerais pouvoir classer tout cela par taille (commencer du XS et finir par le XXXL).Comment faire ? Merci d'avance ! Link to comment Share on other sites More sharing options...
jeckyl Posted July 9, 2010 Share Posted July 9, 2010 Bonjour,Il existe un petit module bien pratique pour gérer cela :http://www.henribaeyens.com/10ver/filez/prestashop_module_attributeposition Link to comment Share on other sites More sharing options...
Subsilio Posted July 9, 2010 Author Share Posted July 9, 2010 Merci beaucoup, je vais essayer d'installer ça, je vous tiens au courant. Link to comment Share on other sites More sharing options...
Subsilio Posted July 9, 2010 Author Share Posted July 9, 2010 Je vais avoir besoin d'aide si possible =)J'ai édité ORDER BY de la requête dans getAttributesGroups dans Product.php (qui se trouve dans classes).J'ai également dézippé l'archive, mais après je fais quoi ? Je les mets où les "AdminAttributePosition.php", "attribute_repositon.php", "group_repositon.php" et "fr.php" ?Merci d'avance pour vos réponses ! Link to comment Share on other sites More sharing options...
jeckyl Posted July 9, 2010 Share Posted July 9, 2010 Bonjour,pour installer le module il faut mettre le répertoire du module dans le répertoire modules de ton installation prestashop comme pour tous les modules et aussi comme expliqué sur le WIKI http://www.prestashop.com/wiki/Installer_un_module/ Link to comment Share on other sites More sharing options...
Subsilio Posted July 9, 2010 Author Share Posted July 9, 2010 C'est installé, et opérationnel ! Un grand merci à toi Jeckyl pour la rapidité de tes réponses Link to comment Share on other sites More sharing options...
Bliss Posted July 21, 2010 Share Posted July 21, 2010 Tout marche nickel du côté du backoffice, les déclinaisons sont ordonnées parfaitement mais ce n'est pas le cas sur le front office ? Avez vous une idée ? Link to comment Share on other sites More sharing options...
Bliss Posted July 21, 2010 Share Posted July 21, 2010 Voici le code tel que je l'ai édité, je ne pense pas avoir fait d'erreur puisque tout fonctionne parfaitement du côté du backofficeIl n'y a que sur le front office que mes déclinaisons ne veulent pas s'organiser dans l'ordre: public function getAttributesGroups($id_lang) { return Db::getInstance()->ExecuteS(' SELECT ag.`id_attribute_group`, ag.`is_color_group`, agl.`name` AS group_name, agl.`public_name` AS public_group_name, a.`id_attribute`, al.`name` AS attribute_name, a.`color` AS attribute_color, pa.`id_product_attribute`, pa.`quantity`, pa.`price`, pa.`ecotax`, pa.`weight`, pa.`default_on`, pa.`reference` FROM `'._DB_PREFIX_.'product_attribute` pa LEFT JOIN `'._DB_PREFIX_.'product_attribute_combination` pac ON pac.`id_product_attribute` = pa.`id_product_attribute` LEFT JOIN `'._DB_PREFIX_.'attribute` a ON a.`id_attribute` = pac.`id_attribute` LEFT JOIN `'._DB_PREFIX_.'attribute_group` ag ON ag.`id_attribute_group` = a.`id_attribute_group` LEFT JOIN `'._DB_PREFIX_.'attribute_lang` al ON a.`id_attribute` = al.`id_attribute` LEFT JOIN `'._DB_PREFIX_.'attribute_group_lang` agl ON ag.`id_attribute_group` = agl.`id_attribute_group` WHERE pa.`id_product` = '.intval($this->id).' AND al.`id_lang` = '.intval($id_lang).' AND agl.`id_lang` = '.intval($id_lang).' ORDER BY ag.`position`, a.`position`'); } Link to comment Share on other sites More sharing options...
Subsilio Posted July 22, 2010 Author Share Posted July 22, 2010 Bonjour Bliss,Depuis que j'ai mis à jour Prestashop (1.3), les déclinaisons ne sont plus dans l'ordre que je souhaite malheureusement.. J'ai cherché, je ne sais pas d'où ça peut venir.Pourtant comme tu l'as dit, dans le BO tout est bien rangé ! Mais sur le site.. c'est une autre histoire Link to comment Share on other sites More sharing options...
SamXIV Posted July 29, 2010 Share Posted July 29, 2010 Je viens de prendre connaissance de ce plugin et j'ai rencontré le même problème. Une petite heure de passé sur le code m'a permi de résoudre le problème (peut être en en créant un autre ?)Dans le fichier /product.php (pas /classes/Product.php), aux alentours de la ligne 300 vous trouvez ceci : foreach($groups AS &$group) natcasesort($group['attributes']); natcasesort trie les résultats de la requête sql après coup, donc j'ai commenté ces deux lignes et mtn ca marche Merci de signaler si qqn se rend compte que cette modification reporte d'autres problèmes Link to comment Share on other sites More sharing options...
Dominique Fleury Posted August 2, 2010 Share Posted August 2, 2010 Bonjour,De mon coté le classement ne marche pas: malgré la modification apportée dans le /classes/Product.php ET dans le /product.php...Quelqu'un a-t-il le même problème que moi ? J'aimerais ne pas avoir à feinter sur les nom de déclinaisons pour qu'elles s'affichent dans un ordre correcte.Merci ! Link to comment Share on other sites More sharing options...
SamXIV Posted August 2, 2010 Share Posted August 2, 2010 Ma réponse concerne la version 1.3.1 (j'en ai pas testé d'autres)Quelle modif as-tu fait dans product.php (celui de la racine donc) ? J'ai trouvé aucune indication concernant ce fichier.. il me semble en tout cas.. Link to comment Share on other sites More sharing options...
Dominique Fleury Posted August 2, 2010 Share Posted August 2, 2010 J'ai la version 1.3.1 de Prestashop, comme toi.J'ai commenté les lignes 285 et 286 du fichier /product.php: //foreach($groups AS &$group) //natcasesort($group['attributes']); J'ai modifié la ligne 1045 du fichier /classes/Product.php de la manière suivante: ORDER BY ag.`position`, a.`position` je suis étonné que ça marche chez toi et pas chez moi, j'ai du rater quelque chose de majeur ...Merci de ton aidePS: j'ai bien pensé à modifier l'ordre dans l'onglet 'Attribute Ordering' du panneau de config. Link to comment Share on other sites More sharing options...
SamXIV Posted August 2, 2010 Share Posted August 2, 2010 oups la bourde, effectivement jme suis mélangé les pinceaux là ... de tête j'ai confondu les 2.Je regarde demain si une illumination pourrait m'aider à règler le problème (a distance c'est dur) Link to comment Share on other sites More sharing options...
Fabrice Posted August 9, 2010 Share Posted August 9, 2010 sinon, si vous ne voulez pas vous casser le tête, et avoir un outil qui fonctionne, jetez un oeil du côté des outils que propose Tomer (c'est payant certes, mais si pratique - voir attributeorder) je m'en sers tous les jours. (bon je vais me faire taper sur les doigts, bicose je fais la promo d'un module payant...) désolé. je le ferais plus. ;-) Link to comment Share on other sites More sharing options...
antonin23 Posted August 21, 2010 Share Posted August 21, 2010 J'ai trouvé une solution mais c'est assez moche :001. S002. M003. L004. XLDu coup ca classe dans l'ordre mais c'est moche....J'espère que ca va vous aider Link to comment Share on other sites More sharing options...
rom Posted September 7, 2010 Share Posted September 7, 2010 Sinon :Dans la base tu utilises le champ color pour les tailles (enfin comme je synchronise via des fichiers csv par tache cron et fichier batch d'un soft de gestion de stock).Genre le nom : xs et dans color :001, s 002, m 003 etc..Dans la classe Product.php tu ordonne par colorEt dans le "controlleur" product.php tu conditionnes par un if is_color == 1 (donc une couleur) alors tu ordonnes par la fonction php sinon (une taille dans mon cas) tu laisses l'ordre de la requete sqlVoili, voila Link to comment Share on other sites More sharing options...
Raph59 Posted September 16, 2010 Share Posted September 16, 2010 Bonjour, j'ai trouvé la solution et vais donc la partager, testé seulement avec la version 1.3.1.1Attention le premier fichier product.php est celui qui se trouve à la racine de la boutique, et le second Product.php est celui qui se trouve dans le fichier /classes/Dans /product.php à la ligne 286Remplacer natcasesort($group['attributes']); par $group['attributes']; (Je préfère faire cela plutôt que le supprimer)Dans /classes/Product.php à la ligne 1735Remplacer ORDER BY al.`name`'); par (si vous souhaitez que vos déclinaison soit classé par ordre de création des déclinaisons dans Attributs et groupes) ORDER BY a.`id_attribute`'); ou par (si vous souhaitez que vos déclinaisons soit classé dans le même ordre que vous les avez créé dans votre fiche produit) ORDER BY pa.`id_product_attribute`'); Edité pour proposer les deux solutions de classement Link to comment Share on other sites More sharing options...
Raph59 Posted September 16, 2010 Share Posted September 16, 2010 Attention j'ai modifié mon post ci-dessus pour proposer les deux classement possible... la première solution de classement ne plaisant pas à ma femme qui gère les sites, moi pauvre programmeur que je suis bien obligé de me résigner!! Link to comment Share on other sites More sharing options...
vezy Posted March 19, 2011 Share Posted March 19, 2011 Merci bcp pour ces modifs de code - vous m'avez résolu un problème qui me cassait bien la tête!!!!Bonne continuation 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