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

# E-PRODRATING-EKOMI_ (eKomi product rating)

> Display the product ratings imported from eKomi in the shop: overall score, rating bars, individual customer reviews, merchant replies, filters and paging.

WEBSALE V8s regularly retrieves the product ratings submitted on eKomi and stores them in the shop. They are displayed in a separate template, which you enter in the `shop.config` shop configuration in the `ExternalProductRating` section below `Ekomi` in the `Template` parameter, for example `incl_prodrating_ekomi.htm`.

This template is pulled into the product detail view with `~WS-Module(rating_ekomi)~`. The tags on this page apply exclusively within it.

Guide: eKomi product rating · Reference: ExternalProductRating section · Reference: WS-Module()

> [!WARNING]
>
> The eKomi connection must be activated by WEBSALE AG, and you receive the interface IDs from eKomi. Without both, the template remains empty.

## The order in the template

`E-PRODRATING-EKOMI_Count()` looks like a mere setting, but it is the starting signal for everything else. Only this tag counts the existing ratings, calculates the number of pages from them and loads the ratings of the current page.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
~E-PRODRATING-EKOMI_Count(15)~
```

> [!WARNING]
>
> `E-PRODRATING-EKOMI_Count()` belongs at the beginning of the template, before every wrapper and every loop. If it is missing or placed further down, `E-PRODRATING-EKOMI_FeedbackData` remains empty, the rating loop does not run, and the entire paging function reports that there is nothing to page through. The overall score and the rating bars still appear, so the error is easily noticed late.

> [!NOTE]
>
> The value is limited to 1 to 500. A 0 or an empty value becomes 1, a value greater than 500 becomes 500.

## The overall rating

| Tag | Returns |
| - | - |
| `E-PRODRATING-EKOMI_Score` | the average score with one decimal place |
| `E-PRODRATING-EKOMI_ScoreImg` | the address of the matching rating image |
| `E-PRODRATING-EKOMI_Votes` | the total number of ratings |
| `E-PRODRATING-EKOMI_PositiveVotes` | the number of ratings above 3 |
| `E-PRODRATING-EKOMI_PositivePercentage` | the share of ratings above 3 as a percentage |

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{E-PRODRATING-EKOMI_Votes}
   <p class="bewertung_gesamt">
      <img src="~E-PRODRATING-EKOMI_ScoreImg~" alt="">
      ~E-PRODRATING-EKOMI_Score~ von 5 aus ~E-PRODRATING-EKOMI_Votes~ Bewertungen.
      ~E-PRODRATING-EKOMI_PositivePercentage~% davon waren positiv.
   </p>
{/E-PRODRATING-EKOMI_Votes}

{!E-PRODRATING-EKOMI_Votes}
   <p>Für dieses Produkt liegt noch keine Bewertung vor.</p>
{/!E-PRODRATING-EKOMI_Votes}
```

> [!NOTE]
>
> `E-PRODRATING-EKOMI_Votes` is suitable as the outer wrapper for the entire rating block, because without ratings there is no score, no bars and no customer reviews.

> [!WARNING]
>
> `E-PRODRATING-EKOMI_Score` outputs the score with a period as the decimal separator, i.e. `4.5` and not `4,5`. For a German-language display, replace the character in the template or show only the image instead.

> [!NOTE]
>
> `E-PRODRATING-EKOMI_PositivePercentage` is an integer. Decimal places are truncated, not rounded.

### The rating images

Which image belongs to which score is defined in the `shop.config` shop configuration in the `AdvancedProductRatingImages` subsection. Each range is a separate `<+Entry>` subsection with `From-Value`, `To-Value` and `Image`.

> [!NOTE]
>
> In the eKomi template, both limits are inclusive, and if several ranges match, the **last** one entered wins. Therefore, create the ranges without gaps and in ascending order; values on a boundary then always end up on the higher image.

> [!WARNING]
>
> In product lists, it is not the module but the shop core that evaluates the same configuration, and it does so with an **exclusive** upper limit and the **first** matching range. A product with exactly 5.0 gets the five-star image in the eKomi template, but none at all in the product list via `PR-AdvRatingScoreImg(ekomi)`. Therefore, set the upper limit of the last range above the maximum value, for example to `5.1`.

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<ExternalProductRating>
  <Ekomi>
    Template = incl_prodrating_ekomi.htm
    <AdvancedProductRatingImages>
      <+Entry>
        From-Value = 0.0
        To-Value   = 1.0
        Image      = bewertung_1.png
      </+Entry>
      ...
      <+Entry>
        From-Value = 4.0
        To-Value   = 5.1
        Image      = bewertung_5.png
      </+Entry>
    </AdvancedProductRatingImages>
  </Ekomi>
