> ## 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.

# Rating configuration prodrating.config

> All sections of the prodrating.config configuration: basic settings of the product rating module, templates, sorting, message texts, and the four emails for confirmation, nickname, thank-you, and approval.

The product rating module comes with its own configuration, the `prodrating.config`. It is located either in the `Konfiguration` directory, in which case it applies to all subshops, or in `Konfiguration/<Subshop-ID>`, in which case it applies only to that one subshop.

The structure follows a pattern that helps when reading it. The `Basic` section contains the basic settings plus some older email parameters. These older parameters are superseded by four dedicated email sections as soon as those sections are present. In between are templates, sorting, and message texts.

This page follows exactly this order and, for each older parameter, tells you which section replaces it.

> [!NOTE]
>
> The configuration used to be called `prodrating.ini`. Both names refer to the same file.

Basics: Configuration basics

## Sections at a glance

| Section | Purpose |
| - | - |
| `Basic` | basic settings of the module |
| `Templates` | names of the templates for display, input, and confirmation |
| `Sort` | texts of the sort selection list |
| `NotifyMessages-Txt` | message texts of the module |
| `FreeMessages-Txt` | up to 50 free text messages |
| `ConfirmMail` | email to confirm a submitted rating |
| `SendNicknameMail` | email with the forgotten nickname |
| `ThankYouMail` | thank-you email after a rating is submitted |
| `NotifyNewRatingMail` | notification about a new rating awaiting approval |

> [!WARNING]
>
> `NotifyMessages-Txt` is a **required section**. If it is missing from the configuration, the module aborts with an error and does not run at all. All other sections are optional.
>
> This is not described in the previous documentation and has been added here.

## `Basic`

The basic settings of the product rating module.

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<basic>
   MinNicknameLen               = 5
   MaxRange                     = 5
   emailcheckmode               = domain
   ConfirmRatingPerEmail        = no
   AllowMultipleRatings         = yes
   InstantReleaseEmptyRatings   = yes
   NotifyNewRatingsEmailAddress =
</basic>
```

### Rating and nickname

| Parameter | Purpose | Values |
| - | - | - |
| `MaxRange` | number of rating points, that is, stars | integer from 1 to 10 |
| `MinNicknameLen` | minimum length of a nickname in characters | integer from 2 |
| `AllowMultipleRatings` | a person may rate the same product multiple times | `yes`, `no`. Default: `yes` |
| `InstantReleaseEmptyRatings` | approve ratings without subject and comment immediately | `yes`, `no` |
| `ConfirmRatingPerEmail` | the rating person must confirm their rating by email | `yes`, `no`. Default: `no` |

> [!NOTE]
>
> Three peculiarities of the evaluation are not documented and have been added here.
>
> `MinNicknameLen` has a hard lower limit of 2. A smaller value and an empty value are silently set to 2.
>
> `MaxRange` accepts values from 1 to 10. The previous documentation gives 2 as the lower limit. If the value is outside this range, it is **ignored** and the internal default remains in place. The value is not clamped to the nearest valid value.
>
> `AllowMultipleRatings` checks only for `no`. Any other value, including a typo, allows multiple ratings.

### Email address validation

| Parameter | Purpose | Values |
| - | - | - |
| `emailcheckmode` | how the entered email address is checked | `domain`, `syntax`, `none`. Default: `domain` |

`domain` checks the syntax and also whether the domain has a valid MX record. `syntax` checks only the syntax. `none` performs no check at all.

> [!WARNING]
>
> An empty value results in `domain`. A typo, however, is taken over unchanged and then matches none of the three modes. Write the value exactly as shown here.

### Older email parameters

These five parameters date from before the dedicated email sections. They only take effect as long as the superseding section is **not** in the configuration.

| Parameter | Purpose | Superseded by |
| - | - | - |
| `ConfirmSubject` | subject of the confirmation email | `ConfirmMail` section |
| `ConfirmSenderAddress` | sender address of the confirmation email | `ConfirmMail` section |
| `NicknameSubject` | subject of the nickname email | `SendNicknameMail` section |
| `NicknameSenderAddress` | sender address of the nickname email | `SendNicknameMail` section |
| `NotifyNewRatingsEmailAddress` | recipient of the notification about new ratings | `NotifyNewRatingMail` section |

> [!WARNING]
>
> It is enough for the superseding section to be **present**. It does not have to be filled in. An empty `<ConfirmMail>` section already disables `ConfirmSubject` and `ConfirmSenderAddress`, and the confirmation email is then no longer sent at all.

The kernel reads five more parameters in this section that are not described in the previous documentation. They all belong to the older plain-text email logic.

| Parameter | Purpose | Default |
| - | - | - |
| `ConfirmCharset` | character set of the confirmation email | `ISO-8859-1` |
| `NotifyNewRatingsSubject` | subject of the notification about new ratings | – |
| `NotifyNewRatingsSender` | sender of this notification | – |
| `NotifyNewRatingsContent` | text content of this notification | – |
| `NotifyNewRatingsCharset` | character set of this notification | – |

> [!NOTE]
>
> In the source code, `ConfirmCharset` is explicitly marked as undocumented. All five parameters stop having any effect as soon as the respective superseding section is present.

## `Templates`

The names of the templates for product ratings. By default, they are located in the `benutzer/templates/rating` directory.

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<Templates>
   List           = incl_rating_list.htm
   Edit           = incl_rating_edit.htm
   ChangeNickname = incl_rating_change_nickname.htm
   Confirm        = incl_rating_confirm.htm
   ConfirmMail    = mail_rating_confirm.txt
   MailValidation = incl_rating_mail_validation.htm
   NicknameMail   = mail_rating_nickname.txt
</Templates>
```

