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

> Daten wie Bestellungen oder Newsletter-Abonnenten über die Reporting-Endpunkte der Admin Interface API exportieren und den Status verfolgen.

Die Reporting-API stellt für bestimmte Services die Möglichkeit bereit, Daten zu exportieren (z. B. Newsletter-Abonnenten oder Bestellungen). Der Export kann in unterschiedlichen Formaten erfolgen, abhängig vom jeweiligen Service.

Außerdem liefert die API Statusinformationen über den Fortschritt des Exportprozesses. Die folgende Übersicht zeigt, welche Services aktuell unterstützt werden und wie die Status-Codes zu interpretieren sind.

***

## Unterstützte Methoden

Angabe aller unterstützten Methoden.

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

## Allgemein

### Unterstützte Services und Formate

Der Endpunkt `report/` stellt eine einheitliche Schnittstelle zur Verfügung, mit der sich Daten aus dem Shop-System exportieren lassen. Die API ermöglicht es, Exportprozesse gezielt zu starten, deren Fortschritt abzufragen und bei Bedarf abzubrechen.

Aktuell wird die Exportfunktion für die folgenden Services unterstützt:

| **Service**            | **Unterstützte Formate** |
| ---------------------- | ------------------------ |
| `adminUser`            | `json`, `csv`            |
| `category`             | `json`, `csv`            |
| `customerAccount`      | `json`, `csv`            |
| `dataFeed`             | `json`, `csv`            |
| `dataFeedTemplate`     | `json`, `csv`            |
| `inquiry`              | `json`, `csv`, `xml`     |
| `inventory`            | `json`, `csv`            |
| `order`                | `json`, `xml`            |
| `newsletterSubscriber` | `json`, `csv`            |
| `product`              | `json`, `csv`            |
| `productRating`        | `json`, `csv`            |
| `seoViews`             | `json`, `csv`            |
| `transaction`          | `json`, `csv`            |
| `voucher`              | `json`, `csv`            |
| `voucherPreset`        | `json`, `csv`            |
| `voucherTemplate`      | `json`, `csv`            |

### Statuswerte des Exportprozesses

Exportprozesse laufen asynchron im Hintergrund. Während des Exports wird der aktuelle `Reportstatus` fortlaufend aktualisiert. Der Status eines Exportvorgangs kann folgende Werte annehmen:

| **Wert** | **Bezeichnung** | **Bedeutung**                                          |
| -------- | --------------- | ------------------------------------------------------ |
| `0`      | `Ready`         | Der Exportprozess ist bereit zur Ausführung.           |
| `1`      | `Starting`      | Der Prozess wurde gestartet, aber noch nicht begonnen. |
| `2`      | `Running`       | Der Export wird derzeit ausgeführt.                    |
| `3`      | `Paused`        | Der Export ist derzeit pausiert.                       |
| `4`      | `Canceled`      | Der Exportprozess wurde manuell abgebrochen.           |
| `5`      | `Finished`      | Der Export wurde erfolgreich abgeschlossen.            |
| `6`      | `Error`         | Beim Export ist ein Fehler aufgetreten.                |

## Methoden für den Datenexport

### GET report/\{service}/status

Mit diesem Endpunkt kann der aktuelle Status eines Exportprozesses abgefragt werden. Dies umfasst u. a. Fortschritt, Anzahl verarbeiteter Einträge, Start- und Endzeit sowie den Link zur exportierten Datei (sofern der Export abgeschlossen wurde).

Für den Export müssen die Leseberechtigungen für den jeweiligen Service 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/report/order/status
```

#### Antwort

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
    "duration": 0,
    "end": "",
    "fileName": "orders_947bbbc6b27914ea35c0.json",
    "fileUrl": "https://content.<ihr-shop>.de/report/orders_947bbbc6b27914ea35c0.json",
    "hasProgress": false,
    "lastError": "",
    "percentage": 100,
    "processed": 4,
    "start": "2025-02-19T09:15:15.000000000Z",
    "status": 2,
    "total": 4
}
```

#### Fehlercodes

|                         |                 |                                                                                                                           |
| ----------------------- | --------------- | ------------------------------------------------------------------------------------------------------------------------- |
| **Fehler**              | **Typ**         | **Grund**                                                                                                                 |
| 401 Unauthorized        |                 | Nicht autorisiert: Sie sind nicht angemeldet oder verfügen nicht über die erforderlichen Rechte zum Starten des Services. |
| 400 Bad Request         |                 | `service` ist unbekannt.                                                                                                  |
| 503 Service Unavailable | "internalError" | Redis hat keinen Status geliefert.                                                                                        |

### POST report/\{service}/start

Mit diesem Endpunkt wird der Exportprozess für den angegebenen Service gestartet.

Optional können Filter und das gewünschte Ausgabeformat (`json`, `csv` etc.) über Query-Parameter angegeben werden.

Damit der Export ausgelöst werden kann, müssen die Leseberechtigungen für den jeweiligen Service vorhanden sein.

Falls bereits ein Exportprozess für den Service läuft, wird dieser automatisch abgebrochen, bevor der neue Export gestartet wird.

#### Beispiel

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
https://www.<ihr-shop>.de/admin/api/v1/report/order/start?format=json&filter_gte[createdAt]=2024-11-01T00:00:00.000Z
```

#### Antwort

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
    "duration": 0,
    "end": "",
    "fileName": "orders_947bbbc6b27914ea35c0.json",
    "fileUrl": "https://content.<ihr-shop>.de/report/orders_947bbbc6b27914ea35c0.json",
    "hasProgress": false,
    "lastError": "",
    "percentage": 100,
    "processed": 4,
    "start": "2025-02-19T09:15:15.000000000Z",
    "status": 2,
    "total": 4
}
```

