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

# API-Referenz Templatekompilierung

> Template-Kompilierung im Shop über die Admin Interface API starten, ihren Fortschritt überwachen und vergangene Kompilierungsläufe einsehen.

Der Endpunkt `/templates` stellt eine Schnittstelle zur Verwaltung der Template-Kompilierung im Shop-System bereit. Über diese Schnittstelle können Sie den Kompilierungsvorgang starten, den aktuellen Fortschritt und Status abfragen sowie eine Liste vergangener Kompilierungsergebnisse einsehen.

Zusätzlich lässt sich ermitteln, wie viele Schritte für den vollständigen Kompilierungsprozess erforderlich sind.

***

## Unterstützte Methoden

Angabe aller unterstützten Methoden.

| **Befehl/Info**          | **Endpunkte** | **GET**               | **POST**              | **PUT**             | **DELETE**          |
| ------------------------ | ------------- | --------------------- | --------------------- | ------------------- | ------------------- |
| **Templatekompilierung** | templates/    | <Icon icon="check" /> | <Icon icon="check" /> | <Icon icon="ban" /> | <Icon icon="ban" /> |

## Datenfelder für die Templatekompilierung

| **Name**           | **Typ** | **Bedeutung**                                                                                                                                                 |
| ------------------ | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **createdAt**      | String  | Zeitpunkt des Kompiliervorgangs (ISO 8601-Format, UTC).                                                                                                       |
| **diagnostics**    | Objekt  | Detaillierte Meldungen und Hinweise zu Fehlern oder Warnungen (z. B. fehlende Textbausteine).                                                                 |
| **durationMillis** | Integer | Dauer der Kompilierung in Millisekunden.                                                                                                                      |
| **errorCount**     | Integer | Anzahl der aufgetretenen Fehler                                                                                                                               |
| **status**         | String  | Ergebnisstatus des Vorgangs (z. B. `success`, `error`)                                                                                                        |
| **subshopId**      | String  | ID des Subshops, dessen Templates kompiliert wurden                                                                                                           |
| **userId**         | Integer | ID des Nutzers, der die Kompilierung gestartet hat                                                                                                            |
| **userName**       | String  | Anzeigename des Nutzers, der die Kompilierung gestartet hat. Entweder Vor- + Nachname oder “WEBSALE”, falls es sich um ein Konto handelt, das WEBSALE gehört. |
| **warningCount**   | Integer | Anzahl der aufgetretenen Warnungen                                                                                                                            |

#### Beispiel

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
    "createdAt": "2025-04-08T11:06:43.000Z",
    "diagnostics": {
        "compilation": [
            {
                "column": 33,
                "file": "/views/contact.htm",
                "line": 141,
                "message": "Function with name 'formFields' does not exist",
                "type": "error"
            },
            ...
        ],
        "translation": []
    },
    "durationMillis": 1800,
    "errorCount": 5,
    "status": "error",
    "subshopId": "deutsch",
    "userId": 1,
    "userName": " ",
    "warningCount": 0
}
```

## Methoden für die Templatekompilierung

Die folgenden Methoden ermöglichen es, den Kompilierungsprozess der Templates zu starten, den Fortschritt zu überwachen und vergangene Kompilierungsergebnisse einzusehen.

### GET templates/results

Mit dieser Methode können Sie auf eine Liste der bisherigen Kompiliervorgänge für Templates zugreifen. Jeder Eintrag enthält Angaben zum Status, zur Dauer, zur Anzahl von Fehlern und Warnungen sowie zu den verwendeten Subshops und Nutzern. Die Ergebnisse können gefiltert und sortiert werden, um gezielt bestimmte Kompiliervorgänge zu analysieren.

Damit der Endpunkt verwendet werden kann, müssen die entsprechenden Berechtigungen zum Lesen von Template-Daten vorhanden sein.

#### Beispiel

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
https://www.<ihr-shop>.de/admin/api/v1/templates/results
```

