Aus dem Englischen übersetzt. Bei Abweichungen gilt die englische Seite. Auf Englisch lesen
Grundkonzepte
Produkte, Angebote, Kanäle, Bestellungen und Operations: wie Nembol Multichannel-Verkauf abbildet.
Fünf Objekte erklären die gesamte API.
Produkt
Der zentrale Katalogartikel, verwaltet von Nembol. Er umfasst alle Verkaufsdaten:
Titel, Beschreibung (der eine Text, den jeder Kanal veröffentlicht, HTML
erlaubt; short_description ist nur ein veralteter Alias dafür), Marke, category, Tags,
mpn, vat_rate, weight/dimensions, images[] (bis zu 20) und
variants[] (jeweils mit SKU, Preis, msrp (durchgestrichener Preis auf Kanälen,
die das unterstützen), Menge, Barcode, grams (Versandgewicht pro Variante)
und variantenspezifischen images). Preise sind Dezimal-Strings in der
Basiswährung des Shops (GET /store → currency).
Varianten mit options (z. B. Farbe/Größe) müssen jede Kombination
der Optionswerte abdecken. Kanäle erzeugen die vollständige Matrix, daher werden lückenhafte Sets
vorab abgelehnt, statt fehlerhafte Angebote zu veröffentlichen.
Ein Produkt kann lokal existieren, ohne auf einem Kanal zu sein, sogar ohne Bilder (es bleibt ein lokaler Entwurf, bis es veröffentlicht wird).
Angebot (Listing)
Die Abbildung eines Produkts auf einem Kanalkonto. Es ist eine eigenständige
Ressource mit eigener ID (list_…), status (listed, imported,
ongoing, error, delisted), id_on_channel, url_on_channel und
issues[], das die eigene Fehlermeldung des Kanals enthält, wenn etwas fehlschlägt.
POST /rest/v1/listings {product_id, channel_account_id} # publish
PATCH /rest/v1/listings/{id} {} # re-sync
DELETE /rest/v1/listings/{id} # delistDas Veröffentlichen ist pro Paar (product_id, channel_account_id) idempotent, und
GET /listings?status=error ist die Abfrage, die deine Wiederholungslogik ausführen sollte.
Zwei Verhaltensweisen auf Kanalseite solltest du kennen: Manche Händler konfigurieren pro Kanal
Preisregeln (eine prozentuale oder feste Anpassung), sodass der Preis auf dem
Kanal berechtigterweise vom Produktpreis abweichen kann; und bei WooCommerce
kann der Händler festgelegt haben, Produkte als Entwürfe anzulegen. In diesem Fall
existiert ein Angebot mit listed im Shop, seine URL ist aber noch nicht öffentlich.
Kanalkonto
Ein verbundenes Konto auf einer Verkaufsplattform. GET /channel_accounts listet sie
mit stabilen, opaken IDs (chac_…). Hat ein Händler zwei eBay-Konten, ist jedes
ein eigenes Kanalkonto, und eine ID verweist nie auf ein anderes Konto.
Die ID bleibt erhalten, wenn eine abgelaufene Anmeldung neu verbunden wird (channel_account_id).
Trennen entfernt sie: Wird dieses Konto erneut verbunden, erhält es eine neue ID,
die alte antwortet mit 404 channel_account_not_found, und die Angebote des Kontos
tragen nun die neue ID in channel_account_id (Angebote gehören zum Platz des
Kontos, nicht zur ID). Speichere IDs, und lies bei channel_account.connected
GET /channel_accounts und deine Angebote erneut. Das Feld channel enthält
die Basisplattform (shopify, amazon, ebay, etsy, woocommerce,
tiktok, …). Neue Werte kommen hinzu, wenn Nembol Integrationen ergänzt, toleriere also
unbekannte Werte.
Bestellung
Eine normalisierte Bestellung, die von einem beliebigen Kanal übernommen wird: currency pro Bestellung,
normalisierter status und fulfillment_status, Sendungsverfolgung, Positionen und Käuferdaten
einschließlich der vollständigen Lieferadresse (hinter dem Scope orders:read).
Mit orders:write markiert POST /orders/{id}/fulfillment sie als versendet,
hängt die Sendungsverfolgung an und benachrichtigt (standardmäßig, wenn eine Sendungsnummer vorhanden ist) den
Ursprungsmarktplatz.
Operation
Der Tracker für asynchrone Arbeit auf den Kanälen. Das Wichtigste, was du über Schreibvorgänge in Nembol verstehen musst:
- Der lokale Schreibvorgang ist synchron.
POST/PATCHgeben die aktualisierte Ressource sofort zurück, du bekommst also genau das zurück, was du geschrieben hast. - Die Weitergabe an die Kanäle ist asynchron. Sie läuft über Nembols Kanal-Worker,
die die Rate Limits jedes Kanals einhalten. Der Block
syncder Antwort liefert dir eineoperation_id;GET /operations/{id}meldetresults[]pro Kanal (succeeded,failed,channel_rate_limited,simulated), und eine Operation kann mitpartialenden.
Statt Operations abzufragen, abonniere den
Webhook operation.completed.
Wie sich die Synchronisierung verhält
- Schreibvorgänge über die API werden hinter bestellungsgesteuerten Aktualisierungen und Dashboard-Aktionen eingereiht, sodass eine Integration die Bestellsynchronisierung nie ausbremsen kann.
- Wenn ein Kanal drosselt, wartet Nembol und versucht es erneut; die Operation zeigt
in der Zwischenzeit
channel_rate_limited. - Das Löschen eines Produkts berührt nie die Kanäle: Solange es noch auf
einem live ist, antwortet
DELETE /products/{id}mit422 product_still_listed, delist also zuerst jedes Angebot (läuft ein Delisting noch, antwortet es mit409 listing_operation_in_progress: warte, bis es fertig ist, dann löschen). Ein gelöschtes Produkt lässt sich mitPOST /products/{id}/restorezurückholen; seine Fotos bleiben 30 Tage erhalten, danach kommt es ohne sie zurück. Siehe Delisten und aufräumen.
Zuletzt aktualisiert am 22. Oktober 2026
Brauchst du Hilfe?
Schreib uns, und ein Mensch antwortet, meist innerhalb eines Werktags.