> ## Documentation Index
> Fetch the complete documentation index at: https://dokumentation.websale.de/llms.txt
> Use this file to discover all available pages before exploring further.

# $wsProductRating - Produktbewertungen

> Modul $wsProductRating: Produktbewertungen laden, Durchschnittswerte prüfen und im Frontend als Vertrauensindikator für Kunden darstellen.

Mit dem `$wsProductRating` Modul können Sie Produktbewertungen laden, prüfen und im Frontend anzeigen.

Produktbewertungen sind ein wichtiges Element für Kaufentscheidungen. Sie zeigen Kunden die Erfahrungen anderer Käufer und erhöhen das Vertrauen in Produkte.

***

## Modulübersicht

**Beispiel / Ausschnitt über** `$wsProductRating`

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{{= $wsProductRating | json }}
```

**JSON-Ausgabe**

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "checkRatingExistence": "ƒ()",
  "loadAllProductRatings": "ƒ()",
  "loadLatestRatingForAccount": "ƒ()",
  "loadRatingByAccount": "ƒ()",
  "loadRatingStatistics": "ƒ()",
  "loadSingleRating": "ƒ()"
}
```

Anmerkung: `“ƒ()”` kennzeichnet eine Funktion.

**Methoden in der Übersicht**

| **Methode**               | **Rückgabe-Typ** | **Beschreibung**                                                                       |
| ------------------------- | ---------------- | -------------------------------------------------------------------------------------- |
| `checkRatingExistence()`  | bool             | Prüft, ob für ein Produkt in Verbindung mit einer Bestellung eine Bewertung existiert. |
| `loadAllProductRatings()` | array            | Lädt alle Bewertungen eines Produkts.                                                  |
| `loadRatingStatistics()`  | map              | Lädt Statistiken zu den Bewertungen eines Produkts.                                    |
| `loadSingleRating()`      | map              | Lädt eine einzelne Bewertung anhand von Produkt- und Bestell-ID.                       |
| `loadLatestRating()`      | map              | Lädt die neueste Bewertung des aktuell eingeloggten Kunden.                            |
| `loadRatingByAccount()`   | map              | Lädt eine Produktbewertung des aktuell eingeloggten Kunden.                            |

***

## Templates

Produktbewertungen werden typischerweise auf der Produktdetailseite (product.htm) angezeigt. Sie können aber auch auf Kategorieseiten oder in der Bestellhistorie eingebunden werden, um Kunden zur Bewertung aufzufordern.

***

## Variablen

Für `$wsProductRating` stehen keine Variablen zur Verfügung.

***

## Methoden

### \$wsProductRating.checkRatingExistence()

Prüft, ob für ein Produkt in Verbindung mit einer Bestellung bereits eine Bewertung existiert.

**Signatur**\
`$wsProductRating.checkRatingExistence(productId, orderId)`

**Rückgabe**\
`bool` - `true` wenn eine Bewertung existiert, sonst `false`.

**Parameter**

| **Name**    | **Typ** | **Pflicht** | **Beschreibung**   |
| ----------- | ------- | ----------- | ------------------ |
| `productId` | string  | ja          | ID des Produkts.   |
| `orderId`   | string  | ja          | ID der Bestellung. |

**Beispiel,** das prüft ob eine Bewertung existiert.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{{ if $wsProductRating.checkRatingExistence(productId, orderId) }}
   // Bewertung vorhanden
{{ /if }}
```

### \$wsProductRating.loadAllProductRatings()

Lädt alle Bewertungen eines Produkts.

**Signatur**\
`$wsProductRating.loadAllProductRatings(productId)`

**Rückgabe**\
`array` - Liste mit allen Bewertungen des Produkts.

**Parameter**

| **Name**    | **Typ** | **Pflicht** | **Beschreibung** |
| ----------- | ------- | ----------- | ---------------- |
| `productId` | string  | ja          | ID des Produkts. |

**Beispiel,** das alle Bewertungen eines Produkts lädt.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{{ var $myProductRatings = $wsProductRating.loadAllProductRatings(productId) }}
```

### \$wsProductRating.loadRatingStatistics()

Lädt Statistiken zu den Bewertungen eines Produkts.

