ArtNr auch in Varianten suchen

Wenn er die Datei bei seinen Updates überschreibt, bringt ihm das eigentlich nix. Oder habe ich was überlesen?

wir reden nur bisschen an einander vorbei.
die vollständige search-query kommt als string aus der Funktion _getSearchSelect(), (oder so)
einfach ein Modul machen mit

function _getSearchSelect() {
return str_replace ( "oxparentid" , "oxid" ,parent::_getSearchSelect() );
}

Hallo liebe Programmierer Jungs und Mädels… ^^

die Frage stand heute kann ich aber wieder nur weitergeben, da es immer noch nicht möglich ist…

Ich habe die Datei auch gefunden, aber dort:
application/modules/oxsearch.php

Und wenn ich es das nach dem Bug Fix ändere, dann springt er nach der suche in den Offline Modus…

Im Error Log steht folgendes drin:

xConnectionException-oxException (time: 2014-10-19 21:45:44): [1054]: mysql:EXECUTE error: [1054: Unknown column ‘oxarticles.oxissearch’ in ‘where clause’] in EXECUTE with parameters select oxv_oxarticles_de.oxid, oxv_oxarticles_de.oxparentid, oxv_oxarticles_de.oxvarstock, oxv_oxarticles_de.oxvarcount, oxv_oxarticles_de.oxstock, oxv_oxarticles_de.oxstockflag, oxv_oxarticles_de.oxshopid, oxv_oxarticles_de.oxtitle, oxv_oxarticles_de.oxvarselect, oxv_oxarticles_de.oxthumb, oxv_oxarticles_de.oxpic1, oxv_oxarticles_de.oxtprice, oxv_oxarticles_de.oxvat, oxv_oxarticles_de.oxpricea, oxv_oxarticles_de.oxskipdiscounts, oxv_oxarticles_de.oxunitquantity, oxv_oxarticles_de.oxunitname, oxv_oxarticles_de.oxprice, oxv_oxarticles_de.oxvarname, oxv_oxarticles_de.oxtimestamp from oxv_oxarticles_de LEFT JOIN oxv_oxartextends_de ON oxv_oxarticles_de.oxid=oxv_oxartextends_de.oxid where ( oxv_oxarticles_de.oxactive = 1 and ( oxv_oxarticles_de.oxstockflag != 2 or ( oxv_oxarticles_de.oxstock + oxv_oxarticles_de.oxvarstock ) > 0 ) and IF( oxv_oxarticles_de.oxvarcount = 0, 1, ( select 1 from oxv_oxarticles_de as art where art.oxparentid=oxv_oxarticles_de.oxid and ( art.oxactive = 1 ) and ( art.oxstockflag != 2 or art.oxstock > 0 ) limit 1 ) ) ) and oxarticles.oxissearch = 1 and ( ( oxv_oxarticles_de.oxtitle like ‘%9783981170187%’ or oxv_oxarticles_de.oxshortdesc like ‘%9783981170187%’ or oxv_oxarticles_de.oxsearchkeys like ‘%9783981170187%’ or oxv_oxarticles_de.oxartnum like ‘%9783981170187%’ or oxv_oxartextends_de.oxtags like ‘%9783981170187%’ ) ) LIMIT 0, 50, for user oxe

Die Artikelnummer ist direkt von einem Variantenartikel… Den findet er über die normale Suche nicht… Hat vielleicht jemand auch Erfahrung mit dem Flexi Search, ich kann dieses Modul leider nicht testen, da ich keine testlizenz bekomme…

Vielen Lieben Dank…

Hallo,

[QUOTE=individuellz;151391]
die Frage stand heute kann ich aber wieder nur weitergeben, da es immer noch nicht möglich ist… [/QUOTE]

Richtig. Es ist auch nicht geplant, das per default möglich zu machen. Denn damit könnte man sich in gewissen Konstellationen die Performance abartig herunter reissen.

[QUOTE=individuellz;151391]
Und wenn ich es das nach dem Bug Fix ändere, dann springt er nach der suche in den Offline Modus…
[/QUOTE]

Es gibt keinen Bugfix, denn sonst wäre das im Standard implementiert. Es gibt maximal einen Workaround, der zu einem bestimmten Zeitpunkt verfasst wurde.

Ein einfaches Modul zu dem Thema wäre vielleicht mal keine schlechte Idee.

Gruß

is doch fertig mal im exchange suchen

Schau dir mal diese Ext an: http://www.druteika.lt/#diamond_search_for_oxid_eshop

Flutscht auch mit der 4.9er nachdem die Sprachdateien verschoben und eine Datei bearbeitet wurde. Der Dev hat einen Patch und in Kürze sollte es auch auf Github verfügbar sein.