| Parameter | Template for |
| - | - |
| `List` | displaying existing ratings |
| `Edit` | entering a rating |
| `ChangeNickname` | changing the nickname |
| `Confirm` | the page after a rating has been entered successfully |
| `MailValidation` | the page called by the confirmation link from the email |
| `ConfirmMail` | the confirmation email to the rating person |
| `NicknameMail` | the email with the requested nickname |

On the `Confirm` page, depending on the configuration, you either explain the confirmation procedure or thank the person for the rating.

> [!WARNING]
>
> `ConfirmMail` is no longer used as soon as the `ConfirmMail` section is present. The same applies to `NicknameMail` and the `SendNicknameMail` section. The templates for these emails are then defined in the respective sections.

## `Sort`

The texts for the sort selection list of the ratings.

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<Sort>
   SortTimeAsc    = Ältere Einträge zuerst
   *SortTimeDesc  = Neueste Einträge zuerst
   SortRatingAsc  = Negative Bewertungen zuerst
   SortRatingDesc = Positive Bewertungen zuerst
</Sort>
```

| Parameter | Sorts |
| - | - |
| `SortTimeAsc` | by date, older first |
| `SortTimeDesc` | by date, newer first |
| `SortRatingAsc` | by rating, negative first |
| `SortRatingDesc` | by rating, positive first |

An asterisk in front of the parameter name makes this sort order the default. An empty value removes the entry from the selection list.

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
# Eintrag deaktiviert
SortRatingAsc =
```

> [!NOTE]
>
> For each sort criterion, the kernel first looks for the variant **with** an asterisk and only then for the variant without. If a criterion accidentally appears twice in the configuration, once with and once without an asterisk, the variant with the asterisk wins. This is not documented and has been added here.

## `NotifyMessages-Txt`

