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

> Datenimporte über die Admin Interface API starten, pausieren, fortsetzen, abbrechen und den aktuellen Fortschritt einzelner Services abfragen.

Der Endpunkt `import/` stellt eine Schnittstelle für den Import von Daten in das System bereit. Über die API können Importvorgänge gestartet, pausiert, fortgesetzt, abgebrochen und der aktuelle Fortschritt abgefragt werden.

***

## Unterstützte Methoden

Angabe aller unterstützten Methoden.

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

## Allgemein

### Unterstützte Services und Formate

Der Endpunkt `import/` stellt eine Schnittstelle für den Import von Daten in das System bereit. Über die API können Importvorgänge gestartet, pausiert, fortgesetzt, abgebrochen und der aktuelle Fortschritt abgefragt werden.

Aktuell wird die Importfunktion 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`            |
| `voucher`              | `json`, `csv`            |
| `voucherPreset`        | `json`, `csv`            |
| `voucherTemplate`      | `json`, `csv`            |

## Methoden für den Datenimport

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

Dieser Endpunkt liefert den aktuellen Status eines laufenden oder zuletzt ausgeführten Importprozesses für einen angegebenen Service (z. B. `newsletterSubscriber`).

Die Antwort enthält Detailinformationen zum Fortschritt, zu verarbeiteten und fehlerhaften Datensätzen, zum Startzeitpunkt sowie – sofern vorhanden – zur Endzeit des Imports.

Der Status eines Importvorgangs wird über numerische Werte abgebildet:\
`0 = READY`\
`1 = STARTING`\
`2 = RUNNING`\
`3 = PAUSED`\
`4 = CANCELED`\
`5 = FINISHED`\
`6 = ERROR`

Diese Statuswerte geben Aufschluss über den aktuellen Fortschritt oder das Ergebnis eines Imports.

Für den Zugriff sind entsprechende Berechtigungen für den jeweiligen Service erforderlich – entweder Schreib- **und** Erstellrechte oder ein Administratorzugang mit Vollzugriff.

#### Beispiel

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

#### Antwort

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
    "duration": 2,
    "end": "",
    "failed": 0,
    "globalError": 0,
    "importErrors": [],
    "lastError": "",
    "percentage": 60,
    "processed": 3,
    "start": "2025-02-19T13:31:40.000000000Z",
    "status": 2,
    "total": 5
}
```

#### Fehlercodes

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

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

Dieser Endpunkt startet den Importprozess für einen angegebenen Service. Die hochzuladenden Daten (z. B. als JSON oder CSV) werden im Request-Body übergeben. Falls bereits ein Importprozess für den Service läuft, wird dieser automatisch abgebrochen, bevor der neue Import gestartet wird.

Die Antwort liefert unmittelbar den aktuellen Status des gestarteten Imports. Enthalten sind Informationen zum Fortschritt, zur Anzahl verarbeiteter und fehlerhafter Datensätze sowie zu Start- und Endzeiten. Der Statuswert wird als numerische Codierung gemäß der Import-Definition zurückgegeben.

Zum Starten eines Imports sind Schreib- und Erstellberechtigungen für den jeweiligen Service erforderlich (z. B. Newsletter). Alternativ ist ein Administratorzugang mit Vollzugriff notwendig.

#### Query-Parameter

| **Parameter** | **Pflicht** | **Beschreibung**                                                                                                                          |
| ------------- | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| `format`      | Nein        | Das Datenformat der Import-Datei (z. B. `json`, `csv`). Die unterstützten Formate hängen vom jeweiligen Service ab (siehe Abschnitt 2.1). |
| `sendMail`    | Nein        | Nur für den Service `adminUser`: Steuert, ob eine E-Mail an die importierten Benutzer gesendet wird.                                      |

#### Beispiel

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

#### Request Body

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
[
    {
        "blacklisted": false,
        "createdAt": "2025-02-04T15:05:24.000Z",
        "createdBy": 0,
        "email": "subscriber@websale.de",
        "fields": {
            "firstName": "fda",
            "lastName": "fafdsa",
            "salutation": "1"
        },
        "id": 2,
        "isImport": true,
        "subshopId": "deutsch",
        "targetGroupIds": [
            1,
            2,
            3
        ]
    },
    {
        "blacklisted": true,
        "createdAt": "2025-02-04T16:06:23.000Z",
        "createdBy": 1,
        "email": "foo@example.com",
        "fields": {},
        "id": 3,
        "isImport": false,
        "subshopId": "deutsch",
        "targetGroupIds": [
            1
        ]
    },
    ...
]
```

#### Antwort

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
    "duration": 1,
    "end": "2025-04-28T11:55:13.000000000Z",
    "failed": 9,
    "globalError": 0,
    "importErrors": [
        {
            "errors": [
                {
                    "entryId": "",
                    "error": 0,
                    "field": "salutation"
                },
                {
                    "entryId": "",
                    "error": 0,
                    "field": "lastName"
                },
                {
                    "entryId": "",
                    "error": 0,
                    "field": "firstName"
                }
            ],
            "index": 1
        },
        {
            "errors": [
                {
                    "entryId": "",
                    "error": 0,
                    "field": "salutation"
                },
                {
                    "entryId": "",
                    "error": 0,
                    "field": "lastName"
                },
                {
                    "entryId": "",
                    "error": 0,
                    "field": "firstName"
                }
            ],
            "index": 3
        },
        ...
    ],
    "lastError": "",
    "percentage": 100,
    "processed": 12,
    "start": "2025-04-28T11:55:12.000000000Z",
    "status": 5,
    "total": 12
}
```