Wie Marco schon sagte, wird die Performance anfangs (bei Neuindexierung) stark leiden. Doch wenn die Erstindexierung abgeschlossen ist, läuft der Shop wieder im grünen Bereich.

Schön wäre, wenn “stopwords” definiert werden könnten, dann würden die zugehörigen Tabellen in der DB nicht so dick werden.

Gruß

Ich habe für einen Kunden gerade genau so ein Modul geschrieben. Es macht eigentlich nicht mehr als die function _getSearchSelect() zu überlagen und dabei den Filter auf die oxparentid=’’ wegzulassen. Ich packe das Modul einfach in den Anhang und hoffe, dass ich dem ein oder anderen damit eine kleine Freude machen kann.

Ich habe für einen Kunden gerade genau so ein Modul geschrieben. Es macht eigentlich nicht mehr als die function _getSearchSelect() zu überlagen und dabei den Filter auf die oxparentid=’’ wegzulassen. Ich packe das Modul einfach in den Anhang und hoffe, dass ich dem ein oder anderen damit eine kleine Freude machen kann.

Hallo Fabian,

[QUOTE=PlusEV;176861]Ich packe das Modul einfach in den Anhang und hoffe, dass ich dem ein oder anderen damit eine kleine Freude machen kann.[/QUOTE]

Aye, mir auf jeden Fall :slight_smile:
Siehst Du eine Möglichkeit, das Modul auf GitHub hochzuladen?

Gruß

Würde mich über Feedback freuen!

Hi!

vielen Dank für das Modul!
Fabian, sehr cool, dass das kostenlos veröffentlicht wurde :slight_smile:

Das Modul funktioniert an sich gut, allerdings erst mit einer kleinen Änderung:
[ul]
[li]die vendormetadata.php fehlt[/li][li]in der metadata.php muss der Ordner “tes/” mitangegeben werden[/li]-> ‘oxSearch’ => ‘tes/tes_variantsearch/models/tes_variantsearch_oxsearch’,
[/ul]

Grüße aus Freiburg
Marius George

Danke für den Hinweis, Harald! Die Änderungen sind nun im Github.

Hallo, habe mich schon gefreut, aber irgendwie begreife ich die Strucktur nicht, wohin genau muss was kopiert werden, damit die Variantensuche funktioniert…

Hallo, Du musst nur den Ordner “tes” in das “modules” Verzeichnis des Shops kopieren und das Modul “TESolutions - Variantensuche” im Admin aktivieren. Danach werden Varianten im Shopfrontend direkt gefunden (evtl. noch TMP leeren).

Ich habe das vorhin sicherheitshalber noch mal mit der aktuellen Github Version 1.2.0 in einer CE 4.9.7 und einer CE 4.10.0 Beta mit Flow Theme getestet und es hat funktioniert. Die Varianten müssen natürlich den Haken bei “Kann gesucht werden” gesetzt haben, das ist bei neu angelegten Varianten aber standardmäßig so. Bei den OXID Demoartikeln ist der Haken bei den Varianten nicht gesetzt, falls Du das in einem Testshop probierst.

Gruß,
Thomas

Danke genau das wars, die Aktivierung im Admin Bereich…

Funktioniert das Modul bei euch noch unter 4.10?

Bei mir leider nicht. Ich versuche gerade Varianten über die Artikelnummer im Backend zu suchen.

Das habe ich gerade bei einem Artikel probiert bei dem “Kann gesucht werden” aktiv ist und bei dem eine Variante mit der Artikelnummer “12008” eingetragen ist.

Wenn ich jetzt die Artikelnummer “12008” im Backend in das Suchfeld für “Art-Nr.” eintrage, finde ich allerdings keinen Treffer.

Sollte gehen, aber nicht im Backend. Dafür müsste article_list.php Zeile 216 (4.10.1) angepasst bzw. per Modul überschrieben werden:

//$sQ .= " and $sTable.oxparentid = '' ";

Die Frontend suche bringt mir leider nichts, weil die Vaterartikel nicht aktiv sind und deshalb eh keine Treffer im Frontend angezeigt werden.

Was muss denn an der Zeile geändert werden?

Das, was oben steht, also die Zeile auskommentieren. (ist natürlich so nicht updatefähig. Besser wäre ein Modul.)

[QUOTE=foxido.de;183241]Das, was oben steht, also die Zeile auskommentieren. (ist natürlich so nicht updatefähig. Besser wäre ein Modul.)[/QUOTE]

Ok, habe erst gar nicht den Unterschied bemerkt.

Für meine Verwendung ist es nicht schlimm, dass es nicht updatefähig ist, weil ich diese Funktion bestimmt nur dieses eine mal wegen eines doofen Fehlers meinerseits benutzen muss.

Besten Dank für die schnelle Hilfe!