The message texts of the module. This section is required.

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<NotifyMessages-Txt>
   Error                   = Bei Ihrer Eingabe ist etwas unklar:
   NoEmail                 = Bitte geben Sie Ihre E-Mail-Adresse ein.
   InvalidEmail            = Die eingegebene E-Mail-Adresse ist ungültig.
   NoNickname              = Bitte geben Sie einen Nicknamen an.
   NicknameTooShort        = Der Nickname muss mindestens ~PRODRATING-MinimumNicknameLength~ Zeichen lang sein.
   NicknameDoesNotMatch    = Nickname und E-Mail-Adresse stimmen nicht überein.
   NicknameInUse           = Dieser Nickname ist bereits vergeben.
   NoRatingInput           = Bitte geben Sie eine Bewertung an.
   NoOldNick               = Bitte geben Sie Ihren alten Nicknamen an.
   OldNickTooShort         = Ihr alter Nickname muss mindestens ~PRODRATING-MinimumNicknameLength~ Zeichen lang sein.
   NoNewNickname           = Bitte geben Sie einen neuen Nicknamen ein.
   NewNicknameTooShort     = Ihr neuer Nickname muss mindestens ~PRODRATING-MinimumNicknameLength~ Zeichen lang sein.
   NewNickAndRepeatNoMatch = Ihr neuer Nickname stimmt nicht mit der Wiederholung überein.
   NickOrMailUnknown       = E-Mail-Adresse und Nickname existieren in dieser Kombination nicht.
</NotifyMessages-Txt>
```

| Parameter | Appears when |
| - | - |
| `Error` | as an introduction above the list of all input errors |
| `NoEmail` | no email address was entered |
| `InvalidEmail` | the email address fails the check |
| `NoNickname` | no nickname was specified |
| `NicknameTooShort` | the nickname is shorter than `MinNicknameLen` |
| `NicknameDoesNotMatch` | the nickname and email address do not match |
| `NicknameInUse` | the requested nickname is already taken |
| `NoRatingInput` | no rating was submitted |
| `NoOldNick` | the old nickname is missing when changing the nickname |
| `OldNickTooShort` | the old nickname entered is too short |
| `NoNewNickname` | the new nickname is missing when changing the nickname |
| `NewNicknameTooShort` | the new nickname is too short |
| `NewNickAndRepeatNoMatch` | the new nickname and its repetition do not match |
| `NickOrMailUnknown` | the combination of email address and nickname does not exist |

The local tag `PRODRATING-MinimumNicknameLength` is available in the length messages. It outputs the value from `MinNicknameLen`, so you do not have to write the number into every text.

## `FreeMessages-Txt`

Up to 50 freely named text messages that you can output in the templates.

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<FreeMessages-Txt>
   Hinweistext1 = Vielen Dank für Ihre Bewertung.
</FreeMessages-Txt>
```

You can choose the parameter name freely. In the template, you address the text using `FMSG-` plus the parameter name, so in the example `~FMSG-Hinweistext1~`.

## The four emails

All four email sections have the same structure and replace older parameters from `Basic` and `Templates`.

| Parameter | Purpose | Values |
| - | - | - |
| `Subject-Txt` | subject | text |
| `SenderAddress` | sender address | email address |
| `SenderName` | sender name | text |
| `Charset` | character set of the HTML email | Default: `ISO-8859-1` |
| `Template` | HTML email template | template name |

> [!WARNING]
>
> If `SenderAddress`, `Subject-Txt`, or `Template` is missing for one of these emails, it is **not sent**. The process aborts and writes an entry to the error log, without anything being visible in the shop.
>
> This is not described in the previous documentation and has been added here. So after creating one of these sections, always check whether the email actually arrives.

### `ConfirmMail`

The email with which the rating person confirms their rating. It is only sent if the `ConfirmRatingPerEmail` parameter in `Basic` is set to `yes`.

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<ConfirmMail>
   Subject-Txt   = Bitte bestätigen Sie Ihre Produktbewertung
   SenderAddress = noreply@mein-shop.de
   SenderName    = Mein Shop
   Charset       = UTF-8
   Template      = mail_rating_confirm.htm