#### Fehlercodes

| **Fehler**              | **Typ**              | **Grund**                                                                                                                                                                                                                                                                                     |
| ----------------------- | -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 401 Unauthorized        |                      | Nicht autorisiert: Sie sind nicht angemeldet oder verfügen nicht über die erforderlichen Rechte zum Schreiben oder Erstellen der Daten des Services.                                                                                                                                          |
| 400 Bad Request         |                      | `service` ist unbekannt. <br /> Der Service unterstützt das `format` nicht.                                                                                                                                                                                                                   |
| 503 Service Unavailable | "serviceUnavailable" | Der Importprozess konnte nicht getriggert werden.                                                                                                                                                                                                                                             |
| 503 Service Unavailable | "internalError"      | Redis hat keinen Status geliefert.<br />Der interne `FileService` kann nicht erreicht werden.<br />Request konnte nicht in einer Datei gespeichert werden.<br />Der Status konnte nicht in Redis aktualisiert werden.<br />Der Importprozess wurde nicht innerhalb von 10 Sekunden gestartet. |

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

Dieser Endpunkt pausiert einen laufenden Importprozess für einen angegebenen Service.

Die Antwort enthält den aktuellen Status des pausierten Prozesses einschließlich der verarbeiteten Datensätze, des Fortschritts und eventueller Fehler. Nach erfolgreichen Pausieren wird der Statuswert auf `PAUSED` (3) gesetzt.

Zum Pausieren eines Imports sind Schreib- und Erstellberechtigungen für den jeweiligen Service erforderlich (z. B. Newsletter). Alternativ ist ein Administratorzugang mit Vollzugriff notwendig.

#### Beispiel

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

#### Antwort

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
    "duration": 0,
    "end": "",
    "failed": 0,
    "globalError": 0,
    "importErrors": [],
    "lastError": "",
    "percentage": 60,
    "processed": 3,
    "start": "2025-02-19T13:39:17.000000000Z",
    "status": 3,
    "total": 5
}
```

#### Fehlercodes

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

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

Dieser Endpunkt führt einen pausierten Importprozess für einen angegebenen Service fort.

Die Antwort enthält den aktuellen Status des fortgeführten Prozesses einschließlich der verarbeiteten Datensätze, des Fortschritts und eventueller Fehler.

Zum Fortfahren eines Imports sind Schreib- und Erstellberechtigungen für den jeweiligen Service erforderlich (z. B. Newsletter). Alternativ ist ein Administratorzugang mit Vollzugriff notwendig.

#### Beispiel

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

#### Antwort

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
    "duration": 0,
    "end": "",
    "failed": 0,
    "globalError": 0,
    "importErrors": [],
    "lastError": "",
    "percentage": 60,
    "processed": 3,
    "start": "2025-02-19T13:39:17.000000000Z",
    "status": 2,
    "total": 5
}
```

#### Fehlercodes

| **Fehler**              | **Typ**         | **Grund**                                                                                                                |
| ----------------------- | --------------- | ------------------------------------------------------------------------------------------------------------------------ |
| 401 Unauthorized        |                 | Nicht autorisiert: Sie sind nicht angemeldet oder verfügen nicht über die erforderlichen Rechte.                         |
| 400 Bad Request         |                 | `service` ist unbekannt.                                                                                                 |
| 404 Not found           |                 | Der Prozess befindet sich nicht im Status PAUSED.                                                                        |
| 503 Service Unavailable | "internalError" | Redis hat keinen Status geliefert.<br />Redis kann nicht erreicht werden.<br />Der Prozess konnte nicht gestoppt werden. |

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

Dieser Endpunkt bricht einen laufenden Importprozess für einen angegebenen Service ab.

Die Antwort enthält den aktuellen Status des abgebrochenen Prozesses einschließlich der verarbeiteten Datensätze, des Fortschritts und eventueller Fehler. Nach einem erfolgreichen Abbruch wird der Statuswert auf `CANCELED` (4) gesetzt.

Zum Abbrechen eines Imports sind Schreib- und Erstellberechtigungen für den jeweiligen Service erforderlich (z. B. Newsletter). Alternativ ist ein Administratorzugang mit Vollzugriff notwendig.

#### Beispiel

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

#### Antwort

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
    "duration": 2,
    "end": "2025-02-19T13:39:19.000000000Z",
    "failed": 0,
    "globalError": 0,
    "importErrors": [],
    "lastError": "",
    "percentage": 60,
    "processed": 3,
    "start": "2025-02-19T13:39:17.000000000Z",
    "status": 4,
    "total": 5
}
```

#### Fehlercodes

| **Fehler**              | **Typ**         | **Grund**                                                                                                                |
| ----------------------- | --------------- | ------------------------------------------------------------------------------------------------------------------------ |
| 401 Unauthorized        |                 | Nicht autorisiert: Sie sind nicht angemeldet oder verfügen nicht über die erforderlichen Rechte.                         |
| 400 Bad Request         |                 | `service` ist unbekannt.                                                                                                 |
| 404 Not found           |                 | Der Prozess läuft nicht oder befindet sich nicht in einem abbrechbaren Status (RUNNING, STARTING oder PAUSED).           |
| 503 Service Unavailable | "internalError" | Redis hat keinen Status geliefert.<br />Redis kann nicht erreicht werden.<br />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.