</ExternalProductRating>
```

> [!NOTE]
>
> `E-PRODRATING-EKOMI_ScoreImg` can be used as a wrapper. The range applies if an image was found for the current score at all, and thus catches an incomplete configuration.

## The rating bars

`E-PRODRATING-EKOMI_Ratings` iterates over the five possible score levels, **descending from 5 to 1**. From this, you build the typical bar list in which each level is also a filter link.

| Tag | Returns |
| - | - |
| `E-PRODRATING-EKOMI_Rating` | the score level of the current iteration |
| `E-PRODRATING-EKOMI_RatingVotes()` | the number of ratings with this score |
| `E-PRODRATING-EKOMI_RatingPercentage()` | the share of this score as a percentage |
| `E-PRODRATING-EKOMI_RatingFilterParam()` | the link parameter that filters by this score |

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{@E-PRODRATING-EKOMI_Ratings}
   <div class="rating_ekomi_graphic_line">
      <div class="rating_ekomi_graphic_line_complete">
         <div class="rating_ekomi_graphic_line_filler"
              style="width:~E-PRODRATING-EKOMI_RatingPercentage~%"></div>
         <span class="rating_ekomi_graphic_score">~E-PRODRATING-EKOMI_RatingVotes~</span>
      </div>
      <a href="~PR-Link~&~E-PRODRATING-EKOMI_RatingFilterParam~">
         ~E-PRODRATING-EKOMI_Rating~ Sterne
      </a>
   </div>
{/@E-PRODRATING-EKOMI_Ratings}
```

> [!NOTE]
>
> Within the loop, the three tags do not need a parameter; they then refer to the score level of the current iteration. Outside the loop, you specify the level in parentheses, for example `~E-PRODRATING-EKOMI_RatingVotes(5)~`.

> [!WARNING]
>
> `E-PRODRATING-EKOMI_Rating` only responds within `{@E-PRODRATING-EKOMI_Ratings}`. Outside of it, the tag remains unresolved in the page. The score of an individual customer review is returned by `E-PRODRATING-EKOMI_FeedbackData_Rating`.

> [!NOTE]
>
> The values 1 to 5 are permitted as parameters. Anything else results in 0 or an empty filter link.

> [!WARNING]
>
> `E-PRODRATING-EKOMI_RatingFilterParam` is a pure single tag. A wrapper with it has no effect.

### Displaying the active filter

`E-PRODRATING-EKOMI_ActiveFilter` outputs the score currently being filtered by and, as a wrapper, applies exactly when a filter is set at all.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{E-PRODRATING-EKOMI_ActiveFilter}
   <p>
      Es werden nur Bewertungen mit ~E-PRODRATING-EKOMI_ActiveFilter~ Sternen angezeigt.
      <a href="~PR-Link~">Alle Bewertungen anzeigen</a>
   </p>
{/E-PRODRATING-EKOMI_ActiveFilter}
```

> [!WARNING]
>
> The way back to all ratings is a link **without** a filter parameter, here simply `~PR-Link~`. Without this exit, the visitor remains trapped in the filtered view, because the paging links always carry the filter along.

> [!NOTE]
>
> The filter comes from the URL parameter `ws_ext_prodrating_filterByRating`, the page from `ws_ext_prodrating_page`. You only need both yourself if you reload the ratings via AJAX.

## The individual ratings

`E-PRODRATING-EKOMI_FeedbackData` is at the same time the check for existing ratings and the loop over the ratings of the current page.

| Tag | Returns |
| - | - |
| `E-PRODRATING-EKOMI_FeedbackData_Feedback` | the rating text |
| `E-PRODRATING-EKOMI_FeedbackData_Rating` | the score of this rating |
| `E-PRODRATING-EKOMI_FeedbackData_RatingImage` | the rating image for this score |
| `E-PRODRATING-EKOMI_FeedbackData_Timestamp` | date and time of submission |

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{!E-PRODRATING-EKOMI_FeedbackData}
   <p>Zu diesem Produkt liegt noch keine Kundenstimme vor.</p>
{/!E-PRODRATING-EKOMI_FeedbackData}

{E-PRODRATING-EKOMI_FeedbackData}
   {@E-PRODRATING-EKOMI_FeedbackData}
      <article class="bewertung">
         <img src="~E-PRODRATING-EKOMI_FeedbackData_RatingImage~" alt="">
         <time>~E-PRODRATING-EKOMI_FeedbackData_Timestamp~</time>
         {E-PRODRATING-EKOMI_FeedbackData_Feedback}
            <p>~E-PRODRATING-EKOMI_FeedbackData_Feedback~</p>
         {/E-PRODRATING-EKOMI_FeedbackData_Feedback}
      </article>
   {/@E-PRODRATING-EKOMI_FeedbackData}
{/E-PRODRATING-EKOMI_FeedbackData}
```

