# 3. Regelsets & Validierung

Das Plugin unterscheidet zwei Regeltypen: **Completeness-Regeln** (gewichteter Score) und **Validierungsregeln** (binäre Prüfung). Beide werden in Regelsets verwaltet.

## Regelsets verwalten

Navigieren Sie zu **Kataloge → Produktvollständigkeit → Regelsets**, um Ihre Regelsets einzusehen, zu erstellen und zu bearbeiten.

### Regelset erstellen

Klicken Sie auf **Regelset hinzufügen** und füllen Sie das Formular aus:

* **Name**: Ein interner Name für das Regelset (z. B. „Standard-Checkliste" oder „SEO-Prüfung")
* **Verkaufskanäle** *(optional)*: Schränken Sie das Regelset auf einen oder mehrere Verkaufskanäle ein. Ohne Auswahl gilt es für alle Kanäle.
* **Sprache** *(optional)*: Begrenzen Sie das Regelset auf eine bestimmte Sprache. Ohne Auswahl gilt es sprachübergreifend.

### Bedingungen hinzufügen

Jedes Regelset enthält eine oder mehrere Bedingungen. Pro Bedingung legen Sie fest:

| Einstellung                   | Beschreibung                                                                           |
| ----------------------------- | -------------------------------------------------------------------------------------- |
| **Feld**                      | Das zu prüfende Produktfeld (automatisch aus der Shopware `ProductDefinition` erkannt) |
| **Operator**                  | Die Prüflogik: `required`, `min_length`, `count_min`, `regex` u. a.                    |
| **Wert** *(je nach Operator)* | Der Vergleichswert, z. B. Mindestlänge oder Mindestanzahl                              |
| **Gewichtung**                | Nur bei Completeness-Regeln: Wie stark dieses Feld den Score beeinflusst               |
| **Regeltyp**                  | Completeness-Regel (Score) oder Validierungsregel (Gültig/Ungültig)                    |

![Regelset-Formular mit Bedingungen](https://2916094232-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LtiS3-dzuXFp_IH7yRw-887967055%2Fuploads%2Fgit-blob-1a13d1a09cb7abbde12041c73cd4341c451e19d2%2F4.png?alt=media)

### Unterstützte Operatoren

| Operator     | Beschreibung                                             |
| ------------ | -------------------------------------------------------- |
| `required`   | Feld muss vorhanden und nicht leer sein                  |
| `min_length` | Text muss mindestens N Zeichen haben                     |
| `count_min`  | Sammlung (z. B. Bilder) muss mindestens N Einträge haben |
| `regex`      | Feldwert muss einem regulären Ausdruck entsprechen       |

Regex-Eingaben werden auf ReDoS-Sicherheit geprüft.

## Completeness-Regeln

Completeness-Regeln tragen zum **gewichteten Score** (0–100 %) bei. Ein Produkt erreicht 100 %, wenn alle Bedingungen in den für es relevanten Regelsets erfüllt sind.

**Beispielkonfiguration:**

| Feld         | Operator        | Gewichtung |
| ------------ | --------------- | ---------- |
| Name         | required        | 20         |
| Beschreibung | min\_length 100 | 30         |
| Cover-Bild   | required        | 25         |
| Kategorien   | count\_min 1    | 15         |
| Meta-Titel   | required        | 10         |

## Validierungsregeln

Validierungsregeln prüfen **binäre Bedingungen** — ein Produkt ist entweder gültig oder ungültig. Sie erscheinen getrennt vom Score im Dashboard und in der Produktliste.

Verwenden Sie Validierungsregeln für Pflichtfelder, die zwingend vorhanden sein müssen (z. B. EAN, Herstellernummer), aber nicht sinnvoll gewichtet werden sollen.

## Scope: Verkaufskanal & Sprache

Ein Regelset gilt nur für Produkte, die dem gewählten Verkaufskanal zugeordnet sind. So können Sie unterschiedliche Anforderungen für verschiedene Shops oder Exportkanäle definieren:

* **Kein Filter**: Das Regelset gilt für alle Produkte aller Kanäle
* **Verkaufskanal-Filter**: Nur Produkte in diesen Kanälen werden nach diesem Regelset bewertet
* **Sprach-Filter**: Nur Produktübersetzungen in dieser Sprache werden geprüft

## Regelsets verwalten

Die angelegten Regelsets werden in einer Übersicht angezeigt mit Name, Scope-Badge und Anzahl der Bedingungen. Über den Schalter in der Spalte **Aktiv** können Sie einzelne Regelsets temporär deaktivieren.

![Liste der Completeness-Regelsets](https://2916094232-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LtiS3-dzuXFp_IH7yRw-887967055%2Fuploads%2Fgit-blob-765965bf24c49b9f2e61ffd7c0383feb6d293886%2F5.png?alt=media)

## Scores neu berechnen

Nach Änderungen an Regelsets werden die Scores **nicht** automatisch für alle Produkte neu berechnet. Klicken Sie auf dem Dashboard auf **Scores neu berechnen**, um eine vollständige Neuberechnung anzustoßen. Die Berechnung läuft asynchron — je nach Produktanzahl kann sie einige Minuten dauern.

Bei jedem Produkt-Speichervorgang wird der Score für das betreffende Produkt automatisch aktualisiert.
