Aus dem Englischen übersetzt. Bei Abweichungen gilt die englische Seite. Auf Englisch lesen
Produkte importieren
Hol den Katalog eines verbundenen Kanals oder eine CSV-Datei aus deiner App oder deinem Agenten in Nembol: nur neue Artikel, Verknüpfung über die SKU, Filter für einen einzelnen Import, Live-Fortschritt und Rückgängigmachen.
POST /imports führt denselben Import aus wie das Nembol-Dashboard, im
Hintergrund und mit denselben Regeln. Dein Schlüssel braucht products:write.
Den Katalog eines Kanals importieren
curl -X POST https://api.nembol.com/rest/v1/imports \
-H "Authorization: Bearer $NEMBOL_API_KEY" \
-H "Content-Type: application/json" \
-d '{"channel_account_id": "chac_66f0a1",
"filters": {"status": "Active", "quantity": {"operator": "gt", "value": 0}}}'{
"id": "op_8fd2c1",
"object": "operation",
"type": "import.channel",
"status": "processing",
"import": {
"source": "channel",
"channel_account_id": "chac_66f0a1",
"filters": { "status": "Active", "quantity": { "operator": "gt", "value": 0 } },
"warnings": [],
"processed": 0
}
}Was hereinkommt, genau wie bei einem Import im Dashboard:
- Nur neue Artikel. Artikel, die bereits von diesem Kanalkonto importiert wurden, werden übersprungen (bei Kanalimporten; für CSV siehe unten). Ein erneuter Import holt also nur Neues.
- Keine Duplikate über die SKU. Ein Artikel, dessen SKU genau einem bereits in Nembol
vorhandenen Produkt entspricht (mit gleich vielen Varianten), wird mit diesem verknüpft, und
das Produkt wird nicht überschrieben. Mehrdeutige Treffer werden nicht importiert und
in
not_importedgezählt. - Das Produktlimit des Plans stoppt das Anlegen; Artikel über dem Limit werden
in
not_importedgezählt.GET /billingzeigt dir vorher den verbleibenden Spielraum.
Filter für einen einzelnen Import
Ohne filters verwendet der Import die Importeinstellungen des Kanalkontos (dieselben
wie im Dashboard). filters überschreiben sie nur für diesen Import;
die gespeicherten Einstellungen ändern sich nicht.
| Filter | Kanäle | Werte |
|---|---|---|
quantity | alle außer Faire, Temu, Wix | {"operator": "gt" | "lt" | "eq", "value": 0}, Gesamtbestand über alle Varianten |
status | die meisten Kanäle | die eigenen Werte jedes Kanals, z. B. eBay Active / Unsold / All, Etsy active / draft / expired / inactive, Shopify any / published / unpublished |
listing_type | eBay | All, FixedPriceItem (Sofort-Kaufen), Chinese (Auktion) |
shop_section_id | Etsy | eine Shop-Bereichs-ID |
collection_id | Shopify | eine Kollektions-ID (GET /channel_accounts/{id}/collections) |
category_id | WooCommerce, Wix, Square | eine Kategorie-ID |
availability | Google Merchant Center | all, in_stock, out_of_stock |
sku_contains | Amazon | Text, den die SKU enthalten muss |
Die vollständige Liste der Werte steht in der API-Referenz.
Die Warnungen lesen
import.warnings enthält Hinweise in einfacher Sprache, die du an die Person weitergeben solltest, bevor
sie sich auf das Ergebnis verlässt. Zum Beispiel werden bei manchen Plänen einige Filter
ignoriert, oder der Shop hat sein Produktlimit bereits erreicht. Das Verknüpfen per SKU
funktioniert in jedem Plan.
Eine CSV-Datei importieren
Sende den Dateiinhalt als Text:
curl -X POST https://api.nembol.com/rest/v1/imports \
-H "Authorization: Bearer $NEMBOL_API_KEY" \
-H "Content-Type: application/json" \
--data-binary @- <<'JSON'
{"csv": "id,title,description,quantity,price,sku\nMUG-1,Blue mug,A blue mug,5,12.50,MUG-BLUE\n"}
JSONPflichtspalten: price und quantity (oder nur sku-code, um
vorhandene Varianten über die SKU zu aktualisieren: Nur die Spalten, die du sendest, ändern sich). Sie werden
geprüft, bevor irgendetwas startet: Eine Datei ohne sie antwortet mit 422 validation_failed
und error.details.missing_columns. id, title, description und der
Rest sind optional; ohne id erhält eine Zeile eine aus ihrem Inhalt abgeleitete ID, sodass
ein erneuter Upload derselben Datei dieselben Produkte findet. Exporte aus Shopify, eBay und inkFrog
werden ebenfalls erkannt; nicht erkannte Spalten werden in
import.warnings aufgeführt.
Erneut importierte Zeilen, eine Regel: Eine Zeile, deren id einem Produkt im
Shop entspricht (seiner prod_…-ID aus einem Export oder der id
der Zeile, die es angelegt hat), aktualisiert es (updated), nie ein Duplikat; eine Zeile
ohne Neuigkeiten wird als unchanged gezählt. Bei einer CSV-Datei ist import.total
von Anfang an bekannt.
Den Fortschritt verfolgen
Frage GET /operations/{id} ab oder abonniere operation.completed:
{
"id": "op_8fd2c1",
"type": "import.channel",
"status": "succeeded",
"import": {
"processed": 342,
"created": 310,
"linked": 32,
"requires_attention": 3,
"not_imported": 4,
"error": null
}
}processed wächst, während der Import läuft. Bei einem Kanalimport zählt es die
bisher angelegten Produkte (mit einem vorhandenen Produkt verknüpfte Artikel werden am
Ende gezählt), bei einer CSV-Datei die verarbeiteten Zeilen. created, updated, linked und
not_imported werden gesetzt, wenn er abgeschlossen ist. Pro Kanalkonto (und
pro CSV) läuft jeweils nur ein Import: Eine zweite Anfrage antwortet mit 409 import_already_running.
requires_attention zählt die Artikel, die möglicherweise schon in Nembol existieren, aber
nicht mit Sicherheit: Sie kommen pausiert herein (to_verify), bis jemand entscheidet
(siehe Duplikate).
Einen Import rückgängig machen
Das Rückgängigmachen entfernt Produkte aus Nembol, daher verlangt es dieselbe zweistufige
Bestätigung wie jede unumkehrbare Aktion. Der erste Aufruf antwortet mit
409 confirmation_required und einem confirmation.token; zeig der Person die Zusammenfassung
und wiederhole, wenn sie zustimmt, dieselbe Anfrage mit dem Token:
curl -X POST https://api.nembol.com/rest/v1/imports/op_8fd2c1/undo \
-H "Authorization: Bearer $NEMBOL_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Nembol-Confirmation: cfm_3kTq9Xb2"Sende {"include_modified": true} als Body, um auch angelegte Produkte zu entfernen,
die nach dem Import bearbeitet wurden.
{
"import": {
"undone_at": "2026-10-08T10:12:00.000Z",
"undo": {
"removed": 309,
"unlinked": 32,
"kept": { "live_on_a_channel": 1, "modified_after_import": 0 }
}
}
}Das Rückgängigmachen entfernt aus Nembol, was der Import hinzugefügt hat (die angelegten Produkte
und die Verknüpfungen mit vorhandenen Produkten), und ändert nie etwas auf
dem Kanal: Deine eBay- oder Etsy-Angebote bleiben genau, wie sie sind. In der
API verschwinden die Angebote der entfernten Produkte mit ihnen: Sie fehlen in
GET /listings und antworten über ihre ID mit 404.
- Produkte, die inzwischen auf einem Kanal live sind, bleiben immer erhalten.
- Produkte, die nach dem Import bearbeitet wurden, bleiben erhalten, außer du übergibst
"include_modified": true. - Jeder Import kann einmal rückgängig gemacht werden, nachdem er abgeschlossen ist.
Nach dem Rückgängigmachen holt ein erneuter Import dieselben Artikel zurück.
Gute Praxis für Agenten
- Prüfe vor einem großen Import
GET /billing(Spielraum des Plans) und sag, wie viele Produkte der Shop noch hinzufügen kann. - Sag der Person, was der Import tun wird (nur neue Artikel, Verknüpfung über die SKU,
die gesetzten Filter), und lies ihr
import.warningsvor. - Bewahre die ID der Operation auf: Du brauchst sie zum Rückgängigmachen.
Zuletzt aktualisiert am 20. Oktober 2026
Brauchst du Hilfe?
Schreib uns, und ein Mensch antwortet, meist innerhalb eines Werktags.
Exporte
CSV-Exporte von Produkten und Bestellungen: jedes Format, sein Trennzeichen und seine Spalten und wie seine IDs der API entsprechen.
Duplikate: Prüfung erforderlich und Gleiches Produkt
Wie Importe mit Produkten umgehen, die möglicherweise schon existieren, wie du sie auflöst und wie du zwei Produkte zu einem zusammenführst.