Zum Hauptinhalt springen
PUT
/
endpoint
Produkte importieren und aktualisieren
curl --request PUT \
  --url https://api.example.com/endpoint
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.
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 importiert wurden. Alle Produkte ohne bekannte Kategorie werden während des Importvorgangs ignoriert.
Die Daten werden als JSON-Zeichenfolge 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

ParameterTypErforderlichBeschreibung
shop_idStringJaIhr 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_secretStringJaIhr 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.
itemsListJaEine Liste von Produktartikeln. In dieser Tabelle finden Sie die für items erforderlichen Parameter
webhookStringNeinDie Webhook-URL ist der Ort, an den nach Abschluss des Imports eine POST-Anfrage gesendet wird.
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:
{
	"status": "success"
}
Beispiel für eine erfolglose Anfrage:
{
	"status": "error", 
	"message": "MESSAGE"
}

Liste der Parameter für das items-Objekt

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.
ParameterTypErforderlichBeschreibung
idString (max. Länge 64)JaEine eindeutige ID, die dem Artikel zugewiesen wird
group_idString (max. Länge 64)OptionalDie der Artikelgruppe zugeordnete ID
nameString (max. Länge 255)JaDer Name des Artikels
priceFloat (muss positiv sein)JaDer Preis des Artikels. Um Preise an mehreren Standorten anzugeben, verwenden Sie stattdessen das locations-Objekt.
oldpriceFloat (muss positiv sein)OptionalDer vorherige Preis des Artikels
currencyStringJaDie Währung, in der das Preisfeld angegeben wurde
urlStringJaEine URL, die dem Artikel zugeordnet werden soll
pictureStringJaEine URL, die ein Bild des Artikels enthält
availableBooleanJaGibt an, ob der Artikel zum Kauf verfügbar ist. Verwenden Sie den Endpoint update products, um dies später zu aktualisieren
categoriesArray of stringsJaJede Zeichenfolge stellt eine Kategorie-ID dar, zu der dieses Produkt gehört.
locationsArrayOptionalArray von Artikelpreisen an verschiedenen Standorten. In dieser Tabelle finden Sie die für locations erforderlichen Parameter
accessoriesArray of stringsOptionalEnthält die Produkt-IDs der zugehörigen Zubehörteile für den Artikel
seasonalityArray of integersOptionalStellt die Monate des Jahres dar (Januar=1, Dezember=12), in denen Sie diesen Artikel bewerben möchten
brandStringOptionalDer Markenname des Artikels
barcodeIntegerOptionalEin Barcode-Wert für den Artikel
price_marginIntegerOptionalDie Preismarge für den Artikel
tagsArray of stringsOptionalEine Liste von Schlüsselwörtern, die Sie dem Artikel zuordnen möchten
is_childBooleanOptionalGibt an, ob dieser Artikel ein Kind eines anderen Artikels ist
is_fashionBooleanOptionalGibt an, ob dieser Artikel ein Modeartikel ist
is_newBooleanOptionalGibt an, ob dieser Artikel ein neuer Artikel ist
fashionObjectOptionalDefiniert mehrere zusätzliche Parameter für Modeartikel. In dieser Tabelle finden Sie die für fashion erforderlichen Parameter
stock_quantityIntegerOptionalDie Lagermenge des Artikels
type_prefixStringOptionalEin Präfix zur Unterscheidung des Artikeltyps
modelStringOptionalDer Modellname des Artikels
paramsObjectOptionalFügen Sie benutzerdefinierte Parameter hinzu. In dieser Tabelle finden Sie die für params erforderlichen Parameter
merchantStringOptionalDer Händler, den Sie dem Artikel zuordnen möchten
ratingIntegerOptionalEin Wert zwischen 1 und 5. Die Benutzerbewertung, die Sie dem Artikel zuweisen möchten
leftoversStringOptionalEine 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_dateStringOptionalMuss im Format yyyy-mm-dd sein. Dies ist das Erstellungsdatum des Artikels

Liste der Parameter für das locations-Objekt

Verwenden Sie das locations-Objekt, um Preis-, Bestands- und andere standortspezifische Informationen bereitzustellen, wenn Sie mehrere Standorte haben. Übergeben Sie das locations-Objekt innerhalb des Produkt-items-Objekts.
ParameterTypErforderlichBeschreibung
locationStringJaDer Standort, für den Sie einen Preis angeben möchten. Dieses Feld ist erforderlich, wenn das Feld locations angegeben wird.
priceFloat (muss positiv sein)OptionalDer Preis an diesem Standort.
oldpriceFloat (muss positiv sein)OptionalDer vorherige Preis des Artikels (zum Beispiel der reguläre Preis eines Sonderangebots).
stock_quantityInt (muss positiv sein)OptionalDie Lagermenge des Artikels.
sizesArray of StringsOptionalEine Liste von Größenoptionen für den Artikel.
weightInt (muss positiv sein)OptionalDas Gewicht des Artikels.
delivery_typesObjectOptionalGibt die Verfügbarkeit des Artikels an. In dieser Tabelle finden Sie die für delivery_types erforderlichen Parameter

Liste der Parameter für das delivery_types-Objekt

ParameterTypErforderlichBeschreibung
storeInt (muss positiv sein)JaAnzahl der im Geschäft verfügbaren Artikel
deliveryInt (muss positiv sein)JaAnzahl der zur Lieferung verfügbaren Artikel
deliveryInt (muss positiv sein)JaAnzahl 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.
ParameterTypErforderlichBeschreibung
nameStringJaDer Name des Parameters
valueArray of StringsJaArray von Werten für den Parameter
unitStringOptionalMaß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.
ParameterTypErforderlichBeschreibung
genderStringOptionalEin Geschlecht, das dem Artikel zugeordnet wird. Zum Beispiel “m”, “f” oder “female”.
sizesArray of StringsOptionalListe der Größen für den Artikel.
typeStringJaDer Typ des Modeartikels. Zum Beispiel “jacket”.

Beispiel-JSON-Anfrage

{
    "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,
}