webleads-tracker

[Recherche catalogue] Recherche avancée sur des propriétés additionnelles

Richard SELTRECHT

Bonjour,

je cherche à configurer les recherches avancées sur des propriétés additionneles de produits mais je ne trouve pas comment y arriver.

Je souhaite, par exemple, pouvoir trouver les plantes qui peuvent être plantées au soleil et en bord de mer (les produits ont des champs additionnels Exposition et Bord de mer).

J'ai regardé dans les templates (advance_seach.html et add_field_select.html) mais pas moyen de réussir la configuration.

Merci d'avance de votre aide.

Richard.
Société Selten, www.selten.fr

Thomas Hesse
Bonjour,

Pour mettre en place la recherche sur les propriétés additionnelles, il vous faut utiliser une boite de type "Recherche dans le catalogue étendue" à la place d'une boite de type "Recherche dans le catalogue".

Ce type de boite vous permet de configurer les champs supplémentaires que vous voulez voir proposés à vos visiteurs.

Attention, le type des champs dans la boite de recherche (ainsi que dans la recherche étendue correspondante) sera le même que celui que vous avez configuré dans la "Configuration des champs supplémentaires" (Manage > Catalogue > Configuration...).

Par exemple, si vous avez configuré le champ "Exposition" comme étant un champ texte, il sera proposé sous forme de INPUT TYPE="TEXT" dans la recherche, et constituera donc un champ de recherche en plein texte libre (or d'après ce que j'ai pu voir sur votre site, il semblerait que vous souhaitiez plutôt présenter ce champ sous forme de SELECT).

Autre précision d'importance : lors de la création d'une boite de recherche, il vous est demandé de lui donner un identifiant. Celui-ci ne doit pas contenir le caractère "moins" (-), sinon la recherche avancée ne fonctionne pas.

--
Pour en revenir à votre cas en particulier, je vous ai créé une boite du type adéquat et j'ai configuré quelques champs supplémentaires. Attention, vos CSS limitent les boites de recherche en hauteur et vous n'aurez donc pas un affichage complet du contenu de la boite en question (classe .box_catalog_search, ligne 76 du fichier boxes.css).
--
Thomas - Chargé de support et d'assistance

Richard SELTRECHT

Merci beaucoup pour ces précisions et les modifications apportées.

Mon but étant de faire apparaître ces critères dans le formulaire de recherche avancé.

Pour ce qui est des types de champs, je comprend le problème que vous me décrivez, je cais essayer de m'en sortir en utilisant des tooltips ou des aides à la saisie.

Il est fort probable que j'ai d'autres questions Lundi ...
Société Selten, www.selten.fr

Richard SELTRECHT

J'ai résolu le problème des types de champ en forçant l'utilisant des select à partir du code généré.