**Signatur**\
`$wsProductRating.loadRatingStatistics(productId)`

**Rückgabe**\
`map` - Map mit Bewertungsstatistiken (z.B. Durchschnitt, Anzahl).

**Parameter**

| **Name**    | **Typ** | **Pflicht** | **Beschreibung** |
| ----------- | ------- | ----------- | ---------------- |
| `productId` | string  | ja          | ID des Produkts. |

**Beispiel,** das die Statistik eines Produkts lädt.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{{ var $myRatingStatistics = $wsProductRating.loadRatingStatistics(productId) }}
```

### \$wsProductRating.loadSingleRating()

Lädt eine einzelne Bewertung anhand von Produkt- und Bestell-ID.

**Signatur**\
`$wsProductRating.loadSingleRating(productId, orderId)`

**Rückgabe**\
`map` - Map mit den Bewertungsdaten.

**Parameter**

| **Name**    | **Typ** | **Pflicht** | **Beschreibung**   |
| ----------- | ------- | ----------- | ------------------ |
| `productId` | string  | ja          | ID des Produkts.   |
| `orderId`   | string  | ja          | ID der Bestellung. |

**Beispiel, das eine einzelne Bewertung lädt.**

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{{ var $myRating = $wsProductRating.loadSingleRating(productId, orderId) }}
```

### \$wsProductRating.loadLatestRatingForAccount()

Lädt die neueste Bewertung des aktuell eingeloggten Kunden.

**Signatur**\
`$wsProductRating.loadLatestRatingForAccount()`

**Rückgabe**\
`map` - Map mit den Bewertungsdaten.

**Beispiel,** das die neueste Bewertung des Kunden lädt.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{{ var $myLatestRating = $wsProductRating.loadLatestRatingForAccount() }}
```

### \$wsProductRating.loadRatingByAccount()

Lädt eine Produktbewertung des aktuell eingeloggten Kunden.

**Signatur**\
`$wsProductRating.loadRatingByAccount(productId)`

**Rückgabe**\
`map` - Map mit den Bewertungsdaten des Kunden.

**Parameter**

| **Name**    | **Typ** | **Pflicht** | **Beschreibung** |
| ----------- | ------- | ----------- | ---------------- |
| `productId` | string  | ja          | ID des Produkts. |

**Beispiel,** das die Bewertung des Kunden für ein Produkt lädt.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{{ var $myProductRating = $wsProductRating.loadRatingByAccount(productId) }}
```

***

## Aktionen

Für `$wsProductRating` sind keine Aktionen vorhanden.

***

## Beispiele

### Durchschnittsbewertung anzeigen

In diesem Beispiel wird die Durchschnittsbewertung und die Anzahl der Bewertungen eines Produkts angezeigt.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{{ var $statistics = $wsProductRating.loadRatingStatistics($product.id) }}
{{ if $statistics.totalCount > 0 }}
  Bewertung: {{= $statistics.averageRating }} / 5 ({{= $statistics.totalCount }} Bewertungen)
{{ /if }}
```

### Alle Bewertungen eines Produkts auflisten

In diesem Beispiel werden alle Bewertungen eines Produkts geladen und angezeigt.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{{ var $ratings = $wsProductRating.loadAllProductRatings($product.id) }}
{{ if $ratings }}
  {{ foreach $rating in $ratings }}
    <p><strong>{{= $rating.author }}</strong>: {{= $rating.rating }} Sterne</p>
    <p>{{= $rating.text }}</p>
  {{ /foreach }}
{{ else }}
  <p>Noch keine Bewertungen vorhanden.</p>
{{ /if }}
```

### Prüfen, ob Kunde bereits bewertet hat

In diesem Beispiel wird geprüft, ob der Kunde ein Produkt bereits bewertet hat, bevor das Bewertungsformular angezeigt wird.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{{ if !$wsProductRating.checkRatingExistence($product.id, $order.id) }}
  
{{ else }}
  <p>Sie haben dieses Produkt bereits bewertet.</p>
{{ /if }}
```

***

## Weiterführende Links

* [Storefront API Kundenbewertungen](/schnittstellen/storefront-api/storefront-api-kundenbewertungen)