#### Antwort

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
    "endReached": true,
    "items": [
        {
            "createdAt": "2025-02-11T08:52:22.000Z",
            "diagnostics": {
                "compilation": [],
                "translation": []
            },
            "durationMillis": 4233,
            "errorCount": 0,
            "status": "success",
            "subshopId": "english",
            "userId": 1,
            "userName": " ",
            "warningCount": 0
        },
        ...
    ],
    "nextPageToken": "NQ",
    "totalCount": 6
}
```

#### Filterfelder

`createdAt`, `duration`, `errorCount`, `warningCount`, `user`, `subshopId`

#### Sortierfelder

`createdAt`, `duration`, `durationMillis`, `errorCount`, `warningCount`, `subshopId`, `status`

#### Fehlercodes

| **Fehler**       | **Typ**             | **Grund**                                                                       |                                                |   |
| ---------------- | ------------------- | ------------------------------------------------------------------------------- | ---------------------------------------------- | - |
| 401 Unauthorized |                     | Nicht autorisiert: Sie sind nicht angemeldet.                                   |                                                |   |
| 403 Forbidden    |                     | Sie verfügen nicht über die erforderlichen Rechte zum Lesen von Template-Daten. |                                                |   |
| 400 Bad Request  | "invalidValue"      | `size` ∉ \[1;300]                                                               | `pageToken` ist keine Zahl oder kleiner als 0. |   |
| 400 Bad Request  | "unknownDataField"  | Ein Filter- oder Sortierfeld ist ungültig.                                      |                                                |   |
| 400 Bad Request  | "unknownOperation"  | Ein Filtertyp ist ungültig.                                                     |                                                |   |
| 400 Bad Request  | "invalidCharacters" | `size` ist keine Ganzzahl. <br /> Ein Filterwert ist ungültig.                  |                                                |   |
| 400 Bad Request  | "syntaxError"       | `sort` enthält mehr als einen oder keinen ":".                                  |                                                |   |

### GET templates/compilationSteps

Mit dieser Methode erhalten Sie die Gesamtanzahl der Kompilierungsschritte, die beim Erstellen der Templates durchgeführt werden.

Dabei wird jeder Template-Datei ein fester Dreierschritt zugeordnet: Übersetzen, Parsen und Linken. Die Antwort gibt also die Anzahl der Dateien × 3 zurück.

Damit der Endpunkt verwendet werden kann, müssen die entsprechenden Berechtigungen zum Lesen von Template-Daten vorhanden sein.

#### Beispiel

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
https://www.<ihr-shop>.de/admin/api/v1/templates/compilationSteps
```

#### Antwort

In diesem Beispiel wurden 4 Templates verarbeitet, wobei jeder Kompilierungsvorgang aus 3 Schritten besteht (Übersetzen, Parsen, Linken), was insgesamt 12 Schritte ergibt.

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
    "compilationSteps": 12
}
```

#### Fehlercodes

| **Fehler**              | **Typ**         | **Grund**                                                                       |
| ----------------------- | --------------- | ------------------------------------------------------------------------------- |
| 401 Unauthorized        |                 | Nicht autorisiert: Sie sind nicht angemeldet.                                   |
| 403 Forbidden           |                 | Sie verfügen nicht über die erforderlichen Rechte zum Lesen von Template-Daten. |
| 503 Service Unavailable | "internalError" | Template-Dateien konnten nicht gelesen werden.                                  |

### GET templates/compile

Diese Methode gibt den aktuellen Status des laufenden Kompilierungsvorgangs zurück. Solange die Kompilierung noch nicht abgeschlossen ist, enthält die Antwort Informationen über den Fortschritt. Nach Abschluss liefert der Endpunkt zusätzlich Details zu möglichen Warnungen oder Fehlern.

Um diese Methode verwenden zu können, müssen entsprechende Berechtigungen zum Lesen von Template-Daten vorhanden sein.

#### Beispiel

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
https://www.<ihr-shop>.de/admin/api/v1/templates/compile
```

#### Antwort (die Kompilierung ist noch nicht fertig)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
    "current": 240,
    "progress": 0,
    "running": true,
    "total": 240
}
```

#### Antwort (die Kompilierung ist fertig)

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
    "diagnostics": {
        "compilation": [],
        "translation": []
    },
    "errorCount": 0,
    "running": false,
    "warningCount": 0
}
```

#### Fehlercodes

| **Fehler**              | **Typ**         | **Grund**                                                                       |
| ----------------------- | --------------- | ------------------------------------------------------------------------------- |
| 401 Unauthorized        |                 | Nicht autorisiert: Sie sind nicht angemeldet.                                   |
| 403 Forbidden           |                 | Sie verfügen nicht über die erforderlichen Rechte zum Lesen von Template-Daten. |
| 503 Service Unavailable | "internalError" | Der Server hat ungültige Daten gefunden.                                        |

### POST templates/compile

Diese Methode startet die Kompilierung und Veröffentlichung aller Templates. Dabei werden die aktuellen Textbausteine berücksichtigt und in die Templates eingebunden.

Um diesen Vorgang auszulösen, müssen entsprechende Berechtigungen zum Veröffentlichen von Template-Daten vorhanden sein.

#### Beispiel

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
https://www.<ihr-shop>.de/admin/api/v1/templates/compile
```

#### Antwort

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
    "success": true
}
```

#### Fehlercodes

| **Fehler**              | **Typ**              | **Grund**                                                                                    |
| ----------------------- | -------------------- | -------------------------------------------------------------------------------------------- |
| 401 Unauthorized        |                      | Nicht autorisiert: Sie sind nicht angemeldet.                                                |
| 403 Forbidden           |                      | Sie verfügen nicht über die erforderlichen Rechte zum Veröffentlichen von Template-Daten.    |
| 503 Service Unavailable | "serviceUnavailable" | `TemplateCompilerUrl` konnte nicht gefunden werden, oder das Kompilieren ist fehlgeschlagen. |

## Support

Bei technischen Fragen und Hilfestellungen ist unser Support-Team für Sie erreichbar: [Zum Kundenportal](https://websale.atlassian.net/servicedesk/customer/portal/6)

Bitte senden Sie uns eine möglichst detaillierte Beschreibung sowie Screenshots, Requests/Antworten, damit wir Ihre Anfrage zeitnah und zielführend beantworten können.
