In Bearbeitung (Ajax)suche im Shop merkwürdig

FPrüfer

Moderator
Mitarbeiter
19. Februar 2016
1.881
529
Halle
OK, ich habe mir das mal etwas genauer angesehen. Die Sortierung nach Suchhäufigkeit hat hier wohl einen unangenehmen Nebeneffekt. Da - je nach Länge des Suchbegriffes - bei vielen freigeschalteten Suchanfragen auch viele ähnliche Suchvorschläge gefunden werden, sorgt die gen. Sortierung dafür das jetzt Suchbegriffe in den Sichtbereich gelangen, nach denen zwar häufig gesucht wird, die aber ggfs. dem Suchbegriff nur "ähnlich" sind, während die eher passenden - aber nicht so häufig gesuchten - Vorschläge aus der Sortierung verschwinden (dadurch wird weniger danach gesucht, sie kommen noch weiter nach unten, ...) Hier wäre eine Sortierung nach Relevanz oder "Ähnlichkeit" an erster Stelle hilfreicher.
Ich habe das mal als Verbesserungsvorschlag aufgenommen. https://issues.jtl-software.de/issues/SHOP-1718
 
  • Gefällt mir
Reaktionen: _simone_

_simone_

Sehr aktives Mitglied
17. Februar 2013
3.245
463
Emsland
Firma
Notun Delend
@FPrüfer :
Vielen Dank für die Aufmerksamkeit und das Ticket. Hoffentlich dauert das nicht so lange, denn so können wir den Shop 4, aus den weiter oben genannten Gründen, nicht in Betrieb nehmen.
 

FPrüfer

Moderator
Mitarbeiter
19. Februar 2016
1.881
529
Halle
Ihr könnt ja mal testhalber das ORDER BY in der Abfrage in der Funktion suggestions in includes/io_inc.php wie folgt umschreiben:
von
SQL:
ORDER BY nAnzahlGesuche DESC, cSuche
nach
SQL:
ORDER BY CASE
   WHEN cSuche = :keyword THEN 0
   WHEN cSuche LIKE CONCAT(:keyword, '%') THEN 1
   WHEN cSuche LIKE CONCAT('%', :keyword, '%') THEN 2
   ELSE 99
   END, nAnzahlGesuche DESC, cSuche
Das wäre jetzt das was mir spontan einfällt um die "Relevanz" ins Spiel zu bringen.
 
Zuletzt bearbeitet:

_simone_

Sehr aktives Mitglied
17. Februar 2013
3.245
463
Emsland
Firma
Notun Delend
Werde ich nächste Woche Di./Mi. machen; vielen Dank.
Jetzt muß ich Klamotten packen, da der Flieger in die Sonne auf uns wartet. 😀
 

_simone_

Sehr aktives Mitglied
17. Februar 2013
3.245
463
Emsland
Firma
Notun Delend
Ich hab den Code mal eingefügt, aber dann werden keine Ajax-Vorschläge mehr gemacht. 🙁
 

FPrüfer

Moderator
Mitarbeiter
19. Februar 2016
1.881
529
Halle
Argh... Sorry, ersetz mal bitte das cName jeweils durch cSuche... Ich werde den obigen Post auch entsprechend anpassen.
 
  • Gefällt mir
Reaktionen: _simone_

_simone_

Sehr aktives Mitglied
17. Februar 2013
3.245
463
Emsland
Firma
Notun Delend
Wow, passt. Um den Unterschied mal zu verdeutlichen, hab ich mal screens angehängt. Da sind ja Welten dazwischen. Und wie wichtig das Suchfeld ist, sieht man deutlich auf der heatmap.

vorher:

Zwischenablage04.jpg

jetzt:

Zwischenablage01.jpg

heatmap:

Zwischenablage02.jpg