> [!NOTE]
>
> An eKomi rating always consists of a score, but not always of a text. The wrapper around `_Feedback` keeps empty paragraphs out of the list.

> [!NOTE]
>
> `E-PRODRATING-EKOMI_FeedbackData_Timestamp` follows the date format set for the respective subshop. In multilingual shops, the notation is therefore automatically correct.

### Date and time in individual parts

If you want to assemble the date yourself, you get each component individually.

| Tag | Returns |
| - | - |
| `E-PRODRATING-EKOMI_FeedbackData_Timestamp_day` | the day |
| `E-PRODRATING-EKOMI_FeedbackData_Timestamp_month` | the month |
| `E-PRODRATING-EKOMI_FeedbackData_Timestamp_year` | the year |
| `E-PRODRATING-EKOMI_FeedbackData_Timestamp_hours` | the hour |
| `E-PRODRATING-EKOMI_FeedbackData_Timestamp_minutes` | the minute |
| `E-PRODRATING-EKOMI_FeedbackData_Timestamp_seconds` | the second |

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{@E-PRODRATING-EKOMI_FeedbackData}
   Bewertet am
   ~E-PRODRATING-EKOMI_FeedbackData_Timestamp_day(true)~.~E-PRODRATING-EKOMI_FeedbackData_Timestamp_month(true)~.~E-PRODRATING-EKOMI_FeedbackData_Timestamp_year~
   um
   ~E-PRODRATING-EKOMI_FeedbackData_Timestamp_hours(true)~:~E-PRODRATING-EKOMI_FeedbackData_Timestamp_minutes(true)~ Uhr
{/@E-PRODRATING-EKOMI_FeedbackData}
```

> [!NOTE]
>
> Without a parameter, the part tags output the number without a leading zero, i.e. `7` for the seventh day. The parameter `true` pads to two digits and results in `07`. There is no such padding for the year; the parameter has no effect there.

> [!NOTE]
>
> As a wrapper, the part tags compare with the parameter. `{E-PRODRATING-EKOMI_FeedbackData_Timestamp_year(2026)}` applies to ratings from the year 2026, for example to mark older reviews.

> [!WARNING]
>
> Without a parameter, wrapping with the part tags does not work. `{E-PRODRATING-EKOMI_FeedbackData_Timestamp_day}` remains unresolved in the page.

## The merchant's reply

You can reply to every rating on eKomi. The reply is imported along with it and is available within the rating loop.

| Tag | Returns |
| - | - |
| `E-PRODRATING-EKOMI_FeedbackData_Merchant_Answer` | the text of the reply |
| `E-PRODRATING-EKOMI_FeedbackData_Timestamp_Merchant_Answer` | date and time of the reply |
| `E-PRODRATING-EKOMI_FeedbackData_Timestamp_Merchant_Answer_day` | the day of the reply |
| `E-PRODRATING-EKOMI_FeedbackData_Timestamp_Merchant_Answer_month` | the month of the reply |
| `E-PRODRATING-EKOMI_FeedbackData_Timestamp_Merchant_Answer_year` | the year of the reply |
| `E-PRODRATING-EKOMI_FeedbackData_Timestamp_Merchant_Answer_hours` | the hour of the reply |
| `E-PRODRATING-EKOMI_FeedbackData_Timestamp_Merchant_Answer_minutes` | the minute of the reply |
| `E-PRODRATING-EKOMI_FeedbackData_Timestamp_Merchant_Answer_seconds` | the second of the reply |

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{@E-PRODRATING-EKOMI_FeedbackData}
   <p>~E-PRODRATING-EKOMI_FeedbackData_Feedback~</p>

   {E-PRODRATING-EKOMI_FeedbackData_Merchant_Answer}
      <aside class="haendlerantwort">
         <p>Unsere Antwort vom ~E-PRODRATING-EKOMI_FeedbackData_Timestamp_Merchant_Answer~</p>
         <p>~E-PRODRATING-EKOMI_FeedbackData_Merchant_Answer~</p>
      </aside>
   {/E-PRODRATING-EKOMI_FeedbackData_Merchant_Answer}
{/@E-PRODRATING-EKOMI_FeedbackData}
```

