> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kameleoon.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Produkte importieren und aktualisieren

> Importieren oder aktualisieren Sie Ihren Produktkatalog in Kameleoon mit dem bevorzugten Endpoint für Kataloge mit mehr als 50K Produkten.

Dieser Endpoint importiert Ihre Produkte in Ihr Kameleoon-Konto. Es ist die bevorzugte Methode zum Importieren Ihres Katalogs, wenn Sie mehr als 50K Produkte haben.

Wir empfehlen dringend, diesen Endpoint auch zum Aktualisieren der Produktliste und ihrer Eigenschaften zu verwenden, anstatt Ihren Katalog täglich vollständig neu zu importieren.

<Warning>
  Wenn Sie sich vollständig auf diesen Endpoint zum Importieren Ihres Katalogs verlassen, stellen Sie sicher, dass alle Kategorien zuerst über den [Endpoint zum Importieren von Kategorien](./import-categories) importiert wurden. Alle Produkte ohne bekannte Kategorie werden während des Importvorgangs ignoriert.
</Warning>

Die Daten werden als [JSON-Zeichenfolge](#beispiel-json-anfrage) im Anfragetext gesendet.

## Ratenbegrenzung

* Die Begrenzung für API-Anfragen (Rate Limit) ist auf 40 Anfragen pro Minute festgelegt, mit maximal 1 Anfrage alle 1,5 Sekunden.
* Die Gewichtsbegrenzung für API-Anfragen (Weight Limit) ist auf 35 Megabyte pro Anfrage begrenzt.

## HTTP-Anfrage

```
PUT https://api.products.kameleoon.com/import/products
```

## Liste der Abfrageparameter

| Parameter     | Typ    | Erforderlich | Beschreibung                                                                                                                                                                                                 |
| ------------- | ------ | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `shop_id`     | String | Ja           | Ihr Store Key. Sie finden ihn in **Recommendations** > **Settings** > **Store settings** in der Kameleoon App. Sie können sich auch an Ihren Customer Success Manager wenden, um den Schlüssel zu erhalten.  |
| `shop_secret` | String | Ja           | Ihr Secret Key. Sie finden ihn in **Recommendations** > **Settings** > **Store settings** in der Kameleoon App. Sie können sich auch an Ihren Customer Success Manager wenden, um den Schlüssel zu erhalten. |
| `items`       | List   | Ja           | Eine Liste von Produktartikeln. In [dieser Tabelle](#liste-der-parameter-für-das-items-objekt) finden Sie die für `items` erforderlichen Parameter                                                           |
| `webhook`     | String | Nein         | Die Webhook-URL ist der Ort, an den nach Abschluss des Imports eine POST-Anfrage gesendet wird.                                                                                                              |

<Note>
  Der Zweck des `webhook` besteht darin, den Entwickler zu benachrichtigen, sobald eine Anfrage abgeschlossen wurde. Sobald alle Produkte im API-Aufruf importiert und vollständig verfügbar sind, wird eine POST-Anfrage an den festgelegten Webhook gesendet.

  Beispiel für eine erfolgreiche Anfrage:

  ```json theme={null}
  {
  	"status": "success"
  }
  ```

  Beispiel für eine erfolglose Anfrage:

  ```json theme={null}
  {
  	"status": "error", 
  	"message": "MESSAGE"
  }
  ```
</Note>

## Liste der Parameter für das `items`-Objekt

<Warning>
  Wenn Sie nur bestimmte Produkte aktualisieren möchten, müssen Sie alle obligatorischen Parameterwerte für jedes Produkt in der Anfrage angeben. Wenn obligatorische Eigenschaften eines Produkts weggelassen werden, wird das Produkt während des Imports ignoriert und es werden keine Änderungen in unserer Datenbank vorgenommen. Wenn Sie beispielsweise nur den Preis eines Produkts aktualisieren möchten, müssen Sie alle obligatorischen Parameter einschließen, wie category, name, picture, tags usw.

  Bei nicht obligatorischen Eigenschaften führen weggelassene Werte dazu, dass diese Eigenschaften aus unserer Datenbank entfernt werden.
</Warning>

| Parameter        | Typ                       | Erforderlich | Beschreibung                                                                                                                                                                                                                                                                             |
| ---------------- | ------------------------- | ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `id`             | String (max. Länge 64)    | Ja           | Eine eindeutige ID, die dem Artikel zugewiesen wird                                                                                                                                                                                                                                      |
| `group_id`       | String (max. Länge 64)    | Optional     | Die der Artikelgruppe zugeordnete ID                                                                                                                                                                                                                                                     |
| `name`           | String (max. Länge 255)   | Ja           | Der Name des Artikels                                                                                                                                                                                                                                                                    |
| `price`          | Float (muss positiv sein) | Ja           | Der Preis des Artikels. Um Preise an mehreren Standorten anzugeben, verwenden Sie stattdessen das [locations](#liste-der-parameter-für-das-locations-objekt)-Objekt.                                                                                                                     |
| `oldprice`       | Float (muss positiv sein) | Optional     | Der vorherige Preis des Artikels                                                                                                                                                                                                                                                         |
| `currency`       | String                    | Ja           | Die Währung, in der das Preisfeld angegeben wurde                                                                                                                                                                                                                                        |
| `url`            | String                    | Ja           | Eine URL, die dem Artikel zugeordnet werden soll                                                                                                                                                                                                                                         |
| `picture`        | String                    | Ja           | Eine URL, die ein Bild des Artikels enthält                                                                                                                                                                                                                                              |
| `available`      | Boolean                   | Ja           | Gibt an, ob der Artikel zum Kauf verfügbar ist. Verwenden Sie den Endpoint update products, um dies später zu aktualisieren                                                                                                                                                              |
| `categories`     | Array of strings          | Ja           | Jede Zeichenfolge stellt eine [Kategorie](./import-categories)-ID dar, zu der dieses Produkt gehört.                                                                                                                                                                                     |
| `locations`      | Array                     | Optional     | Array von Artikelpreisen an verschiedenen Standorten. In [dieser Tabelle](#liste-der-parameter-für-das-locations-objekt) finden Sie die für `locations` erforderlichen Parameter                                                                                                         |
| `accessories`    | Array of strings          | Optional     | Enthält die Produkt-IDs der zugehörigen Zubehörteile für den Artikel                                                                                                                                                                                                                     |
| `seasonality`    | Array of integers         | Optional     | Stellt die Monate des Jahres dar (Januar=1, Dezember=12), in denen Sie diesen Artikel bewerben möchten                                                                                                                                                                                   |
| `brand`          | String                    | Optional     | Der Markenname des Artikels                                                                                                                                                                                                                                                              |
| `barcode`        | Integer                   | Optional     | Ein Barcode-Wert für den Artikel                                                                                                                                                                                                                                                         |
| `price_margin`   | Integer                   | Optional     | Die Preismarge für den Artikel                                                                                                                                                                                                                                                           |
| `tags`           | Array of strings          | Optional     | Eine Liste von Schlüsselwörtern, die Sie dem Artikel zuordnen möchten                                                                                                                                                                                                                    |
| `is_child`       | Boolean                   | Optional     | Gibt an, ob dieser Artikel ein Kind eines anderen Artikels ist                                                                                                                                                                                                                           |
| `is_fashion`     | Boolean                   | Optional     | Gibt an, ob dieser Artikel ein Modeartikel ist                                                                                                                                                                                                                                           |
| `is_new`         | Boolean                   | Optional     | Gibt an, ob dieser Artikel ein neuer Artikel ist                                                                                                                                                                                                                                         |
| `fashion`        | Object                    | Optional     | Definiert mehrere zusätzliche Parameter für Modeartikel. In [dieser Tabelle](#liste-der-parameter-für-das-fashion-objekt) finden Sie die für `fashion` erforderlichen Parameter                                                                                                          |
| `stock_quantity` | Integer                   | Optional     | Die Lagermenge des Artikels                                                                                                                                                                                                                                                              |
| `type_prefix`    | String                    | Optional     | Ein Präfix zur Unterscheidung des Artikeltyps                                                                                                                                                                                                                                            |
| `model`          | String                    | Optional     | Der Modellname des Artikels                                                                                                                                                                                                                                                              |
| `params`         | Object                    | Optional     | Fügen Sie benutzerdefinierte Parameter hinzu. In [dieser Tabelle](#liste-der-parameter-für-das-params-objekt) finden Sie die für `params` erforderlichen Parameter                                                                                                                       |
| `merchant`       | String                    | Optional     | Der Händler, den Sie dem Artikel zuordnen möchten                                                                                                                                                                                                                                        |
| `rating`         | Integer                   | Optional     | Ein Wert zwischen 1 und 5. Die Benutzerbewertung, die Sie dem Artikel zuweisen möchten                                                                                                                                                                                                   |
| `leftovers`      | String                    | Optional     | Eine Beschreibung des verbleibenden Bestands. Beispielsweise stellt "one" ein Produkt dar, das als einzelne Einheit verfügbar ist, "few" steht für Produkte in begrenzten Mengen (bis zu 10 Einheiten) und "lot" für ein Produkt, das in Mengen von 10 oder mehr Einheiten verfügbar ist |
| `creation_date`  | String                    | Optional     | Muss im Format `yyyy-mm-dd` sein. Dies ist das Erstellungsdatum des Artikels                                                                                                                                                                                                             |

## Liste der Parameter für das `locations`-Objekt

Verwenden Sie das `location`s-Objekt, um Preis-, Bestands- und andere standortspezifische Informationen bereitzustellen, wenn Sie mehrere Standorte haben. Übergeben Sie das locations-Objekt innerhalb des Produkt-items-Objekts.

| Parameter        | Typ                       | Erforderlich | Beschreibung                                                                                                                                                                 |
| ---------------- | ------------------------- | ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `location`       | String                    | Ja           | Der Standort, für den Sie einen Preis angeben möchten. Dieses Feld ist erforderlich, wenn das Feld locations angegeben wird.                                                 |
| `price`          | Float (muss positiv sein) | Optional     | Der Preis an diesem Standort.                                                                                                                                                |
| `oldprice`       | Float (muss positiv sein) | Optional     | Der vorherige Preis des Artikels (zum Beispiel der reguläre Preis eines Sonderangebots).                                                                                     |
| `stock_quantity` | Int (muss positiv sein)   | Optional     | Die Lagermenge des Artikels.                                                                                                                                                 |
| `sizes`          | Array of Strings          | Optional     | Eine Liste von Größenoptionen für den Artikel.                                                                                                                               |
| `weight`         | Int (muss positiv sein)   | Optional     | Das Gewicht des Artikels.                                                                                                                                                    |
| `delivery_types` | Object                    | Optional     | Gibt die Verfügbarkeit des Artikels an. In [dieser Tabelle](#liste-der-parameter-für-das-delivery_types-objekt) finden Sie die für `delivery_types` erforderlichen Parameter |

## Liste der Parameter für das `delivery_types`-Objekt

| Parameter  | Typ                     | Erforderlich | Beschreibung                                 |
| ---------- | ----------------------- | ------------ | -------------------------------------------- |
| `store`    | Int (muss positiv sein) | Ja           | Anzahl der im Geschäft verfügbaren Artikel   |
| `delivery` | Int (muss positiv sein) | Ja           | Anzahl der zur Lieferung verfügbaren Artikel |
| `delivery` | Int (muss positiv sein) | Ja           | Anzahl der im Lager verfügbaren Artikel      |

## Liste der Parameter für das `Params`-Objekt

Mit dem params-Objekt können Sie benutzerdefinierte Parameterwerte für den Artikel angeben. Übergeben Sie das `params`-Objekt innerhalb des Produkt-`items`-Objekts.

| Parameter | Typ              | Erforderlich | Beschreibung                       |
| --------- | ---------------- | ------------ | ---------------------------------- |
| `name`    | String           | Ja           | Der Name des Parameters            |
| `value`   | Array of Strings | Ja           | Array von Werten für den Parameter |
| `unit`    | String           | Optional     | Maßeinheit für die Werte.          |

## Liste der Parameter für das `Fashion`-Objekt

Mit dem fashion-Objekt können Sie zusätzliche Informationen zu Modeartikeln angeben. Übergeben Sie das fashion-Objekt innerhalb des Produkt-items-Objekts.

| Parameter | Typ              | Erforderlich | Beschreibung                                                                          |
| --------- | ---------------- | ------------ | ------------------------------------------------------------------------------------- |
| `gender`  | String           | Optional     | Ein Geschlecht, das dem Artikel zugeordnet wird. Zum Beispiel "m", "f" oder "female". |
| `sizes`   | Array of Strings | Optional     | Liste der Größen für den Artikel.                                                     |
| `type`    | String           | Ja           | Der Typ des Modeartikels. Zum Beispiel "jacket".                                      |

## Beispiel-JSON-Anfrage

```json theme={null}
{
    "id": "myID", // String (max 64). Required
    "group_id": "myGroup", // String (max 64). Optional
    "name": "myItem", // String (max 255). Required
    "price": "1", // Float (positive). Required
    "oldprice": "2", // Float (positive). Optional
    "currency": "USD", // Currency code: USD, EUR. Required.
    "url": "https://example.com/product", // String (URL). Required
    "picture": "https://example.com/product/image.png", // String (URL). Required
    "available": true, // Boolean (true, false). Required
    "categories": ["ID1", "ID2", ...], // Array of categories IDs. Required.
    "locations": [ 
    {
        "location": "USA",
        "delivery_types": {
            "store": 10,
            "stock": 50  }
    },
    {
        "location": "CAN",
        "price": 60
    }
    ], // Array of prices in locations. See below. Optional
    "accessories": ["ID", "ID", ...], // Array of product IDs. Optional
    "seasonality": [1, 2, ...], // Array of integers (months: 1-12). Optional
    "brand": "...", // String. Optional
    "barcode": "...", // String. Optional
    "price_margin": "...",// Integer. Optional
    "tags": ["TAG1", "TAG2", ...], // Array of strings. Optional
    "is_child": false, // Boolean (true, false). Optional
    "is_fashion": true, // Boolean (true, false). Optional
    "is_new": false, // Boolean (true, false). Optional
    "fashion": {
        "gender": "m",
        "sizes": ["48", "50", "52"],
        "type": "jacket"
    }, // Object. See below. Optional
    "stock_quantity": 60, // Int (positive). Optional
    "type_prefix": "...", // String. Optional
    "model": "Widget 3000", // String. Optional
    "params": [ 
    {
        "name": "Param 1",
        "value": ["bluetooth", "wi-fi"]
    }, 
    {
        "name": "Param 2",
        "value": [23]
    }
    ], // Array of params data. See below. Optional
    "merchant": "...", // String. Optional
    "rating": 4, // Integer (1-5). Optional
    "leftovers": "one", // String (one, few, lot). Optional
    "creation_date": "...", // String. Optional. Format yyyy-mm-dd,
}
```