Jetzt haben wir nur noch das Problem, daß Begriffe trotz richtiger Eingabe, erst nach vollständigem Ausschreiben vorgeschlagen werden.
k --> nichts
ku --> nichts
kur --> nichts
kurk --> nichts
...
erst wenn ich "kurkuma b" eingebe, kommt die Suggestion

Zwischenablage03.jpg
 

FPrüfer

Moderator
Mitarbeiter
19. Februar 2016
1.881
529
Halle
...erst wenn ich "kurkuma b" eingebe, kommt die Suggestion
Hmmm, kann es sein das es in euren Suchbegriffen auch kurkuma in Verbindung mit Umlauten gibt? Offensichtlich hat die Suche nämlich auch ein Umlauteproblem bei der Rückgabe der Suggestions als JSON.
In der gleichen Datei (includes/io_inc.php) gibt es in der Funktion suggestions (unterhalb des ausgetauschen ORDER BY einen Block
PHP:
if (is_array($results) && count($results) > 0) {
    foreach ($results as &$result) {
        $result->suggestion = utf8_encode($smarty->assign('result', $result)->fetch('snippets/suggestion.tpl'));
    }
}
Füge dort bitte mal noch eine UTF-Kodierung für das Keyword ein:
PHP:
if (is_array($results) && count($results) > 0) {
    foreach ($results as &$result) {
        $result->suggestion = utf8_encode($smarty->assign('result', $result)->fetch('snippets/suggestion.tpl'));
        $result->keyword    = utf8_encode($result->keyword);
    }
}
 
  • Gefällt mir
Reaktionen: _simone_

_simone_

Sehr aktives Mitglied
17. Februar 2013
3.245
463
Emsland
Firma
Notun Delend
Perfekt!!!

Zwischenablage01.jpg
So kann sich die Standard-Suche echt sehen lassen. Nochmals herzlichen Dank. 🙂
 

_simone_

Sehr aktives Mitglied
17. Februar 2013
3.245
463
Emsland
Firma
Notun Delend
Einen hätte ich noch, damit die Suche ein "Träumchen" ist:
Es ist schon öfters bemägelt worden, daß, wenn ich auf einen Vorschlag klicke, dieser "nur" in das Suchfeld übernommen wird....und sonst nichts. Der Kunde muß danach auf den Suche-Button klicken.

Das ist von der Usabillity nicht schön. Ich hatte gehofft, daß ich das mit einem jquery hin bekomme, aber irgendwie tut sich da nichts.
PHP:
$('.tt-dataset.tt-dataset-product-search').on("click", function()  {
  $(this).find('.search-submit-button').trigger('click');
});
Was js angeht bin ich ein noob, aber vllt. fällt ja jemand ein, was da falsch sein könnte.
 

FPrüfer

Moderator
Mitarbeiter
19. Februar 2016
1.881
529
Halle
Das Typeahead-Plugin bietet hier ein paar Custom-Trigger die sich besser nutzen lassen als ein normaler Click-Event.
JavaScript:
$('#search .twitter-typeahead').bind('typeahead:select', function(ev, suggestion) {
    $('#search-submit-button').trigger('click');
});
Das Ganze müßte dann in einer eigenen js-Datei in einer $(document).ready-Funktion eingebunden werden.
 
  • Gefällt mir
Reaktionen: _simone_

_simone_

Sehr aktives Mitglied
17. Februar 2013
3.245
463
Emsland
Firma
Notun Delend
Ich hab das in einer custom.js-Datei eingebunden und funktioniert einwandfrei. Top! Das sollte IMHO standardmäßig mit in Shop 4 aufgenommen werden.

(Einziges Problem ist bei uns das mitlaufende Suchfeld wo die Suche nicht getriggert wird, aber das sollten wir hin bekommen.)

Alles in allem muss ich ein großes Lob für den Support aussprechen. In meine Augen hat die Suche, die nach wie vor ein wichtiges Utensil in jedem Shop ist, sehr hinzu gewonnen. 🙂
 

Ähnliche Themen