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

Rückgängigmachen und Bestätigungen

Jede Änderung, die deine App oder dein Agent vornimmt, wird mit Vorher-/Nachher-Werten protokolliert und kann 30 Tage lang rückgängig gemacht werden; unumkehrbare Aktionen verlangen zuerst eine zweistufige Bestätigung.

Zwei Regeln halten einen Shop sicher, wenn eine App (oder ein KI-Agent) ihn bedient:

  1. Alles ist nachvollziehbar und das meiste lässt sich rückgängig machen. Jede Änderung wird im Aktionsprotokoll erfasst, mit der Angabe, wer sie vorgenommen hat, und den genauen Werten vorher und nachher. 30 Tage lang kannst du sie rückgängig machen.
  2. Was sich nicht rückgängig machen lässt, fragt zuerst. Von Kanälen entfernen, einen Kanal trennen, Varianten entfernen, eine Storefront-Bestellung erstatten, einen Import rückgängig machen und ein Unternehmen schließen verwenden alle dieselbe zweistufige Bestätigung.

Finden, was getan wurde

Jeder Schreibvorgang antwortet mit einem Header Nembol-Action-Id, auch die unumkehrbaren (eine Bestellung versenden, von Kanälen entfernen, trennen). Eine Wiederholung mit demselben Idempotency-Key (Idempotent-Replayed: true) ist kein neuer Schreibvorgang: Sie erfasst keine Aktion und hat keinen Header. Das vollständige Protokoll:

curl "https://api.nembol.com/rest/v1/actions?product_id=prod_66f0a1" \
  -H "Authorization: Bearer $NEMBOL_API_KEY"
{
  "object": "list",
  "data": [
    {
      "id": "act_66f0b2",
      "object": "action",
      "type": "product.update",
      "summary": "Edited product \"Blue mug\"",
      "actor": { "type": "api_key", "name": "Inventory agent", "via": "mcp" },
      "reversibility": "reversible",
      "undoable": true,
      "undoable_until": "2026-11-07T10:00:00.000Z",
      "items": [
        {
          "product_id": "prod_66f0a1",
          "changes": [
            { "path": "fields.title", "before": "Blue mug", "after": "Big blue mug" },
            { "path": "variants.66f0a2.price", "before": "10.00", "after": "12.00" }
          ]
        }
      ],
      "created_at": "2026-10-08T10:00:00.000Z"
    }
  ]
}

Protokolliert werden: Anlegen/Bearbeiten/Löschen/Wiederherstellen von Produkten, Varianten- und Bestandsänderungen, Preisanpassungen, Produkt-Batches, Importe, Einstellungen von Kanalkonten (auch wenn sie im Dashboard geändert wurden), Veröffentlichungen, Entfernungen von Kanälen, Sendungen und Verbinden/Trennen. Aufbewahrt 90 Tage. Zum Lesen brauchst du events:read oder products:read.

Rückgängig machen

Zuerst die Vorschau:

curl -X POST https://api.nembol.com/rest/v1/actions/act_66f0b2/undo \
  -H "Authorization: Bearer $NEMBOL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"dry_run": true}'
{
  "object": "undo_preview",
  "status": "simulated",
  "outcome": "partial",
  "items": [
    {
      "product_id": "prod_66f0a1",
      "restored": ["variants.var_66f0a2.price"],
      "unchanged": [],
      "conflicts": [{ "path": "fields.title", "reason": "changed_since", "current": "Mug v3" }]
    }
  ]
}

Ein Probelauf macht nie etwas rückgängig: status ist immer simulated, und outcome sagt, was das echte Rückgängigmachen antworten würde (undone, partial, conflict, nothing_to_undo). Das Rückgängigmachen einer Zusammenführung listet jedes Produkt auf: den Survivor (role: "survivor": Felder, Varianten und Angebote, die zurückgehen) und jedes aufgenommene Produkt (role: "absorbed": Es kommt mit seinen Angeboten zurück).

Danach derselbe Aufruf ohne dry_run. So wird jeder Wert behandelt:

Der aktuelle WertWas das Rückgängigmachen tut
Noch der Wert, den die Aktion geschrieben hatSetzt den alten Wert zurück
Bereits der alte WertNichts (unchanged)
Seitdem erneut geändert, von jemandem oder von einem KanalLässt ihn unverändert und meldet einen Konflikt
Eine MengeKehrt die Änderung als Differenz um: Hat die Aktion 5 → 8 gesetzt und wurden seitdem 2 verkauft (6), ergibt das Rückgängigmachen 3. Verkaufter Bestand wird nie wieder hinzugefügt. Unter null → Konflikt