Cela a le désavantage de ne plus rendre le moteur de recherche administrable (et d'aller à l'encontre de la philosophie d'e-majine) mais il ne doit normalement plus évoluer et dans le cas contraire la modification du template est rapide (mais non réalisable par le client).

Société Selten, www.selten.fr

Guillaume
Je déterre ce post car je rencontre actuellement le même problème.

Je souhaite mettre en place une recherche avancée sur des propriétés additionnelles de produits. Ces propriétés additionnelles sont des champs texte que j'aimerais présenter en SELECT pour la recherche.

Comment forcer l'utilisation du SELECT depuis le template ?

Merci.

Vincent StartUp
Avatar
Dans un premier temps il faut coté public recopier le code html du formulaire obtenu, ainsi on aura les id et les name des différents champs.
Ensuite en éditant le template advanced_search.html, il faut en html supprimer la zone du
mx:bloc id="supplementary_fields">
et la remplacer par le contenu recopier précédemment. Suffit ensuite en html de transformer les input en select.

omme le disait Richard, cette solution rend statique la gestion de la recherche avancée.

Si jamais les select doivent être rempli via les valeurs de la base de données, il faut passer par un developpement specifique pour venir remplir les select avec une requete sql.
Vincent - StartUp Communication

Manuel [Medialibs]
Avatar
J'utilise sur mon site e-majine le widget de recherche avancée du catalogue. Plusieurs propriétés additionnelles étant disponibles, j'aimerais pouvoir faire une recherche multicritère sur une base de case à cocher. Comment faire ?

Voici le mode opératoire à mettre en place pour pouvoir effectuer une recherche sur plusieurs valeurs de propriétés additionnelles (checkbox). Prenons l'exemple d'un site e-commerce de lingerie, deux produits principaux sont en vente, des soutien-gorges et des collants.

Étape 1 : Création des propriétés additionnelles depuis le back-office d'e-majine


Étape 2 : Mise en place de deux widgets de recherche avancée dans le back-office.

- L'un pour les soutien-gorge, l'autre pour les collants. Dans notre exemple, nous configurons qu'un seul widget, celui pour les soutien-gorges, la procédure reste la même pour l'autre widget.
- L'identifiant de la recherche servira à la création d'un template html. Exemple : "searchsoutiengorges"
- Les propriétés additionnelles correspondants aux critères de recherche (couleur, taille, forme, etc.) seront à sélectionner pour qu'elles soient affichées dans le widget.

Étape 3 : Création d'un template html
- Copier-coller le template box_search.html disponible depuis l'espace FTP > html > modeles > fr > catalog > search puis renommer le en rajoutant "l'identifiant de votre widget". Dans notre cas d'exemple : "box_search_searchsoutiengorges.html"

Etape 4 : Modification du template "box_search_searchsoutiengorges.html"
- Supprimer les informations du template en collant puis ajustant le bloc html suivant.
- Chaque bloc de propriétés additionnelles est intégré dans une div
- Chaque valeur de propriétés additionnelles est intégrée dans un label
- Pour récupérer l'id de la propriété additionnelle, il faut passer en mode console via firebug depuis le manage en cliquant sur la propriété add. respective > modifier

 
<div class="widget widgetCatalogSearch" mXattribut="class:box_class">
	<mx:bloc id="widgetTitle"><h4><mx:text id="widgetTitle" /></h4></mx:bloc id="widgetTitle">
                        <div class="widgetContainer">
		<form class="catalog_search_form" method="post" mXattribut="action:action">
                                        <fieldset>
                                              <div class="row itemStyle">
                                                      <!-- Pour recuperer l'id de la propriete additionnelle, il faut passer en mode console via firebug depuis le manage
                                                      en cliquant sur la propriete respective > modifier
                                                      Exemple pour la propriete "style soutien gorges" :
                                                           GET http ://monprojet.fr/manage/catalogue/configuration/index.php?ch=manage&id=7&action=edit&_=1305665135738
                                                      L'id a retenir est le numero 7. Ce numero est a inserer au niveau des champs name & mXattribut
                                                      -->
                                                        <input type="hidden" name="add_fields[7][cond]" value="AND" />
                                                        <h5>Styles</h5>
                                                        <br/>
                                                        <label for="Brassiere">&nbsp;&nbsp;<input type="checkbox" name="add_fields[7][value][]" id="Brassiere" value="Brassiere" mXattribut="checked:field7checkedBrassiere" /> Brassiere</label>
                                                        <label for="Balconet">&nbsp;&nbsp;<input type="checkbox" name="add_fields[7][value][]" id="Balconet" value="Balconet" mXattribut="checked:field7checkedBalconet" /> Balconet</label>
                                                        <label for="Bandeau">&nbsp;&nbsp;<input type="checkbox" name="add_fields[7][value][]" id="Bandeau" value="Bandeau" mXattribut="checked:field7checkedBandeau" /> Bandeau</label>
                                                        <label for="Triangle">&nbsp;&nbsp;<input type="checkbox" name="add_fields[7][value][]" id="Triangle" value="Triangle" mXattribut="checked:field7checkedTriangle" /> Triangle</label>
                                                        <label for="PushUp">&nbsp;&nbsp;<input type="checkbox" name="add_fields[7][value][]" id="PushUp" value="PushUp" mXattribut="checked:field7checkedPushUp" /> Push UP</label>
                                                        <label for="Armature">&nbsp;&nbsp;<input type="checkbox" name="add_fields[7][value][]" id="Armature" value="Armature" mXattribut="checked:field7checkedArmature" /> Armature</label>
                                                        <label for="Rembourre">&nbsp;&nbsp;<input type="checkbox" name="add_fields[7][value][]" id="Rembourre" value="Rembourre" mXattribut="checked:field7checkedRembourre" /> Rembourré</label>
                                                </div>
                                                
                                                <div class="row itemCouleur">
                                                        <input type="hidden" name="add_fields[6][cond]" value="AND" />
                                                        <h5>Couleurs</h5>
                                                        <br/>
                                                        <label for="Noir">&nbsp;&nbsp;<input type="checkbox" name="add_fields[6][value][]" id="Noir" value="Noir" mXattribut="checked:field6checkedNoir" /> Noir</label>
                                                        <label for="Creme">&nbsp;&nbsp;<input type="checkbox" name="add_fields[6][value][]" id="Creme" value="Creme" mXattribut="checked:field6checkedCreme" /> Creme</label>
                                                        <label for="Ecru">&nbsp;&nbsp;<input type="checkbox" name="add_fields[6][value][]" id="Ecru" value="Ecru" mXattribut="checked:field6checkedEcru" /> Ecru</label>
                                                        <label for="Blanc">&nbsp;&nbsp;<input type="checkbox" name="add_fields[6][value][]" id="Blanc" value="Blanc" mXattribut="checked:field6checkedBlanc" /> Blanc</label>
                                                        <label for="NoirBrode">&nbsp;&nbsp;<input type="checkbox" name="add_fields[6][value][]" id="NoirBrode" value="NoirBrode" mXattribut="checked:field6checkedNoirBrode" /> Noir Brode</label>
                                                        <label for="Jaune">&nbsp;&nbsp;<input type="checkbox" name="add_fields[6][value][]" id="Jaune" value="Jaune" mXattribut="checked:field6checkedJaune" /> Jaune</label>
                                                        <label for="Amande">&nbsp;&nbsp;<input type="checkbox" name="add_fields[6][value][]" id="Amande" value="Amande" mXattribut="checked:field6checkedAmande" /> Amande</label>
                                                        <label for="Marine">&nbsp;&nbsp;<input type="checkbox" name="add_fields[6][value][]" id="Marine" value="Marine" mXattribut="checked:field6checkedMarine" /> Marine</label>
                                                        <label for="Chocolat">&nbsp;&nbsp;<input type="checkbox" name="add_fields[6][value][]" id="Chocolat" value="Chocolat" mXattribut="checked:field6checkedChocolat" /> Chocolat</label>
                                                        <label for="Rose">&nbsp;&nbsp;<input type="checkbox" name="add_fields[6][value][]" id="Rose" value="Rose" mXattribut="checked:field6checkedRose" /> Rose</label>
                                                        <label for="RoseNoir">&nbsp;&nbsp;<input type="checkbox" name="add_fields[6][value][]" id="RoseNoir" value="RoseNoir" mXattribut="checked:field6checkedRoseNoir" /> Rose Noir</label>
                                                        <label for="Ivoire">&nbsp;&nbsp;<input type="checkbox" name="add_fields[6][value][]" id="Ivoire" value="Ivoire" mXattribut="checked:field6checkedIvoire" /> Ivoire</label>
                                                        <label for="Rouge">&nbsp;&nbsp;<input type="checkbox" name="add_fields[6][value][]" id="Rouge" value="Rouge" mXattribut="checked:field6checkedRouge" /> Rouge</label>
                                                        <label for="RosePoudre">&nbsp;&nbsp;<input type="checkbox" name="add_fields[6][value][]" id="RosePoudre" value="RosePoudre" mXattribut="checked:field6checkedRosePoudre" /> Rose Poudre</label>
                                                        <label for="PoudreIvoire">&nbsp;&nbsp;<input type="checkbox" name="add_fields[6][value][]" id="PoudreIvoire" value="PoudreIvoire" mXattribut="checked:field6checkedPoudreIvoire" /> Poudre Ivoire</label>
                                                        <label for="VioletNoir">&nbsp;&nbsp;<input type="checkbox" name="add_fields[6][value][]" id="VioletNoir" value="VioletNoir" mXattribut="checked:field6checkedVioletNoir" /> Violet Noir</label>
                                                        <label for="LeopardNoir">&nbsp;&nbsp;<input type="checkbox" name="add_fields[6][value][]" id="LeopardNoir" value="LeopardNoir" mXattribut="checked:field6checkedLeopardNoir" /> Leopard Noir</label>
                                                        <label for="GrisNoir">&nbsp;&nbsp;<input type="checkbox" name="add_fields[6][value][]" id="GrisNoir" value="GrisNoir" mXattribut="checked:field6checkedGrisNoir" /> Gris Noir</label>
                                                        <label for="Bleu">&nbsp;&nbsp;<input type="checkbox" name="add_fields[6][value][]" id="Bleu" value="Bleu" mXattribut="checked:field6checkedBleu" /> Bleu</label>
                                                        <label for="Violet">&nbsp;&nbsp;<input type="checkbox" name="add_fields[6][value][]" id="Violet" value="Violet" mXattribut="checked:field6checkedViolet" /> Violet</label>
                                                        <label for="Taupe">&nbsp;&nbsp;<input type="checkbox" name="add_fields[6][value][]" id="Taupe" value="Taupe" mXattribut="checked:field6checkedTaupe" /> Taupe</label>
                                                        <label for="RoseIvoire">&nbsp;&nbsp;<input type="checkbox" name="add_fields[6][value][]" id="RoseIvoire" value="RoseIvoire" mXattribut="checked:field6checkedRoseIvoire" /> Rose Ivoire</label>
                                                </div>
                                        </fieldset>
                                            <div class="submit">
	                                      <input type="hidden" value="%" name="search_string" />
	                                      <input type="submit" name="button" value="Voir les R&eacute;sultats" />
	                                    </div>   	
		</form>
	</div>
</div>
 


A vous de jouer. N'hésitez pas à poster pour tout complément d'information à ce sujet.

NB: cette recherche avancée multicritères via des checkbox passe pour le moment par la création d'un template html, il faudra donc créer et si besoin modifier les valeurs de façon statique. Bien entendu, le widget de recherche avancée peut évoluer, n'hésitez pas pour cela à créer une suggestion d'évolution en ce sens.

Formateur web [Medialibs]

Romain
Avatar
Bonjour tout le monde,

C'est bien de pouvoir mettre un système de filtre comme ça en place. Ca a l'air plutôt simple à mettre en place.

Néanmoins je rencontre un p'tit souci. Au lieu d'insérer dans mon champ (qui est correctement pointé) la valeur de ma checkbox cochée, il m'insère un "Array" (ou il m'insère rien du coup et prend la valeur par défaut peut être)...