> [!WARNING]
>
> The time tags of the merchant reply begin with `FeedbackData_`, just like those of the rating. The part tags behave the same way: the parameter `true` pads to two digits, and as a wrapper they compare with the parameter.

> [!NOTE]
>
> The wrapper with `_Merchant_Answer` is mandatory, because the vast majority of ratings have no reply. Without it, an empty reply box with a date from the year 1970 appears under every other customer review.

## Translated ratings

If you run the shop in multiple languages, WEBSALE V8s can have incoming ratings translated during import. The translation is then displayed. You also get the original wording.

| Tag | Returns |
| - | - |
| `E-PRODRATING-EKOMI_FeedbackData_FeedbackOrg` | the rating text in the original |
| `E-PRODRATING-EKOMI_FeedbackData_Merchant_AnswerOrg` | the merchant reply in the original |
| `E-PRODRATING-EKOMI_FeedbackData_Language` | the language of the displayed version |
| `E-PRODRATING-EKOMI_FeedbackData_LanguageOrg` | the language of the original |

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{@E-PRODRATING-EKOMI_FeedbackData}
   <p>~E-PRODRATING-EKOMI_FeedbackData_Feedback~</p>

   {!E-PRODRATING-EKOMI_FeedbackData_LanguageOrg(deu)}
      <details class="uebersetzungshinweis">
         <summary>Automatisch aus dem Original übersetzt</summary>
         <p lang="~E-PRODRATING-EKOMI_FeedbackData_LanguageOrg~">
            ~E-PRODRATING-EKOMI_FeedbackData_FeedbackOrg~
         </p>
      </details>
   {/!E-PRODRATING-EKOMI_FeedbackData_LanguageOrg(deu)}
{/@E-PRODRATING-EKOMI_FeedbackData}
```

> [!WARNING]
>
> A note about the machine translation belongs with the rating. Outputting a translated customer review without comment as an original quote is improper toward both the author and the reader.

> [!NOTE]
>
> If the ratings are not translated, the text and the original are identical and both language values are the same. The wrapper in the example therefore checks for the shop's language and only shows the note for ratings that are actually in a foreign language.

## Paging

The paging function works on the ratings whose page size you defined with `E-PRODRATING-EKOMI_Count()`.

| Tag | Applies when |
| - | - |
| `E-PRODRATING-EKOMI_Paging` | there is more than one page at all |
| `E-PRODRATING-EKOMI_PagingBack` | going back one page is possible |
| `E-PRODRATING-EKOMI_PagingNext` | going forward one page is possible |
| `E-PRODRATING-EKOMI_PagingFirst` | the current page is not the first |
| `E-PRODRATING-EKOMI_PagingLast` | the current page is not the last |
| `E-PRODRATING-EKOMI_PagingBefore()` | loop over the x pages before |
| `E-PRODRATING-EKOMI_PagingAfter()` | loop over the x pages after |
| `E-PRODRATING-EKOMI_PagingMoreBefore()` | there are further pages before |
| `E-PRODRATING-EKOMI_PagingMoreAfter()` | there are further pages after |

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{E-PRODRATING-EKOMI_Paging}
   <nav class="blaettern">
      {E-PRODRATING-EKOMI_PagingBack}
         <a href="~PR-Link~&~E-PRODRATING-EKOMI_PagingParam~">zurück</a>
      {/E-PRODRATING-EKOMI_PagingBack}

      {E-PRODRATING-EKOMI_PagingMoreBefore(2)}
         {E-PRODRATING-EKOMI_PagingFirst}
            <a href="~PR-Link~&~E-PRODRATING-EKOMI_PagingParam~">~E-PRODRATING-EKOMI_Page~</a>
         {/E-PRODRATING-EKOMI_PagingFirst}
         …
      {/E-PRODRATING-EKOMI_PagingMoreBefore(2)}

      {@E-PRODRATING-EKOMI_PagingBefore(2)}
         <a href="~PR-Link~&~E-PRODRATING-EKOMI_PagingParam~">~E-PRODRATING-EKOMI_Page~</a>
      {/@E-PRODRATING-EKOMI_PagingBefore(2)}

      {@E-PRODRATING-EKOMI_PagingAfter(2)}
         <a href="~PR-Link~&~E-PRODRATING-EKOMI_PagingParam~">~E-PRODRATING-EKOMI_Page~</a>
      {/@E-PRODRATING-EKOMI_PagingAfter(2)}

      {E-PRODRATING-EKOMI_PagingMoreAfter(2)}
         …
         {E-PRODRATING-EKOMI_PagingLast}
            <a href="~PR-Link~&~E-PRODRATING-EKOMI_PagingParam~">~E-PRODRATING-EKOMI_Page~</a>
         {/E-PRODRATING-EKOMI_PagingLast}
      {/E-PRODRATING-EKOMI_PagingMoreAfter(2)}

      {E-PRODRATING-EKOMI_PagingNext}
         <a href="~PR-Link~&~E-PRODRATING-EKOMI_PagingParam~">weiter</a>
      {/E-PRODRATING-EKOMI_PagingNext}
   </nav>
{/E-PRODRATING-EKOMI_Paging}
```

