Aus dem Englischen übersetzt. Bei Abweichungen gilt die englische Seite. Auf Englisch lesen

Bestellungen abwickeln

Rufe Bestellungen mit vollständiger Lieferadresse ab, markiere sie als versendet, füge die Sendungsverfolgung hinzu und benachrichtige den Marktplatz.

Der Bestellablauf für eine WMS-/ERP-Integration (erfordert orders:read + orders:write):

Jede Bestellung enthält number, die Nummer, die der Händler auf dem Kanal sieht (Shopify „#1011“ → "1011"): Suche und zeige Bestellungen anhand dieser Nummer. Wenn der Kanal sie liefert, enthält die Bestellung auch die Aufschlüsselung der Beträge: subtotal, shipping, discount, tax, tax_remitted_by (marketplace, wenn der Kanal die Steuer einzieht und abführt) und den total des Kanals, dieselben Zahlen wie im Bestellexport. Verbuche Versand, Rabatte und Steuern anhand dieser Werte; sind sie null, hat der Kanal keine Aufschlüsselung geliefert und total ist die Summe der Positionen.

1. Bestellungen bei Eingang abrufen

Abonniere order.created oder frage regelmäßig ab:

curl "https://api.nembol.com/rest/v1/orders?limit=50" \
  -H "Authorization: Bearer $NEMBOL_API_KEY"

Jede Bestellung wird unabhängig vom Kanal auf eine einheitliche Struktur normalisiert: status, fulfillment_status, lines[], tracking und buyer einschließlich der Lieferadresse (buyer.address).

2. Versenden

curl -X POST https://api.nembol.com/rest/v1/orders/{id}/fulfillment \
  -H "Authorization: Bearer $NEMBOL_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: ship-EBAY-12345" \
  -d '{
    "mark_shipped": true,
    "tracking": {"number": "1Z999...", "carrier": "UPS", "url": "https://..."}
  }'

Ist eine Sendungsverfolgung vorhanden, benachrichtigt Nembol standardmäßig auch den Ursprungsmarktplatz (eBay, Etsy, Shopify, WooCommerce, Amazon, TikTok Shop, OnBuy, Square, Squarespace), und der Käufer erhält die Versandbenachrichtigung des Kanals. Deaktiviere das mit "notify_channel": false.

Bestand und Stornierungen

Wird eine Bestellung vor dem Versand auf ihrem Kanal storniert und hatte ihr Verkauf die Einheiten aus dem Nembol-Bestand genommen, bucht Nembol sie zurück, einmal pro Bestellposition, und sendet die neue Menge an jeden Kanal, auf dem das Produkt ist (genau wie bei einem Verkauf). Du erhältst inventory.updated mit data.source: "order", data.reason: "order_canceled", data.channel, data.order_id_on_channel, data.variant_id, data.sku und einer positiven data.quantity_change.

Keine Rückbuchung erfolgt, wenn:

  • der Verkauf den Nembol-Bestand nicht geändert hat: „Menge aus Bestellungen“ (sync.quantity_from_orders) war für dieses Konto aus, die Bestellung stammt aus dem ersten Import vergangener Bestellungen, oder sie wurde von Amazon abgewickelt (FBA);
  • die Bestellung bereits versendet oder zugestellt war;
  • die eigenen Mengenänderungen des Kanals in Nembol synchronisiert werden (sync.quantity_from_channel_edits an: Shopify, WooCommerce, Amazon): Die Rückbuchung des Kanals kommt über diese Synchronisierung, und sie erneut hinzuzufügen würde die Einheiten doppelt zählen;
  • die Bestellung nur erstattet wurde: Eine Erstattung sagt nicht, dass die Ware zurückgekommen ist. Passe den Bestand selbst an (POST /inventory/batch), wenn eine Rücksendung eintrifft.

Bestellungen, die vor dem 17.10.2026 eingegangen sind, werden nicht automatisch zurückgebucht.

Stolperfallen

  • Eine Bestellung pro Kanalbestellung. Eine Bestellung mit mehreren Positionen ist eine Bestellung (alle ihre lines, der volle total); die Abwicklung versendet alle ihre Positionen.
  • Keine Sendungsverfolgung, keine Benachrichtigung. mark_shipped allein aktualisiert nur Nembol. Sende die Sendungsverfolgung (jetzt oder später), um den Marktplatz zu benachrichtigen.
  • Eine Sendungsverfolgung lässt sich nicht über Nembol korrigieren, sobald der Marktplatz eine hat: Die neue Nummer wird in Nembol gespeichert, und die Antwort lautet channel_already_notified. Korrigiere sie auf dem Marktplatz.
  • Erneutes Senden ist sicher. Dieselbe Sendungsverfolgung noch einmal sendet nichts (nur eine E-Mail an den Käufer, für immer): Die Antwort lautet attempted: false, already_notified_same_tracking. Felder, die du weglässt, behalten ihren Wert.
  • url muss eine http(s)-URL sein, sonst antwortet der Aufruf mit 422.
  • Tracking-Felder über ihrem Limit werden abgelehnt (number und carrier 64, url 512 Zeichen), nie gekürzt.
  • Auf dem Kanal vorgenommene Stornierungen kommen innerhalb von 10 Minuten an (Status canceled, order.status_changed).
  • Die Marktplatzbenachrichtigung erfolgt einmal pro Bestellung, strikt idempotent. Wiederholst du den Aufruf, wird der Käufer nie zweimal benachrichtigt (oder angeschrieben).
  • Abgeschlossene Bestellungen lehnen die Abwicklung ab: Stornierte/erstattete Bestellungen liefern 422 order_not_fulfillable.
  • Käuferdaten sind personenbezogene Daten. Sie liegen hinter orders:read; verarbeite sie rechtmäßig und speichere nicht mehr als nötig.
  • channel_notification in der Antwort sagt dir genau, was passiert ist: {attempted, delivered, error}.

Zuletzt aktualisiert am 20. Oktober 2026

Brauchst du Hilfe?

Schreib uns, und ein Mensch antwortet, meist innerhalb eines Werktags.

Auf dieser Seite