Quelqu'un aurait une idée sur ce que j'ai mal fait ?

Merci à vous,

<div class="widget widgetCatalogSearch" >
	<mx:bloc id="widgetTitle"><h4><mx:text id="widgetTitle" /></h4></mx:bloc id="widgetTitle">
              <div class="widgetContainer">
		<form class="catalog_search_form" method="post" >
                    <fieldset>
                       <div class="row itemMarque">
                       <input type="hidden" name="add_fields[68][cond]" value="AND" />
                       <h5>Marque</h5>
                       <br/>
                       <label for="Universo">&nbsp;&nbsp;<input type="checkbox" name="add_fields[68][value][]" id="Universo" value="Universo"  /> Universo</label>           
                       <label for="Hillhout">&nbsp;&nbsp;<input type="checkbox" name="add_fields[68][value][]" id="Hillhout" value="Hillhout"  /> Hillhout</label>
                       </div>
                    </fieldset>
                    
                    <div class="submit">
	                 <input type="hidden" value="%" name="search_string" />
	                 <input type="submit" name="button" value="Voir les R&eacute;sultats" />
	            </div>   	
		</form>
	     </div>
</div>
 


Il m'a viré la mx dans le code pardon. sans les guillemets...

mXattribut=checked:field68checkedHillhout
Romain

Romain
Avatar
Bonsoir,

Personne n'aurait une petite idée ?

Merci.
Romain

Tech-Info
Bonjour,

je ne saisis pas comment remplacer le input text par un select dans cette zone de recherche...

Pourriez-vous m'indiquer comment faire ?

Cdt.
10 types de personnes, ceux qui comprennent le binaire et les autres ! ^^