#### Fehlercodes

| **Fehler**              | **Typ**                         | **Grund**                                                                                                                                                   |
| ----------------------- | ------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 401 Unauthorized        |                                 | Nicht autorisiert: Sie sind nicht angemeldet oder verfügen nicht über die erforderlichen Rechte zum Lesen der Daten des Services.                           |
| 400 Bad Request         |                                 | `service` ist unbekannt. <br /> Der Service unterstützt das `format` nicht.                                                                                 |
| 503 Service Unavailable | "Service currently unavailable" | Der Exportprozess konnte nicht getriggert werden.                                                                                                           |
| 503 Service Unavailable | "internalError"                 | Redis hat keinen Status geliefert. <br /> Der Status konnte nicht in Redis aktualisiert werden. <br /> Der Status hat sich 10 Sekunden lang nicht geändert. |

### POST report/\{service}/pause

Mit diesem Endpunkt kann ein laufender Exportprozess für den angegebenen Service pausiert werden.

Um den Vorgang zu pausieren, müssen die Leseberechtigungen für den jeweiligen Service 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/report/order/pause
```

#### Antwort

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
    "duration": 0,
    "end": "",
    "fileName": "orders_947bbbc6b27914ea35c0.json",
    "fileUrl": "https://content.<ihr-shop>.de/report/orders_947bbbc6b27914ea35c0.json",
    "hasProgress": false,
    "lastError": "",
    "percentage": 100,
    "processed": 4,
    "start": "2025-02-19T09:15:15.000000000Z",
    "status": 3,
    "total": 4
}
```

#### Fehlercodes

| **Fehler**              | **Typ**         | **Grund**                                                                                                                 |
| ----------------------- | --------------- | ------------------------------------------------------------------------------------------------------------------------- |
| 401 Unauthorized        |                 | Nicht autorisiert: Sie sind nicht angemeldet oder verfügen nicht über die erforderlichen Rechte zum Starten des Services. |
| 400 Bad Request         |                 | `service` ist unbekannt.                                                                                                  |
| 404 Not found           |                 | Der Prozess läuft nicht.                                                                                                  |
| 503 Service Unavailable | "internalError" | Redis hat keinen Status geliefert.  Redis kann nicht erreicht werden.  Der Prozess konnte nicht gestoppt werden.          |

### POST report/\{service}/resume

Mit diesem Endpunkt kann ein pausierter Exportprozess für den angegebenen Service fortgefahren werden.

Um den Vorgang fortzufahren, müssen die Leseberechtigungen für den jeweiligen Service 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/report/order/resume
```

#### Antwort

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
    "duration": 0,
    "end": "",
    "fileName": "orders_947bbbc6b27914ea35c0.json",
    "fileUrl": "https://content.<ihr-shop>.de/report/orders_947bbbc6b27914ea35c0.json",
    "hasProgress": false,
    "lastError": "",
    "percentage": 100,
    "processed": 4,
    "start": "2025-02-19T09:15:15.000000000Z",
    "status": 2,
    "total": 4
}
```

#### Fehlercodes

| **Fehler**              | **Typ**         | **Grund**                                                                                                                 |
| ----------------------- | --------------- | ------------------------------------------------------------------------------------------------------------------------- |
| 401 Unauthorized        |                 | Nicht autorisiert: Sie sind nicht angemeldet oder verfügen nicht über die erforderlichen Rechte zum Starten des Services. |
| 400 Bad Request         |                 | `service` ist unbekannt.                                                                                                  |
| 404 Not found           |                 | Der Prozess ist nicht pausiert worden.                                                                                    |
| 503 Service Unavailable | "internalError" | Redis hat keinen Status geliefert.  Redis kann nicht erreicht werden.  Der Prozess konnte nicht gestoppt werden.          |

### DELETE report/\{service}/cancel

Mit diesem Endpunkt kann ein laufender Exportprozess für den angegebenen Service vorzeitig abgebrochen werden.

Um den Vorgang zu beenden, müssen die Leseberechtigungen für den jeweiligen Service 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/report/order/cancel
```

#### Antwort

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
    "duration": 0,
    "end": "2025-02-19T09:15:15.000000000Z",
    "fileName": "orders_947bbbc6b27914ea35c0.json",
    "fileUrl": "https://content.<ihr-shop>.de/report/orders_947bbbc6b27914ea35c0.json",
    "hasProgress": false,
    "lastError": "",
    "percentage": 100,
    "processed": 4,
    "start": "2025-02-19T09:15:15.000000000Z",
    "status": 4,
    "total": 4
}
```

#### Fehlercodes

| **Fehler**              | **Typ**         | **Grund**                                                                                                                 |
| ----------------------- | --------------- | ------------------------------------------------------------------------------------------------------------------------- |
| 401 Unauthorized        |                 | Nicht autorisiert: Sie sind nicht angemeldet oder verfügen nicht über die erforderlichen Rechte zum Starten des Services. |
| 400 Bad Request         |                 | `service` ist unbekannt.                                                                                                  |
| 404 Not found           |                 | Der Prozess läuft nicht.                                                                                                  |
| 503 Service Unavailable | "internalError" | Redis hat keinen Status geliefert.  Redis kann nicht erreicht werden.  Der Prozess konnte nicht gestoppt werden.          |

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