`E-PRODRATING-EKOMI_Page` and `E-PRODRATING-EKOMI_PagingParam` always refer to the wrapper they are placed in.

| Context | `Page` and `PagingParam` refer to |
| - | - |
| `PagingBack` | the previous page |
| `PagingNext` | the next page |
| `PagingFirst` | the first page |
| `PagingLast` | the last page |
| `PagingBefore()` and `PagingAfter()` | the page of the current iteration |

> [!WARNING]
>
> Outside these wrappers, both tags are not reliable. After a `PagingBack` or `PagingNext` block, they even retain its value, so a standalone `~E-PRODRATING-EKOMI_Page~` there shows the neighboring page instead of the current one. Therefore, do not write the current page number with this tag, but mark it via the gap between the two loops.

> [!NOTE]
>
> Without a parameter or with an unusable value, all four paging tags calculate with **five** pages. Set the same value in `PagingBefore`, `PagingAfter`, `PagingMoreBefore` and `PagingMoreAfter` so that the ellipsis appears exactly when the bar actually omits something.

> [!NOTE]
>
> `E-PRODRATING-EKOMI_PagingParam` always carries an active rating filter along. Anyone who has filtered by five stars stays within this selection when paging.

## Ratings in product lists

The eKomi template is not available on product overview and search result pages. There, you display the rating with the two product tags, each with the parameter `ekomi`.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{@PR-Data}
   {PR-RatingVotes(ekomi)}
      <img src="~PR-AdvRatingScoreImg(ekomi)~" alt="">
      ~PR-RatingVotes(ekomi)~ Bewertungen
   {/PR-RatingVotes(ekomi)}
{/@PR-Data}
```

> [!NOTE]
>
> Without a parameter, both tags refer to WEBSALE's own product rating. The parameter switches to the external rating module.

Reference: PR-RatingVotes() · Reference: PR-AdvRatingScoreImg() · Reference: PR-Data

## Tag overview

### Overall rating and control

| Tag | Single tag | Range tag | Negative range tag | Loop tag |
| - | - | - | - | - |
| `E-PRODRATING-EKOMI_Count()` | yes | – | – | – |
| `E-PRODRATING-EKOMI_Score` | yes | yes | yes | – |
| `E-PRODRATING-EKOMI_ScoreImg` | yes | yes | yes | – |
| `E-PRODRATING-EKOMI_Votes` | yes | yes | yes | – |
| `E-PRODRATING-EKOMI_PositiveVotes` | yes | yes | yes | – |
| `E-PRODRATING-EKOMI_PositivePercentage` | yes | yes | yes | – |
| `E-PRODRATING-EKOMI_ActiveFilter` | yes | yes | yes | – |

### Rating bars

| Tag | Single tag | Range tag | Negative range tag | Loop tag |
| - | - | - | - | - |
| `E-PRODRATING-EKOMI_Ratings` | – | – | – | yes |
| `E-PRODRATING-EKOMI_Rating` | yes | – | – | – |
| `E-PRODRATING-EKOMI_RatingVotes()` | yes | yes | yes | – |
| `E-PRODRATING-EKOMI_RatingPercentage()` | yes | yes | yes | – |
| `E-PRODRATING-EKOMI_RatingFilterParam()` | yes | – | – | – |

### Individual ratings

| Tag | Single tag | Range tag | Negative range tag | Loop tag |
| - | - | - | - | - |
| `E-PRODRATING-EKOMI_FeedbackData` | – | yes | yes | yes |
| `E-PRODRATING-EKOMI_FeedbackData_Feedback` | yes | yes | yes | – |
| `E-PRODRATING-EKOMI_FeedbackData_FeedbackOrg` | yes | yes | yes | – |
| `E-PRODRATING-EKOMI_FeedbackData_Rating` | yes | – | – | – |
| `E-PRODRATING-EKOMI_FeedbackData_RatingImage` | yes | yes | yes | – |
| `E-PRODRATING-EKOMI_FeedbackData_Merchant_Answer` | yes | yes | yes | – |
| `E-PRODRATING-EKOMI_FeedbackData_Merchant_AnswerOrg` | yes | yes | yes | – |
| `E-PRODRATING-EKOMI_FeedbackData_Language` | yes | yes | yes | – |
| `E-PRODRATING-EKOMI_FeedbackData_LanguageOrg` | yes | yes | yes | – |
| `E-PRODRATING-EKOMI_FeedbackData_Timestamp` | yes | yes | yes | – |
| `E-PRODRATING-EKOMI_FeedbackData_Timestamp_<Teil>` | yes | only with parameter | only with parameter | – |
| `E-PRODRATING-EKOMI_FeedbackData_Timestamp_Merchant_Answer` | yes | yes | yes | – |
| `E-PRODRATING-EKOMI_FeedbackData_Timestamp_Merchant_Answer_<Teil>` | yes | only with parameter | only with parameter | – |

`<Teil>` stands for `day`, `month`, `year`, `hours`, `minutes` or `seconds`.

### Paging function

| Tag | Single tag | Range tag | Negative range tag | Loop tag |
| - | - | - | - | - |
| `E-PRODRATING-EKOMI_Paging` | – | yes | yes | – |
| `E-PRODRATING-EKOMI_Page` | yes | – | – | – |
| `E-PRODRATING-EKOMI_PagingParam` | yes | – | – | – |
| `E-PRODRATING-EKOMI_PagingBack` | – | yes | yes | – |
| `E-PRODRATING-EKOMI_PagingNext` | – | yes | yes | – |
| `E-PRODRATING-EKOMI_PagingFirst` | – | yes | yes | – |
| `E-PRODRATING-EKOMI_PagingLast` | – | yes | yes | – |
| `E-PRODRATING-EKOMI_PagingMoreBefore()` | – | yes | yes | – |
| `E-PRODRATING-EKOMI_PagingMoreAfter()` | – | yes | yes | – |
| `E-PRODRATING-EKOMI_PagingBefore()` | – | – | – | yes |
| `E-PRODRATING-EKOMI_PagingAfter()` | – | – | – | yes |

All tags on this page are permitted exclusively in the eKomi rating template that is entered in the `shop.config` shop configuration in the `ExternalProductRating` section below `Ekomi` in the `Template` parameter.

## Related topics

* Guide: eKomi product rating
* Guide: Displaying ratings on the product
* Guide: Microdata from eKomi product ratings
* Guide: AJAX functions
* Reference: ExternalProductRating section


## Related topics

- [Materials: eKomi product rating](https://dokumentation.websale.de/en/v8s/materialien/materialien-ekomi-produktbewertung.md)
- [Structured data and rich snippets](https://dokumentation.websale.de/en/v8s/seo/strukturierte-daten-rich-snippets.md)
- [Products, catalog, and search](https://dokumentation.websale.de/en/v8s/referenz/konfigurationen/shopkonfiguration-shop-config/produkte-katalog-und-suche.md)
- [Sorting product lists](https://dokumentation.websale.de/en/v8s/funktionen-fuer-produktlisten/produktlisten-sortieren.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.