Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: MODUL: Kategorie-Keywords für die Shopsuche für Shopversion 2.x

    D.L.

    • Mitglied
    • Beiträge: 108
    Re: MODUL: Kategorie-Keywords für die Shopsuche für Shopversion 2.x
    Antwort #15 am: 13. September 2021, 16:08:18
    Sorry, ich hatte Deine Erweiterung nur in deiner Demo getestet und war zunächst davon ausgegangen, dass neben den Keywords auch der Kategoriename und ggf. auch die Kategoriebeschreibung mit durchsucht wird.
    Asche auf mein Haupt. Du beschreibst es ja eigentlich oben genau, dass nur die Keywords durchsucht werden.
    Wäre vielleicht eine gute Ergänzung.
    kein Problem.. ja, ich mach mich da mal ran die Woche.

    D.L.

    • Mitglied
    • Beiträge: 108
    Re: MODUL: Kategorie-Keywords für die Shopsuche für Shopversion 2.x
    Antwort #16 am: 14. September 2021, 13:34:27
    Diese beiden Optionen sind nun im Modul enthalten und nach Installation per default aktiv:
    - Anzeige von gefundenen Kategorien auch im Ajax Suchergebnisse
    - automatische Übernahme des jeweiligen Kategorienamens als Keyword
    (änderbar in den Moduleinstellungen)

    Im Testshop ist die "Testkategorie I" auf http://demo206.modified-multishop.de/index.php?cPath=2
    mit folgenden Einstellungen versehen:
    - Keywords für die Suche (kommagetrennt) Deutsch: "Testkeyword,Test123"
    - Keywords für die Suche (kommagetrennt) English : "Testkeyword"

    Die ganze Modulbeschreibung ist im Paket enthalten, den aktuellen Stand gibts aber zunächst immer hier:
    http://redmine.luziferase.de/issues/18
    Download:
    http://redmine.luziferase.de/projects/keywords2categories/files
    Dateihistorie:
    http://redmine.luziferase.de/projects/keywords2categories/repository

    [EDIT Tomcraft 16.12.2021: Modul in Beitrag 1 aktualisiert.]

    manne35

    • Fördermitglied
    • Beiträge: 593
    • Geschlecht:
    Re: MODUL: Kategorie-Keywords für die Shopsuche für Shopversion 2.x
    Antwort #17 am: 15. September 2021, 20:13:10
    Hallo,
    tolle Sache,
    funktionierte in meinem alten 2.0.4.2 Testshop auf Anhieb,  leichte Anpassungen für Bootstrap  werde ich noch machen.
    Auch die Anzahl der angezeigten Kategorien werde ich für meinen Shop limitieren, evtl. Berücksichtigung nur Kategorienamen ohne Kategorietext, weil ich einige hunderte Kat. Mit relativ viel Text habe, aber das wird bei jedem Shop etwas anders sein.
    Jedenfalls ist es sowohl für Shopbetreiber selbst  super, wenn man schnell in die Unterkategorien springen kann.
    Und bestimmt ist es auch für Kunden oftmals sinnvoller eine ganze Kategorie zum gesuchten Begriff zu finden, als nur einzelne Produkte.
    Der Kunde sieht sofort das ganze passende Angebot, nämlich die Kategorie, nicht nur einzelne Artikel.
    Jedenfalls ist das bei meinem Sortiment echt sinnvoll.
    Bei vielen Shops wird die Suche für Kunden mit dieser Anpassung viel schneller und erfolgreicher sein. Vor allem bei vielen Kategorien und Unterkategorien.
    Ich werde dies bei meinem nächsten Update einbauen und kann es sehr empfehlen.
    Herzlichen Dank an D.L. für dieses clevere Modul.
    Gruss manne

    [EDIT Tomcraft 16.12.2021: Shopversion korrigiert, siehe: FAQ: Wichtiger Hinweis bzgl. Angabe der Shopversion!]

    demoncleaner

    • Fördermitglied
    • Beiträge: 505
    Moin. Bin total begeistert von dem Modul. Ist genau das was ich gesucht habe und mit ein bisschen Anpassung bekommt man echt schöne automcomplete-Darstellung der suche hin. Man muss nur erstmal verstehen, wie genau die Suche sucht.

    Was ich bei mir noch gemacht habe (das aber nur am Rande), ist, ich hab das Ergebnis für die Produkte auf 4 beschränkt. Da ich keine super lange Latte an Ergebnissen im Quick-Suche-Dropdown haben wollte, die den User hier überfordern. Also in der
    /api/automcomplete/automcomplete.php bei der

    Code: PHP  [Auswählen]
     $autocomplete_search_query

    einfach das Limit fest auf 4 gesetzt, statt MAX_DISPLAY_ADVANCED_SEARCH_RESULTS dort einzutragen. Denn ich will in den "echten" Suchergebnisse natürlich dann mehr als nur 4 Ergebnisse haben. Klar, eleganter wärs wenn man das auch noch per Modul-Einstellungen steuern könnte.

    Ein kleiner Bug ist mir glaube ich noch aufgefallen. Und zwar werden mir auch Kategorien angezeigt, die eigentlich deaktiviert sind. Daher müsste man in der includes/extra/default/listing_sql/category_keywords.php die $listing_sql_categories folgendermaßen um den Status ergänzen:

    Code: PHP  [Auswählen]
    $listing_sql_categories = "Select * from ".TABLE_CATEGORIES." c LEFT JOIN ".TABLE_CATEGORIES_DESCRIPTION." cd on c.categories_id = cd.categories_id where $where_str_cat AND c.categories_status = 1 AND cd.language_id = '".(int)$_SESSION['languages_id']."'";

    Eigentlich sollte man hier sogar noch die Kundengruppen berücksichtigen....

    Ansonsten super Sache und vielen lieben Dank!
    Ach und es läuft auf 2.0.6.0 einwandfrei.

    demoncleaner

    • Fördermitglied
    • Beiträge: 505
    Nachdem mir nun nach einigen Stunden mit dem Modul der Kopf raucht, schreibe ich doch nochmal. Also an sich alles cool, aber ich habe das komische Phänomen, dass wenn ich "Kategorie Namen als Keyword verwenden" eingeschaltet habe, ich teilweise keine Ergebnisse bekomme, wo eigentlich welche sein sollten. Schalte ich das ab und packe stattdessen den entsprechenden Namen als Keyword in die Kategorie, funktioniert es wie es soll. Bei eingeschaltetem Namen + Keyword funktionierts dann wieder nicht. Kann es sein, dass es da noch irgendwo hakt? Ich bin leider nicht dahinter gekommen wo.

    Außerdem scheint es mir so zu sein, dass, damit das ganze dann funktioniert mindestens ein Produkt in dieser Kategorie liegen muss. Wenn nicht dann wird auch nicht auf das Keyword reagiert. Das ist bei vielen Kategorien und einigen Verschachtelungen irgendwie nicht ganz rund.

    D.L.

    • Mitglied
    • Beiträge: 108
    Ein kleiner Bug ist mir glaube ich noch aufgefallen...

    Danke, auch für den Hinweis mit den fehlenden Abfragebedingungen bei den Kategorien.
    Die sind im neuen Paket ergänzt: http://redmine.luziferase.de/projects/keywords2categories/files
    D.h. in \includes\extra\default\listing_sql\category_keywords.php, Zeile 47:
    $listing_sql_categories = "Select * from ".TABLE_CATEGORIES." c LEFT JOIN ".TABLE_CATEGORIES_DESCRIPTION." cd on c.categories_id = cd.categories_id where $where_str_cat AND cd.language_id = '".(int)$_SESSION['languages_id']."' AND c.categories_status = '1' " .CATEGORIES_CONDITIONS_C;

    Da die eingegebenen Suchbegriffe regulär nach Leerzeichen gesplittet werden ist im Update auch die Mindestlänge von 2 Zeichen im Abgleich mit den Kategorienamen ergänzt um zu verhindern dass z.B.  1 -  2 stellige Zahlen in Kategorienamen  ("Kategorie 2") berücksichtigt werden.
    Zeile 33:
    if (MODULE_CATEGORY_KEYWORDS_INCLUDE_CATEGORIES == 'True' && strlen($keyword) > 2) {
    (die Alternative diese stattdessen nur als ganzes Wort abzugleichen wäre aber zu überlegen..)

    Was deinen anderen Fehler betrifft bin ich überfragt und kann den so nicht reproduzieren.
    Du könntest mal das "Speichern der Datenbank Abfragen" aktivieren und mir das Ergebnis schicken?

    Und ja, leere Kategorien werden nicht angezeigt - das ist ein Feature ; )

    D.L.

    • Mitglied
    • Beiträge: 108
    Das Modul ist nun übrigens auch im MMLC verfügbar:
    https://module-loader.de

    demoncleaner

    • Fördermitglied
    • Beiträge: 505
    Cool Danke! Ich glaube mein anderes Problem hing mit dem "feature" zusammen. =) Ich war die ganze Zeit verwirrt, wieso eine übergeordnete Kategorie nur dann "reagiert" wenn mindestens ein Produkt drin liegt. Das bin ich jetzt umgangen in dem ich einfach sporadisch eins rein gelegt habe. Das wird bei mir im Frontend dann eh nicht angezeigt. Ich glaube je nach dem, was man für Produkte verkauft oder was man da für eine Logik/Struktur verfolgt ist das dann eben so besser. Ich bin fast wahnsinnig geworden gestern. Aber ich verstehe natürlich, dass das als Feature u.U. auch so durchaus Sinn machen kann.

    demoncleaner

    • Fördermitglied
    • Beiträge: 505
    Evtl. hab ich noch ein Problem aufgetan was mit dem verwand ist, was du über die Mindestlänge geschrieben hast.

    Angenommen ich hab ein Produkt das heißt "Alpha C". Dann werden mir im Autocomplete dafür keine Ergebnisse angezeigt sondern nur für "Alpha".  Hab ich eine Produkt das heißt "Beta 4" dann scheint das anders zu sein. Hier hab ich Ergebnisse sowohl für das keyword "Beta" als auch für den kompletten String "Beta 4".

    Auf der advanced_search_results.php werden mir bei der Suchen nach "Alpha C" dann logischerweise alle Produkte und alle Kategorien angezeigt. Kann es sein, dass generell anders mit Buchstaben als mit Zahlen umgegangen wird?

    demoncleaner

    • Fördermitglied
    • Beiträge: 505
    Noch was fiel mir gerade auf. Vielleicht kann das mal jemand bestätigen. Bei mir liefert "xxyz suchwort" nicht das selbe Ergebnis wie "suchwort xxyz". Bei ersterem erhalte ich eine Ergebnis, bei letzterem nicht. Wobei "xxyz" natürlich ein String ist der nirgends vor kommt.

    Kann mir evtl. jemand auf die Sprünge helfen wo genau die Suchwort-Verknüpfung mit dem gewählten Operator and/or stattfindet? Ich kann das nicht finden. Da muss das Problem ja irgendwo liegen.

    demoncleaner

    • Fördermitglied
    • Beiträge: 505
    Sorry für den Monolog aber Ich konnte das für mich jetzt fixen und glaube, dass das in dem Fall kein Feature war, sondern wirklich ein Bug.

    Angenommen ich hab bei einer Kategorie das Keyword „ball“ hinterlegt, dann reagieren bisher alle darin enthaltenen Produkte auf „ball“
    Sie reagieren aber auch auf „ball yxz“. Das darf aber nicht sein, wenn der Operator als „UND“ eingegeben worden ist aus meiner Sicht. Außerdem ist die Suche dann ja viel zu schwammig. Zumindest wenn man viele ähnliche Produkte hat.

    Bei den Kategorien mag das nicht so tragisch sein, aber das überträgt sich ja jetzt eben auch auf die Produkte.

    Gebe ich „ball yxz“ ein dann werden mir alle Produkte in der mit „ball“ hinterlegten Kategorie angezeigt. Obwohl ich ja den Operator im Backend auf UND stehen habe und ja hierfür auch gerne die UND Verknüpfung hätte.

    Lösung:

    In includes/extra/dfault/listing_sql/category_keywords.php

    Suche
    Code: PHP  [Auswählen]
    $where_str_cat .= " ) OR ";

    Ersetze
    Code: PHP  [Auswählen]
    $where_str_cat .= " ) AND ";

    Suche
    Code: PHP  [Auswählen]
    $where_str_cat = substr($where_str_cat, 0, strlen($where_str_cat)-3);

    Ersetze
    Code: PHP  [Auswählen]
    $where_str_cat = substr($where_str_cat, 0, strlen($where_str_cat)-4);

    Übrigens ist jetzt damit auch das zuvor erwähnte Problem "Alpha C" gelöst.

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.729
    • Geschlecht:
    Ich kenne das Modul jetzt nicht genau, aber ich bezweifele, daß das so korrekt ist wie du es schreibst.
    Wenn du einen "Operator im Backend auf UND stehen" hast (wo denn genau ?) dann müsste dafür ja im Code eine Variable oder Konstante aus der Configuration stehen und es kann nicht die Stelle sein an welcher hard-codiert "AND" oder "OR" steht.

    Insofern das Modul eine Erweiterung der normalen Suche, wie sie standard-mäßig im Shop ist, darstellt und im Code $search_keywords benutzt wird, so ist in der genannten Variable deine Backend-Einstellung bereits berücksichtigt, denn $search_keywords kommt aus der
    /advanced_search_result.php
    bzw. der
    /includes/extra/default/listing_sql/99_advanced_search_result.php
    und wird generiert aus der Funktion xtc_parse_search_string(), welche den im Backend unter
    Erw. Konfiguration => Such Optionen
    eingestellten Verknüpfungs-Operator berücksichtigt (ADVANCED_SEARCH_DEFAULT_OPERATOR).

    Die genannte Funktion schaue ich mir zufällig auch gerade an, sie könnte theoretisch einen Fehler haben. Sie ist allerdings so komplex, daß man sie nicht auf einen Blick mal eben so erfassen kann.

    Viel wichtiger jedoch ist zu verstehen wie die die Kategorie-Keywords genau benutzt/beachtet werden.
    Wenn es so ist wie bei den Produkt-Keywords, dann muß man Folgendes wissen:
    Die Suchworte die man Produkten hinzufügen kann (oder hier Kategorien) sollen ja Schlagworte beinhalten die sonst nicht im Produkt-Namen oder der Produkt-Beschreibung (oder dito für Kategorien das vorliegende Modul betreffend) vorkämen. Sie werden jedoch leider einzeln betrachtet. Das heißt, steht in den Zusatzsuchworten "ball würfel" erhalte ich nur dann einen Treffer wenn ich entweder nach ball oder nach würfel oder nach ball würfel oder nach "ball wüfel" (inkl. Anführungstrichen eingegeben) suche, nicht jedoch wenn ich nach "würfel ball" suche (inkl. Anführungstrichen eingegeben). würfel ball (ohne Anführungstrichen eingegeben) wiederum sollte treffen.
    Das Thema hatte ich im Thread MODUL: t10: Suchbegriffstatistik für Shopversion 2.x schon einmal angesprochen.

    Es kommt also darauf an wie man die zusätzlichen Suchworte genau eingegeben hat und wie genau man mit welchen Begriffen sucht.

    Übrigens:
    Nur wenn man ins Suchfeld bei der Suche keine Operatoren benutzt wie (, ), AND, OR wird der im Backend eingestellte Verknüpfungs-Parameter benutzt. Außerdem ist eine Suche in doppelten Anführungsstrichen nicht dasselbe wie ohne, denn ohne werden Suchworte einzeln betrachtet, getrennt am Leerzeichen.

    Fazit:
    Du solltest in deinen Aussagen absolut genau sein.
    Will sagen:
    Was erfasst du genau bei den Kategorie-Suchworten ?
    Was genau gibst du ins Suchfeld bei deinen Tests ein ?
    Was ist bei o.g. Angaben das gewünschte und was das bekommene Ergebnis ?

    Gruß,
    noRiddle

    demoncleaner

    • Fördermitglied
    • Beiträge: 505
    Moin noRiddle,

    zunächst mal Danke für deine ausführliche Stellungnahme.
    Vorab aber: Mein Problem ist durch meine Änderung behoben und ich wollte die Allgemeinheit, die evtl. auch dieses Modul nutzt, nur daran partizipieren lassen und den Modulersteller anregen vielleicht in die Richtung nochmals zu schauen und g.g.F. sogar zu bestätigen, dass es eine sinnvolle Änderung ist, die ich da vorschlage.

    Mir ist natürlich klar - und da hab ich mich evtl. unpräzise ausgedrückt - dass das Modul NICHT den Operator nutzt den man im Backend vom Shop standardmäßig bestimmen kann. Genau das ist ja das Problem.

    Ich wollte damit nur sagen, dass wenn ich dort UND eingestellt habe es genau dann zu unlogischem Verhalten im Modul kommt. Ich dachte auch ich hätte mit meinen "Alpha" und "Ball" Beispielen damit ausreichend erklärt was ich eingebe und was ich meine, was wann wie passiert.

    Zitat
    Die genannte Funktion schaue ich mir zufällig auch gerade an, sie könnte theoretisch einen Fehler haben. Sie ist allerdings so komplex, daß man sie nicht auf einen Blick mal eben so erfassen kann.

    Richtig. =) Genau nachvollziehen kann man das denke ich nur, wenn man mindestens auch das Modul installiert hat oder sich sogar etwas in dessen Code einarbeitet. Genau für die Leute war meine letzte Message gedacht.

    Ich habe Tests gemacht, die Tests haben das ergeben, was ich versucht habe zu beschreiben, das machte für mich keinen Sinn und ich hab es wie beschrieben geändert und jetzt funktioniert es wunderbar.
    Wenngleich es nicht elegant ist, da das natürlich immer noch "hardcodiert" ist und wenn man mal den Operator verändern will ist es wieder nicht logisch.

    Du hast nochmal eine Erklärung zu den Keywords von Produkten abgeben und wie sich das da verhält. In meinem Fall waren aber nicht mal Keywords von Produkten involviert sondern ich hab das nur mit Wörtern oder Wortstücken getestet die entweder in der Kategorie (bzw. Kategoriekeyword) und/oder im Produktnamen vorkommen.

    Zitat
    Es kommt also darauf an wie man die zusätzlichen Suchworte genau eingegeben hat und wie genau man mit welchen Begriffen sucht.

    Das ist klar, und das hab ich versucht zu erklären was ich da gemacht habe. Vielleicht kann ja D.I. Licht ins Dunkle bringen und einfach mal sagen ob ich mit meiner Änderung seiner Einschätzung nach recht habe. Er/Sie dürfte da ja am meisten drin stecken.

    Zitat
    Nur wenn man ins Suchfeld bei der Suche keine Operatoren benutzt wie (, ), AND, OR wird der im Backend eingestellte Verknüpfungs-Parameter benutzt. Außerdem ist eine Suche in doppelten Anführungsstrichen nicht dasselbe wie ohne, denn ohne werden Suchworte einzeln betrachtet, getrennt am Leerzeichen.

    Auch das ist soweit klar. Aber das macht ja kein Normalsterblicher hier mit AND, OR oder Anführungszeichen zu arbeiten und daher hab ich das auch so nicht getestet und hielt das auch nicht für erwähnenswert.

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.729
    • Geschlecht:
    Das Modul (ich habe es nachgeschaut) benutzt $search_keywords und das wird generiert wie ich in meinem vorherigen Post geschrieben habe und benutzt genau den Parameter der im
    Backend => Erw. Konfiguration => Such Optionen
    bei "Suchverknüpfungen" eingestellt ist, wie gesagt, wenn der Suchende nicht selbst Parameter wie AND oder OR benutzt.

    Inwiefern das Modul allerdings Fehler hat weiß ich nicht, das habe ich mir nicht genau angeschaut.

    Du solltest dir mal das $listing_sql ausgeben lassen
    Code: PHP  [Auswählen]
    echo '<pre>'.$listing_sql.'</pre>';

    und dann in einem Editor formatieren und analysieren ob es korrekt ist.

    Nach meinen Test hat die Funktion xtc_parse_search_string() übrigens keinen Fehler.

    Gruß,
    noRiddle
    rechtstexte für onlineshop
    5 Antworten
    6765 Aufrufe
    24. März 2013, 21:13:32 von 0815
    6 Antworten
    3715 Aufrufe
    23. November 2014, 19:03:22 von OM-D
    7 Antworten
    2287 Aufrufe
    04. September 2020, 04:00:08 von umbi
               
    anything