Wiederhergestellte Produkte werden erneut an ihre Kanäle gesendet. Das Rückgängigmachen ist selbst eine Aktion (undo_of verweist auf das Original), und eine Aktion kann einmal rückgängig gemacht werden.

AktionRückgängigmachen
Produktänderung, Varianten-/Bestandsänderung, Preisanpassung, BatchWerte wiederhergestellt (erneut mit den Kanälen synchronisiert)
Produkt löschenProdukt und seine Bilder zurück (auch POST /products/{id}/restore)
Produkt anlegenWieder gelöscht, außer es ist auf einem Kanal live
Einstellungen des KanalkontosEinstellungen wiederhergestellt
ImportAngelegte Produkte entfernt und Verknüpfungen aufgehoben (nichts auf dem Kanal)
VeröffentlichenNicht automatisch. Entferne es vom Kanal (DELETE /listings/{id}); Kanalgebühren werden nicht erstattet
Von Kanälen entfernen, Versandmitteilung, TrennenUnumkehrbar (siehe unten)

Gelöschte Produkte und ihre Bilder

Ein gelöschtes Produkt behält seine Bilder 30 Tage lang. Stellst du es in dieser Zeit wieder her, kommen sie zurück. Nach 30 Tagen werden die Bilder entfernt; die Produktdaten lassen sich weiterhin wiederherstellen, ohne Bilder.

Zweistufige Bestätigung

Unumkehrbare Aktionen (DELETE /listings/{id}, POST /listings/batch mit action: "delist", das Trennen eines Kanalkontos…) antworten zuerst mit 409. Das Versenden einer Bestellung (POST /orders/{id}/fulfillment) fragt nicht: Es ist der automatisierte Schritt eines Fulfillment-Systems, und der Marktplatz wird höchstens einmal pro Bestellung benachrichtigt.

{
  "error": {
    "type": "invalid_request_error",
    "code": "confirmation_required",
    "message": "Delisting ends this listing on its channel. Publishing it again later creates a NEW listing … repeat the SAME request with header \"Nembol-Confirmation: cfm_3kTq9Xb2\" within 10 minutes."
  },
  "confirmation": {
    "token": "cfm_3kTq9Xb2",
    "summary": "Delisting ends this listing on its channel. …",
    "expires_at": "2026-10-08T10:10:00.000Z"
  }
}

Zeig der Person confirmation.summary. Wenn sie zustimmt, sende dieselbe Anfrage erneut mit dem Header:

curl -X DELETE https://api.nembol.com/rest/v1/listings/list_cHJvZF8x \
  -H "Authorization: Bearer $NEMBOL_API_KEY" \
  -H "Nembol-Confirmation: cfm_3kTq9Xb2"

Nembol verlangt die Bestätigung erst, wenn die Anfrage gültig und die Aktion möglich ist. Deine App bittet also nie eine Person, etwas zu bestätigen, das nicht passieren kann:

  • ein unbekanntes Unternehmen, ein unbekannter Import, ein unbekanntes Angebot oder eine unbekannte Bestellung antwortet sofort mit 404;
  • ein bereits rückgängig gemachter Import oder ein Angebot, das sich nicht vom Kanal entfernen lässt, antwortet sofort mit seinem eigenen Fehler;
  • das Schließen eines bereits geschlossenen Unternehmens antwortet mit 200 und dem Unternehmen, wie es ist: Das Schließen ist idempotent, es gibt nichts zu bestätigen;
  • ein Batch zum Entfernen von Kanälen zählt in seiner Zusammenfassung nur die Angebote, die wirklich enden würden; wenn keines enden würde (unbekannt, bereits entfernt, nicht entfernbar), antwortet er mit den Ergebnissen pro Artikel, ohne Bestätigung.

Die Zusammenfassung nennt, worum es bei der Aktion geht (das Produkt und den Shop beim Entfernen vom Kanal, den Shop beim Trennen, das Unternehmen beim Schließen), sodass du sie der Person unverändert zeigen kannst.

Der Token funktioniert einmal, für genau diese Anfrage, 10 Minuten lang. Er wird verlangt für Schlüssel, die ab dem 08.10.2026 erstellt wurden, und für jeden Aufruf über den Nembol-MCP-Server (Nembol-Client: mcp).

Gute Praxis für Agenten

  • Bewahre die Nembol-Action-Id dessen auf, was du getan hast, damit du es gezielt rückgängig machen kannst. Mach nie blind „das Letzte“ rückgängig.
  • Nutze die Vorschau mit dry_run und informiere die Person über Konflikte, statt Werte zu erzwingen.
  • Bestätige nie im Namen der Person: Eine Antwort confirmation_required ist der Moment, sie zu fragen.

Zuletzt aktualisiert am 20. Oktober 2026

Brauchst du Hilfe?

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

Auf dieser Seite