Aus dem Englischen übersetzt. Bei Abweichungen gilt die englische Seite. Auf Englisch lesen
Bestand und Preise in großen Mengen synchronisieren
Sende Mengen- und Preisänderungen für bis zu 100 SKUs pro Aufruf und lies das Ergebnis für jeden einzelnen Artikel.
Für regelmäßige Synchronisierungen aus einem ERP oder Lager ist
POST /inventory/batch der richtige Endpoint: Er adressiert Varianten über die SKU,
du musst also überhaupt keine Nembol-IDs speichern.
curl -X POST https://api.nembol.com/rest/v1/inventory/batch \
-H "Authorization: Bearer $NEMBOL_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: stock-sync-2026-07-30T22:00" \
-d '{"items": [
{"sku": "VDJ-M-001", "quantity": 12},
{"sku": "VDJ-L-001", "quantity": 0, "price": "44.90"}
]}'Das lokale Schreiben erfolgt sofort, die Übertragung an die Kanäle asynchron. Die
Antwort ist eine Operation. Artikel, die keiner Variante zugeordnet werden können, kommen in
rejected_items mit einem Grund zurück (sku_not_found, sku_ambiguous), ohne
dass der Rest fehlschlägt. Sie erscheinen außerdem als failed-Einträge in results: Die
Operation endet mit partial. Eine in deinem System umbenannte SKU taucht also in deinen
Alerts auf, statt ihre Synchronisierung stillschweigend zu beenden. Wenn sich kein Artikel anwenden lässt,
antwortet der Aufruf mit 422 no_items_applied (Gründe in
error.details.rejected_items) und nichts ändert sich.
results[] enthält einen Eintrag pro SKU und pro Kanal, auf dem das Produkt live ist,
jeweils mit channel_account_id und listing_id:
pending: in Nembol gespeichert, der Kanal hat noch nicht geantwortet;succeeded: der Kanal hat den neuen Bestand bzw. Preis;failed: der Kanal hat die Änderung abgelehnt, seine Meldung steht inerror. Die Operation wirdpartial.
Eine vorübergehende Ablehnung (z. B. Shopifys „this product is currently being
modified“, wenn zwei Schreibvorgänge gleichzeitig dasselbe Produkt erreichen, oder ein Rate-Limit)
wiederholt Nembol zuerst selbst: Während der Wiederholung bleibt das Ergebnis pending, und
nur eine Übertragung, die weiterhin fehlschlägt, endet mit failed.
So weißt du immer, ob jeder Shop den Bestand erhalten hat, und genau das verhindert
Überverkäufe: Warte auf den Webhook operation.completed (oder frage
GET /operations/{id} ab) und reagiere auf die fehlgeschlagenen Einträge. Ein Produkt, das auf keinem
Kanal live ist, erhält einen Eintrag mit channel_account_id: null, bereits succeeded:
in Nembol gespeichert, nichts zu übertragen.
Upserts für den gesamten Katalog
Um ganze Produkte (inklusive Inhalt) anzulegen oder zu aktualisieren, verwende
POST /products/batch. Der Endpoint hat dieselbe Zuordnung pro SKU (eine mehrdeutige SKU
schlägt mit sku_ambiguous fehl, nichts wird geschrieben), bis zu 100 Artikel, Ergebnisse
pro Artikel, status: "partial", wenn nur einige fehlschlagen, und 422 no_items_applied,
wenn keiner angewendet wird. Nicht zugeordnete SKUs werden
angelegt (Titel erforderlich), zugeordnete werden aktualisiert.
Angebotsaktionen in großen Mengen
POST /listings/batch führt eine action (publish, delist, resync
oder retry) für bis zu 100 Paare aus (Produkt, Kanalkonto), z. B. um einen
Katalog auf ein zweites eBay-Konto zu kopieren:
curl -X POST https://api.nembol.com/rest/v1/listings/batch \
-H "Authorization: Bearer $NEMBOL_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: copy-to-ebay2-page-1" \
-d '{"action": "publish",
"items": [{"product_id": "prod_66a1f0", "channel_account_id": "chac_6aa12cab"},
{"product_id": "prod_66a1f1", "channel_account_id": "chac_6aa12cab"}]}'Jedes Paar erhält ein eigenes Ergebnis in der Operation: pending, bis der
Kanal antwortet, skipped, wenn es bereits im gewünschten Zustand ist (z. B.
already_listed), andernfalls failed mit einem Code. Die Ergebnisse kommen in
derselben Reihenfolge wie deine items zurück, und jedes wiederholt die product_id und
channel_account_id, die du gesendet hast (auch unbekannte). So erkennst du immer,
zu welchem Paar ein Ergebnis gehört. Größere Kataloge blätterst du
in Schritten von 100 Paaren durch, mit einem eigenen Idempotency-Key pro Seite.
Preisänderungen in großen Mengen
POST /inventory/price_adjustment erhöht oder senkt den Preis jeder Variante von bis zu
100 Produkten um einen Prozentsatz oder einen Betrag (optional auf .99 gerundet) und
überträgt die neuen Preise an die Live-Kanäle:
curl -X POST https://api.nembol.com/rest/v1/inventory/price_adjustment \
-H "Authorization: Bearer $NEMBOL_API_KEY" \
-H "Content-Type: application/json" \
-d '{"product_ids": ["prod_66a1f0", "prod_66a1f1"], "mode": "percentage", "value": -15, "rounding": true}'Das Ergebnis jeder Variante enthält previous_price und price. Zum Rückgängigmachen sendest du
die vorherigen Preise zurück:
POST /inventory/batch
{"items": [{"sku": "TEE-M", "price": "19.99"}, {"sku": "TEE-L", "price": "21.99"}]}Stolperfallen
- Ein Idempotency-Key pro Batch-Lauf. Wiederholst du einen Batch nach einem Timeout mit demselben Key, wird das gespeicherte Ergebnis zurückgegeben, statt die Änderungen doppelt anzuwenden.
- Batch-Updates nehmen keine Bilder an. Ein zugeordneter Artikel mit
images[]schlägt fehl (pro Artikel). Aktualisiere Bilder stattdessen mitPATCH /products/{id}. quantity: 0ist ein echter Wert. Die Variante ist damit überall ausverkauft.- Beobachte
operation.completed, statt abzufragen, wenn du häufig synchronisierst. - Preise sind Strings (
"44.90"), immer in der Basiswährung des Shops. - Ein Kanal kann weniger Einheiten anzeigen, als du hast (oder „nicht vorrätig“ in
Google Merchant Center): Verkäufer können pro Kanal eine Mengenobergrenze festlegen
(
inventoryinGET /channel_accounts). - Preisregeln des Kanals gelten zusätzlich zu den Preisen, die du festlegst oder anpasst
(
pricingam Kanalkonto).
Zuletzt aktualisiert am 20. Oktober 2026
Brauchst du Hilfe?
Schreib uns, und ein Mensch antwortet, meist innerhalb eines Werktags.
Ein Produkt bearbeiten: Was die Kanäle tatsächlich erreicht
Dein PATCH aktualisiert immer Nembol; was an die einzelnen Kanäle weitergegeben wird, bestimmen die Sync-Einstellungen des Verkäufers.
Bestellungen abwickeln
Rufe Bestellungen mit vollständiger Lieferadresse ab, markiere sie als versendet, füge die Sendungsverfolgung hinzu und benachrichtige den Marktplatz.