Produktbewertung Durchschnitt als Zahl im Frontend ausgeben

Hallo zusammen, ich möchte bei der aktuellen Shopwareversion auf der Artikeldetailseite innerhalb des Tabs “Bewertungen” den Durchschnitt der Bewertungen zu diesem Produkt zusätzlich zu den Durchschnittssternen auch als Dezimalzahl (am besten mit zwei Nachkommastellen) anzeigen lassen. Also im Prinzip so: 4.92 / 5.00 Kann man hierzu die Variable {$sArticle.sVoteAverage} Produktbewertung Durchschnitt (ist bei Produktexporten ansprechbar) verwenden, wenn ja wie? Bisherige Versuche waren leider erfolglos, jetzt liegt die ganze Hoffnung im Forum :slight_smile: Besten Dank! Viele Grüße

hm, keiner eine idee? die variable so einzusetzen ist leider nicht erfolgreich :frowning:

Hallo, man könnte zur Not eben den Bewertungsdurschnitt über den Produktexport herunterladen und dann per Artikelimport als zusätzliches Artikelattribut hinzufügen und dieses dann einfach im Template ausgeben. Eine direkte Ausgabe im Frontend wäre natürlich deutlich besser. Oder gibt’s noch eine andere Möglichkeit? Vielleicht jemand von :shopware: eine Idee / Lösung?

Schau dir doch mal mit {$sArticle|@print_r} die verfügbaren Informationen an. Falls der Durchschnitt nicht enthalten sein sollte, dann müsste ein Plugin her. Viele Grüße

Hi, erstmal besten Dank für die fixe Antwort, die Funktion ist wirklich sehr hilfreich :thumbup:(gibts irgendwo eine Übersicht solch nützlicher Funktionen/Variablen?) :slight_smile: Der Bew.-Durchschnitt ist leider nicht direkt im Template verfügbar/ansprechbar. Ich habe mich mal bei der Plugin-Entwicklung eingelesen, mein Problem besteht aber schon darin, dass ich entsprechende Datenbankeinträge für den Bewertungsdurchschnitt nicht finden konnte, um überhaupt ein Ziel zu haben, welches ich abfragen kann. Alternativ könnte man ja auch noch per PHP einfach eine Abfrage der erzeugten csv-Datei vom Produktexport machen. Da der PHP-Code aber ausgelagert werden müsste (weil in Smarty-Version 3.1 php-Tags deprecated sind) wüsste ich hier nicht, wie ich genau den Bew.-Durchschnitt zur aktuellen Artikel-ID abfrage… (Und vielleicht auch nicht so günstig, weil die CSV-Datei ja mit jedem Aufruf neu erzeugt wird, was später bei ein paar Tausend Produkten (hoffentlich nicht) zu einer starken Beanspruchung der Ressourcen führen könnte (?). Weißt du bei einer der beiden Vorgehensweisen vielleicht Rat? Oder steh ich nur auf dem Schlauch? Dankedir!

[quote=„AlexR“][…] gibts irgendwo eine Übersicht solch nützlicher Funktionen/Variablen?[/quote] Einfach mal googlen, wie man innerhalb smarty am besten debugged. [quote=„AlexR“][…] mein Problem besteht aber schon darin, dass ich entsprechende Datenbankeinträge für den Bewertungsdurchschnitt nicht finden konnte[/quote] Das ist ein recht simples, mathematisches Problem: Teile die Summe aller Bewertungen durch die Anzahl der Bewertungen -> ist mit einer SQL Abfrage zu machen [quote=„AlexR“][…] der erzeugten csv-Datei vom Produktexport […][/quote] Wie kommt denn jetzt eine .csv oder der Produktexport ins Spiel?! Bitte gib uns alle notwendigen Informationen sofort, anstatt Stück für Stück, so dass wir raten müssen, worauf du eigentlich hinaus willst. Viele Grüße

1 „Gefällt mir“

[quote=„Aquatuning GmbH“] Das ist ein recht simples, mathematisches Problem: Teile die Summe aller Bewertungen durch die Anzahl der Bewertungen -> ist mit einer SQL Abfrage zu machen[/quote] Danke, hieran werde ich mal probieren. [quote=„AlexR“][…] Wie kommt denn jetzt eine .csv oder der Produktexport ins Spiel?! Bitte gib uns alle notwendigen Informationen sofort, anstatt Stück für Stück, so dass wir raten müssen, worauf du eigentlich hinaus willst.[/quote] Alternativ zur 1. Möglichkeit oben: Es ging sich um eine PHP-Abfrage des entsprechendes Datensatzes in der Produktexport-Datei anhand der Artikel-ID. Hierzu steht im Wiki: „Hinweis: Die Feed-Datei wird bei jedem Aufruf über der Feed-URL automatisch erstellt. Sie benötigen für die Aktualisierung der CSV-Dateien keinen zusätzlichen Cron-Job o.ä.“

Hallo, ich habe mich mal drangemacht (wobei das zugegebenermaßen das erste Mal ist, dass ich überhaupt mit Shopware Plugins bzw. SQL-Abfragen in Kontakt gekommen bin). Kann das so in etwa stimmen? $sql\_articlevoteAverage = "SELECT articleID, (SUM(points) FROM s\_articles\_vote) / COUNT(articleID) FROM s\_articles\_vote) \* 1.00 GROUP BY articleID"; $article\_voteAverage = Shopware()-\>Db()-\>fetchOne($sql\_articlevoteAverage); $view-\>article\_voteAverage = Shopware()-\>Db()-\>fetchOne($sql\_articlevoteAverage); Ziel wäre die Ausgabe auf der Artikeldetailseite (Frontend) als {$article\_voteAverage}

Hey, ok, hab mal weiter gesucht und bin auf das gestoßen, könntest du mir bitte noch bei der Bedingung helfen „(Summe bilden,) wenn aktuelle Artikel-ID identisch ist mit Artikel-ID in Datenbank“ und "(Alle zählen,) wenn aktuelle Artikel-ID identisch. Dann könnte man das in den Code hier einbauen und quasi fertig oder? $view-\>addTemplateDir($this-\>Path() . 'Views/'); $view-\>extendsTemplate('frontend/plugins/swag\_hreview\_aggregate/index.tpl'); $wert1 = Shopware()-\>Db()-\>fetchOne("SELECT SUM(points) WHERE ......... as total FROM s\_articles\_vote"); $bewertungen = Shopware()-\>Db()-\>fetchOne("SELECT COUNT(...........) as total FROM s\_articles\_vote"); $durchschnitt = $wert1 / $bewertungen; $view-\>bewertung = $bewertungen; $view-\>durchschnitt = $durchschnitt; Schonmal vorab danke!! :slight_smile: