So einfach kann man Bewertungen in JTL-Shop3 manuell eintragen
Artikel vom 05.02.2014
Wir kommen von Shopware. Dort konnte Hinz und Kunz Bewertungen zu Artikel abgeben, wenn man das als Betreiber so wollte. In JTL-Shop3 geht das leider nicht. Nur registrierte und angemeldete Kunden können Artikelbewertungen abgeben. Zwar auch zu Artikeln die sie nicht gekauft haben, aber eben nur wenn sie angemeldet sind am Shop.
Das ist an sich doof, weil ein Kunde sich wohl kaum für eine Bewertung am System anmeldet, auch wenn es je nach Bewertungsumfang eine Belohnung in Form von einem Gutschein gibt. Richtig doof aber ist natürlich, dass man bestehende Bewertungen aus einem alten Shop-System nicht direkt als Betreiber in das System eintragen kann. Hatten wir am Anfang noch den Verdacht, dass es überhaupt nicht geht (weil JTL-Shop eine Verknüpfung zum Kundenkonto bei jeder Bewertung will), so funktioniert doch ohne dass die Abfragen im Shop Fehler ausspucken, nur weil Teildaten in der Bewertung fehlen.
Auf, auf ... zur Datenbank
Die Artikel-Bewertungen liegen in der Datenbank von JTL-Shop und nicht in der WaWi. Das bedeutet, dass man also auf die gehostete mySQL-Datenbank zugreifen muss um dort die Änderungen einzutragen. Das kann man mit einem SQL-Tool machen wie z.B. dem kostenpflichtigen
NaviCat (gibt es für alle DB-Arten und für PC und Mac) oder ganz klassisch mit dem kostenlosen
phpMyAdmin. Letzteres muss auf dem Webspace installiert werden. phpMyAdmin ist bei uns auf der PLESK-Administration vom Server schon im Backend installiert und so nutzen wir der Einfachheit halber dieses Tool.
Was braucht es für eine Bewertung?
Die Datenbank-Tabelle, die uns interessiert nennt sich
tbewertung. Darin stecken alle Bewertungen die im Shop eingegangen sind - egal ob aktiv oder noch nicht freigeschaltet (Bewertungen kann man im JTL-Shop-Admin in der Freischaltzeitrale freischalten und editieren in der Freischaltzentrale).
Um nun eine neue Bewertung zum Shop hinzuzufügen sucht man also am besten in phpMyAdmin auf der linken seite nach der Tabelle
tbewertung und klickt diese an. Oben im Menü hat man nun die Möglichkeit über
Einfügen einen Datensatz manuell hinzuzufügen.
Es gibt in der Eingabemaske verschiedene Felder, die wir hier kurz Beschreiben:
Erfassungsmaske für die Bewertung in phpMyAdmin
kBewertung ist die laufende Nummer der Anzahl der im System vorhandenen Bewertungen. Muss eindeutig sein, darf also nicht doppelt vorkommen. In der Liste der Bewertungen kann man den letzten Eintrag ermitteln und trägt dann die nächst höhere Nummer hier ein.
kArtikel ist die Artikel-ID (nicht die Artikelnummer in der WaWi). Diese ID findet man recht einfach über phpMyAdmin indem man die Tabelle tartikel sucht und in dieser dann den jeweiligen Artikel. Die dortige erste Spalte
kArtikel zeigt die benötigte ID für die Bewertung. Trägt man hier die falsche ID ein, gibt es keinen Fehler, man findet aber später seine Bewertung ggf. nicht (Artikel-ID nicht vorhanden) oder bei einem anderen Artikel wieder :-)
kKunde ist die Kunden-ID im Shop (nicht die Kundennummer in der WaWi) und findet sich ind er Tabelle
tkunde. Ebenfalls hier die erste Spalte ist die Kunden-ID
kKunde. Kann man leer lassen, sofern man keine Verknüpfung von der Bewertung zu einem bestimmten Kunden herstellen will.
kSprache ist die ID der Sprache. Wir haben Deutsch (1) und Englisch (2). Dieses Feld ist wichtig. Deutschsprachige Kunden bekommen dann deutschsprachige Bewertungen angezeigt und englischsprachige nur die englischen Bewertungen (ist komisch irgendwie , aber wohl sinnvoll)
cName ist der Name, der als Kundenname erscheinen soll. Das kann ein Name sein, eine verkürzte Form (Peter Müller, P. Müller, Peter M.) oder ein Pseudonym oder was auch immer. Bei eingereichten Bewertungen anonymisiert der JTL-Shop von sich aus den Kundennamen. In der Datenbank ist es einem selbst überlassen.
cTitel ist die Überschrift der Bewertung, also der Titel. "Super Artikel, wollte ich schon immer haben" wäre so ein Beispiel-Text und wird auch entsprechend später beim Artikel so angezeigt.
cText ist der Text der Bewertung. "Seitdem ich diesen Artikel habe, ist mein Hund immer so fröhlich"... wir haben hier per Copy & Paste aus unserem alten Shop die Kundenbewertungen übernommen. Leerzeilen, Anführungszeichen und HTML werden dabei von phpMyAdmin entsprechend gefiltert und gewandelt.
nHilfreich - haben wir mit "0" gefüllt, weil wir hier noch keine Hilfreich-Bewertungen von Kunden zur Bewertung haben
nNichtHilfreich - haben wir mit "0" gefült, weil wir hier ebenfalls noch keine Nicht-Hilfreich-Bewertungen von Kunden zur Bewertung haben.
nSterne ist die Anzahl Sterne die vom Kunden für den Artikel vergeben wurden. JTL-Shop hat 5 Sterne im Maximum, Shopware hatte 10 Punkte, wobei 2 Punkte ein Stern war. Es gab also auch halbe Sterne. Gibt es bei JTL Shop nicht. Dementsprechend haben wir "gerundet". Nachdem wir sowieso die Bewertungen manuell eintragen ist es letztendlich auch egal. Um korrekt gegenüber den Kunden zu arbeiten haben wir abgerundet. 9 Punkte wurden also zu 4 Sternen. Letztendlich Shopware-Punkte durch zwei und dann Abrunden. Kann aber jeder so machen wie er will :-)
nAktiv ist 1 wenn die Bewertung "freigeschaltet" ist, ansonsten 0. Weil wir immer gleich sehen wollen, ob unsere Eintragung auch passt, haben wir beim Erfassen natürlich gleich die 1 reingeschrieben.
dDatum ist das Datum an dem die Bewertung geschrieben wurde. Shopware hatte hier Datum und Uhrzeit und hier gibt es bei JTL-Shop3 eben nur ein Datum. Reicht auch. Format ist wie üblich jjjj-mm-tt und lässt sich notfalls auch gemütlich mit dem Date-Selector aus dem Mini-Kalender auswählen.
Alle Daten zur Bewertung drin? Dann mit "OK" in die Datenbank schreiben und weiter mit der nächsten. Wem das zu aufwendig ist, der kann natürlich auch alle auf einen Rutsch importieren und ein CSV-File dazu verwenden. Am besten jetzt noch beim Artikel prüfen ob die Bewertung drin steht (ggf. wegen der Sprache auch gucken ob es korrekt bei den jeweiligen Sprachen des Artikels steht) und feini feini - alles bestens.
Durchschnittliche Bewertung berechnen.
Die Bewertungen zu einem Artikel werden vom JTL-Shop in einen Durchschnittswert gerechnet und dann beim Artikel mit angezeigt. Das passiert natürlich nicht, wenn die Bewertungen von Hand in der Datenbank erfasst hat. Ein kleiner Code-Schnipsel hilft aber, das zu beheben:
TRUNCATE tartikelext;
INSERT INTO tartikelext (kArtikel,fDurchschnittsBewertung)
SELECT kArtikel, SUM( nSterne ) / COUNT( * ) FROM tbewertung GROUP BY kArtikel
Das Script einfach via Copy & Paste im Bereich SQL in phpMyAdmin reinsetzen und "OK" klicken. Danach passt die Darstellung beim Artikel wieder und die durchschnittliche Bewertung und auch die Anzahl wird korrekt dargestellt.
Durchschnittliche Bewertungen beim JTL-Shop in der Artikelansicht korrigiert.
Hat alles geklappt?
Müsste eigentlich, gell :-) Falls irgendwas nicht passt, oder wenn das Problem viel eleganter lösen kann ... dann ab damit in die Kommentare! Danke!
Und weiter?
Wir sind am überlegen uns ein Plugin programmieren zu lassen, über das die bestehende Bewertungsgrundlage von JTL-Shop beibehalten wird, aber trotzdem wie bei Shopware dieser berühmte Herr Hinz und seine Frau Kunz wahllos Artikel bewerten können. Vorteil dabei wäre, dass man das Belohnungssystem bei den Bewertungen von JTL-Shop nutzen könnte. Bei JTL kann man Kunden für eine kurze Bewertung einen Bonus geben und für längere einen größeren Bonus. Klar, das wird der Grund sein, dass man sich zum bewerten am Shop anmelden muss. Aber unangemeldete Bewerter bekommen halt dann keinen Bonus auf ihr Konto gutgeschrieben sondern womöglich einen kleinen Dankeschön-Gutschen :-) Mal schauen ob und wann wir das Plugin entwickelt haben (lassen).