</ConfirmMail>
```

If this section is present, three older parameters are no longer used: `ConfirmSubject` and `ConfirmSenderAddress` from `Basic`, and `ConfirmMail` from `Templates`.

### `SendNicknameMail`

The email with which a person receives their forgotten nickname, similar to sending a password.

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<SendNicknameMail>
   Subject-Txt   = Ihr Nickname
   SenderAddress = noreply@mein-shop.de
   SenderName    = Mein Shop
   Charset       = UTF-8
   Template      = mail_rating_nickname.htm
</SendNicknameMail>
```

> [!NOTE]
>
> The nickname can only be sent if at least one rating has already been submitted under the specified email address. Otherwise, there is nothing to send.

If this section is present, three older parameters are no longer used: `NicknameSubject` and `NicknameSenderAddress` from `Basic`, and `NicknameMail` from `Templates`.

### `ThankYouMail`

The thank-you email that is sent immediately after a rating is submitted.

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<ThankYouMail>
   Allow         = yes
   Subject-Txt   = Vielen Dank für Ihre Bewertung
   SenderAddress = noreply@mein-shop.de
   SenderName    = Mein Shop
   Charset       = UTF-8
   Template      = mail_rating_thankyou.htm
</ThankYouMail>
```

| Parameter | Purpose | Values |
| - | - | - |
| `Allow` | enable the thank-you email | `yes`, `no`. Default: `no` |

This section does not supersede any older parameters. There was no thank-you email before.

### `NotifyNewRatingMail`

The notification to the shop operator as soon as a new rating has been received for approval.

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<NotifyNewRatingMail>
   Allow         = yes
   Address       = redaktion@mein-shop.de
   Subject-Txt   = Neue Produktbewertung zur Freigabe
   SenderAddress = noreply@mein-shop.de
   SenderName    = Mein Shop
   Charset       = UTF-8
   Template      = mail_rating_notify.htm
</NotifyNewRatingMail>
```

| Parameter | Purpose | Values |
| - | - | - |
| `Allow` | enable the notification | `yes`, `no`. Default: `no` |
| `Address` | recipient address | email address |

If this section is present, `NotifyNewRatingsEmailAddress` from `Basic` is no longer used.

> [!WARNING]
>
> This section contains a trap. As soon as it is present, the older parameter is disabled. If `Allow` is then not set to `yes` here, **no** notification is sent at all, not even through the older route.
>
> If `Address` is also missing, sending aborts as well, even with `Allow = yes`.

## Section for older shops

The kernel also reads a `ProductRatingImages` section in this configuration, but only for version 7 shops. It contains the parameters `Point1` to `Point10` for the rating graphics as well as `back` and `next` for the paging buttons.

> [!NOTE]
>
> This section is not described in the previous documentation of the `prodrating.config`. In WEBSALE V8s, the rating graphics are defined instead in the section of the same name in the `shop.config`.

Reference: ProductRatingImages section in the shop.config

## Related links

* Guide: Description of the product rating module
* Guide: Configuring the product rating module
* Guide: Displaying ratings on the product
* Guide: Sorting and filtering products by rating


## Related topics

- [Configuration: fundamentals](https://dokumentation.websale.de/en/v8s/grundlagen-konfiguration/konfiguration-grundlagen.md)
- [Configuration types](https://dokumentation.websale.de/en/v8s/grundlagen-konfiguration/konfigurations-typen.md)
- [Configuration migration](https://dokumentation.websale.de/en/migration/migration-websale-v8s-neue-version/konfiguration-migration.md)
- [E-PRODRATING-EKOMI_ (eKomi product rating)](https://dokumentation.websale.de/en/v8s/referenz/tags/e-prodrating-ekomi.md)
- [PRODRATING- (Submitting and confirming a rating)](https://dokumentation.websale.de/en/v8s/referenz/tags/prodrating/bewertung-abgeben-und-bestaetigen.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.