Auf dieser Seite
Shopify hat diese APIs in Version 2026-10 eingeführt. Verwenden Sie sie, wenn Ihre Integration für Bestellverwaltung oder Fulfillment eine ausstehende Stornierungsanfrage eines Kunden erkennen muss, bevor der Händler sie bearbeitet.
Beschränken Sie Anfragen auf das Entfernen noch nicht ausgeführter Einheiten
Die unterstützte Änderung ist das Entfernen. In 2026-10 enthält die Eingabe lineItems von orderRequestEdit ausschließlich removals, jeweils mit einer lineItemId und der angefragten quantity. Teilmengen sind zulässig. Für das Hinzufügen von Artikeln und Variantenwechsel gibt es keinen Anfragetyp, ebenso wenig für Änderungen an Adresse, Versand oder Rabatten.
Im nativen Ablauf in Kundenkonten wählen Käufer bei einer berechtigten Bestellung Cancel items. Legacy-Kundenkonten werden nicht unterstützt. Shopifys Einrichtungsanforderungen beschreiben die Aktivierung unter Settings > Customer accounts. Nutzen Sie den Leitfaden zur Migration von Kundenkonten, wenn der Shop noch Legacy-Konten verwendet.
Lesen Sie beim Erstellen der Käuferoberfläche Order.requestedEditInformation aus. Das zugehörige Objekt zur Änderungsberechtigung stellt hasEditableLineItems, editableLineItems und ineligibleLineItems bereit. Zeigen Sie die zulässigen Mengen anhand dieser Antwort an. Gehen Sie nicht davon aus, dass jede noch nicht ausgeführte Einheit für eine neue Anfrage verfügbar ist.
Native Self-Service-Anfragen gelten auch für B2B-Bestellungen. Die Bearbeitung einer Anfrage zu einer Abonnementbestellung lässt den Abonnementvertrag aktiv. Die Aktivierung je Markt erfordert Advanced oder Plus sowie Zugriff auf die Early-Access-Einstellungen für Bestellaktionen im Editor für Checkout und Kundenkonten. Shops ohne diese Option aktivieren Anfragen für alle Märkte.
Binden Sie die API ein und richten Sie Berechtigungen ein
Verwenden Sie die Referenzen für 2026-10. Die Anfrageressource heißt RequestedOrderEdit. Ihr Status-Enum enthält REQUESTED, RESOLVED und DECLINED. REQUESTED bedeutet, dass eine Aktion des Händlers aussteht. Einen Status APPROVED gibt es nicht.
| Aufrufer | Operation | Zweck |
|---|---|---|
| Admin API | requestedOrderEditCreate |
Eine Anfrage im Namen eines Käufers erstellen |
| Admin API | requestedOrderEditResolve |
Eine Anfrage als erledigt markieren |
| Admin API | requestedOrderEditDecline |
Eine Anfrage ablehnen |
| Customer Account API | orderRequestEdit |
Die Anfrage des Käufers absenden |
| Beide APIs | requestedOrderEditCalculate |
Eine Vorschau des finanziellen Ergebnisses berechnen |
Fordern Sie für Admin-Abfragen read_orders an. Die drei Admin-Mutationen erfordern write_orders und die Mitarbeiterberechtigung edit_orders, wie in der Referenz zum Erstellen einer Anfrage angegeben. Der separate Ablauf für berechnete Bestelländerungen durch Händler erfordert write_order_edits.
Fordern Sie für die Käufermutation customer_write_pre_authenticated an. Der Benutzer benötigt außerdem Zugriff über customer_write_orders oder einen vorab authentifizierten Zugriff auf die Bestellung. Für die Vorschauabfrage des Käufers benötigt die App customer_read_pre_authenticated, und der Benutzer muss Zugriff über customer_read_orders oder einen vorab authentifizierten Zugriff auf genau diese Bestellung haben, bevor Sie die Vorschau anbieten. Das Lesen von OrderRequestedEditInformation erfordert customer_read_orders.
Verwenden Sie @idempotent bei orderRequestEdit und verwenden Sie bei erneuten Versuchen derselben Übermittlung denselben Schlüssel. Shopify gibt die ursprüngliche Anfrage zurück, statt eine weitere zu erstellen.
Halten Sie das Fulfillment während der Prüfung durch den Händler zurück
Für eine ausstehende Anfrage ist keine automatische Sperre dokumentiert. Shopifys Änderungsprotokoll beschreibt das Zurückhalten des Fulfillments als Aufgabe, die eine App bei Bestellungen mit dem Status REQUESTED übernehmen kann.
Abonnieren Sie die drei Webhook-Topics für Anfragen: requested_order_edit/created, requested_order_edit/resolved und requested_order_edit/declined. Jedes erfordert mindestens eine der Berechtigungen read_orders, read_marketplace_orders oder read_buyer_membership_orders. Die Payloads geben die Bestellung und die angefragten Entfernungen an, einschließlich quantity und resolved_quantity. Die Statuswerte in den Webhook-Beispielen sind kleingeschrieben. GraphQL-Enum-Werte sind großgeschrieben.
Wenn der Händler die Kommissionierung während der Prüfung pausieren möchte, bauen Sie diesen Ablauf in Ihre Integration ein:
- Rufen Sie bei
/createddie aktuelle Bestellung und die Anfrage ab. Hinterlegen Sie die Anfrage-ID beim Lagerauftrag. - Wenden Sie die Fulfillment-Sperre oder den Mechanismus zum Lagerstopp an, den Ihre Integration steuert. Hat das Lager die Bestellung bereits importiert, verlangen Sie dessen Bestätigung, dass die Kommissionierung der betroffenen Einheiten gestoppt wurde.
- Rufen Sie bei
/resolvedoder/declineddie verbleibenden Anfragen zur Bestellung und die aktuellen Mengen ab. Heben Sie die Sperre Ihrer Integration erst auf, wenn ausstehende Anfragen und alle erforderlichen Rückerstattungen vollständig bearbeitet sind.
Prüfen Sie jede Anfrage. Eine Bestellung kann mehrere Anfragen haben, und displayRequestedEditStatus = REQUESTED bedeutet, dass mindestens eine davon noch eine Aktion des Händlers erfordert. Heben Sie die Sperre nicht aufgrund eines einzelnen /resolved-Ereignisses auf.
Vereinbaren Sie vor der Aktivierung einer automatischen Freigabe, wie der Stopp bestätigt wird. Der Leitfaden zur Integration von Fulfillment-Sperren behandelt die nachgelagerten Steuerungsmaßnahmen.
Entfernen Sie die Artikel, bevor Sie die Anfrage abschließen
Filtern Sie im Shopify-Adminbereich Orders nach Customer request. Die Anfrage erscheint in einem Banner in der Bestellung. Für die Prüfung ist die Berechtigung Orders erforderlich.
Bei einer bezahlten Bestellung öffnet Remove items die Rückerstattungsseite mit den angefragten Artikeln als Vorauswahl. Wählen Sie die Artikel für die Rückerstattung aus, prüfen Sie den Betrag und die Optionen zur Wiedereinlagerung und klicken Sie anschließend auf Refund. Shopify markiert die Anfrage als erledigt. Bei unbezahlten Bestellungen öffnet Remove items stattdessen die Seite zur Wiedereinlagerung.
Das Markieren als erledigt schließt den Anfragedatensatz. Die Referenz zu requestedOrderEditResolve beschreibt die Operation als Markieren der Anfrage als abgeschlossen. Ihre einzige Eingabe ist die Anfrage-id, ohne Felder für Menge, Rückerstattung oder Wiedereinlagerung. Entfernen Sie die Einheiten und erstatten Sie deren Betrag separat. Halten Sie beide Vorgänge im Ausführungsprotokoll Ihrer Implementierung fest.
Verwenden Sie requestedOrderEditCalculate, um vor dem Absenden eine Vorschau des finanziellen Ergebnisses der angefragten Entfernung zu berechnen. Die Abfrage gibt financialSummary und berechnete Positionen zurück. Eine Vorschau führt keine finanzielle Abrechnung durch. Unser Leitfaden zur API für die Bestellbearbeitung behandelt den bestehenden Ablauf mit begin, stage und commit sowie die separate finanzielle Abwicklung.
Rufen Sie zum Ablehnen der Anfrage requestedOrderEditDecline auf. Die optionale declineNote ist eine Benachrichtigung für den Käufer mit maximal 500 Zeichen. Im Shopify-Adminbereich schließt Manage request > Mark as resolved die Anfrage hingegen, ohne die Bestellung zu ändern oder dem Kunden eine E-Mail zu senden. Lehnen Sie die Anfrage ab, wenn der Händler die Entfernung verweigert. Markieren Sie sie erst als erledigt, nachdem die Einheiten entfernt und erstattet wurden oder wenn die Anfrage auf andere Weise bearbeitet wurde.
Prüfen Sie die undokumentierten Statusübergänge vor dem Produktivstart
Im Shopify-Adminbereich wird die Anfrage durch die Rückerstattung der angefragten Artikel ebenso als erledigt markiert wie durch das Stornieren der Bestellung. Beim Entfernen von Artikeln mit Rückerstattung zu einem späteren Zeitpunkt bleibt sie dagegen offen. Shopify dokumentiert nicht, ob refundCreate oder ein orderEditCommit, das die angefragten Einheiten entfernt, die Anfrage über die API als erledigt markiert. Testen Sie auf einem Entwicklungsshop, ob Ihr API-Ablauf sich wie der Adminbereich verhält, bevor Sie sich darauf verlassen.
Erstellen Sie eine Anfrage für einen Teil einer noch nicht ausgeführten Position. Verarbeiten Sie diese Menge anschließend über den vorgesehenen Rückerstattungs- oder Bearbeitungsablauf, ohne requestedOrderEditResolve aufzurufen. Prüfen Sie den resultierenden Anfragestatus und resolvedQuantity sowie die verbleibenden Einheiten der Bestellung und die Rückerstattungstransaktion. Protokollieren Sie, welche Anfrage-Webhooks eintreffen.
Erstellen Sie eine weitere Anfrage für andere berechtigte Einheiten derselben Bestellung und testen Sie Ihren Freigabe-Handler, während eine Anfrage noch aussteht. Lassen Sie den Lagerauftrag gesperrt, solange der Händler noch eine Anfrage prüfen muss. Wenn das Entfernen oder die Rückerstattung fehlschlägt, zeigen Sie dem Händler den Fehler deutlich an und lassen Sie die Bestellung gesperrt.
Führen Sie zur Wiederherstellung eine paginierte orders-Abfrage mit dem Filter requested_order_edit_status:requested aus. Rufen Sie für jede passende Bestellung die requestedOrderEdits-Connection ab und gleichen Sie sie mit Ihren Anfragedatensätzen ab. Gleichen Sie außerdem die von Ihrer Integration gesperrten Bestellungen anhand ihrer ID ab. Eine Bestellung, deren letzte Anfrage bei einem verpassten Webhook geschlossen wurde, erscheint nicht mehr in dieser Suche. Legen Sie das Intervall dieses Abgleichs anhand der Freigaberegeln des Lagers fest.
Legen Sie fest, wer die Änderung ausführt
Wickeln Sie das Hinzufügen von Artikeln außerhalb der API für Käuferanfragen ab. Shopifys Ablauf für Bestelländerungen durch Händler erlaubt das Hinzufügen von Produkten vor dem Fulfillment.
Für Kunden, die innerhalb eines vom Händler festgelegten Bearbeitungsfensters Varianten wechseln, Adressen korrigieren oder Artikel hinzufügen möchten, nutzen Shops eine App zur eigenständigen Bestellbearbeitung wie Revize. Die Einstellung Hold orders unter Fulfillment while editing hält das Fulfillment zurück, solange eine zeitlich festgelegte Bearbeitungsfrist läuft, und gibt es anschließend entsprechend dem konfigurierten Freigabezeitpunkt und den Zahlungsbedingungen frei. Bei der Frist Until fulfillment setzt Revize keine Sperre.
| Änderung auf Käuferanfrage | Änderung durch den Händler | Revize (Self-Service-App) | |
|---|---|---|---|
| Wer startet sie | Käufer in Kundenkonten oder über orderRequestEdit. Eine App kann eine Anfrage für den Käufer erstellen |
Mitarbeiter des Händlers oder eine App über die API für die Bestellbearbeitung | Käufer auf Shopifys Bestellstatusseite |
| Wer genehmigt sie | Händler oder App prüft und bearbeitet die Anfrage oder lehnt sie ab | Mitarbeiter oder App führt die Änderung aus | Händler legt die erlaubten Aktionen im Voraus fest. Eine zulässige Stornierung erfolgt automatisch |
| Was kann geändert werden | Entfernen noch nicht ausgeführter Einheiten, einschließlich Teilmengen. Das Absenden ändert nichts | Produkte, Mengen, Versandgebühren und manuelle Rabatte innerhalb der Grenzen der nativen Bestellbearbeitung | Varianten- und Mengenänderungen, Lieferadresse, hinzugefügte Produkte. Das Hinzufügen von Produkten erfordert Pro |
| Zahlung | Das Erstellen und Markieren als erledigt lösen keine Rückerstattung aus. Die Verarbeitung der Entfernung erfordert eine Entscheidung zur Rückerstattung | Ein höherer Gesamtbetrag ermöglicht eine aktualisierte Rechnung. Ein niedrigerer Gesamtbetrag ermöglicht eine Rückerstattung | Pay now, Refund oder Confirm, je nachdem, ob der Gesamtbetrag steigt, sinkt oder gleich bleibt. Shopify führt die Zahlung oder Rückerstattung aus; Pay now zieht nur die Differenz ein |
| Fulfillment | Nur noch nicht ausgeführte Einheiten. Keine automatische Sperre dokumentiert | Mengenänderungen und das Entfernen von Positionen: nur bei noch nicht ausgeführten Positionen. Manuelle Rabatte können auch bei bereits ausgeführten Positionen geändert werden | Vor dem Fulfillment, innerhalb des vom Händler festgelegten Zeitfensters. Der Modus Hold orders hält das Fulfillment zurück |
Stimmen Sie Fulfillment while editing mit dem Lager ab, bevor Sie den Ablauf für die Bestellbearbeitung durch Kunden freigeben. Verweisen Sie Kunden für eine Anleitung zur Stornierung auf den Stornierungsleitfaden.
Häufig gestellte Fragen
Unsere Anfrage hat den Status RESOLVED, aber die Einheiten sind noch vorhanden. Ist die API fehlgeschlagen?
Der Status allein beweist nicht, dass die Einheiten entfernt wurden. requestedOrderEditResolve markiert die Anfrage als abgeschlossen und akzeptiert nur die Anfrage-id, ohne Felder für Menge, Rückerstattung oder Wiedereinlagerung. Der Support sollte die tatsächliche Bestellung und den Rückerstattungsdatensatz prüfen, bevor er dem Käufer mitteilt, dass die Bearbeitung abgeschlossen ist.
Kann der Käufer über diese APIs einen Größenwechsel anfragen?
Nein. Die Anfrageeingaben in 2026-10 unterstützen ausschließlich das Entfernen noch nicht ausgeführter Einheiten. Leiten Sie den Größenwechsel an den Ablauf des Shops für Bestelländerungen durch Händler oder für die eigenständige Bestellbearbeitung durch Kunden weiter.
Bedeutet ein resolved-Webhook, dass alle Anfragen zu dieser Bestellung abgeschlossen sind?
Nein. Rufen Sie requestedOrderEdits ab oder prüfen Sie displayRequestedEditStatus, bevor Sie den Lagerauftrag freigeben. Der Wert REQUESTED auf Bestellungsebene bedeutet, dass bei mindestens einer Anfrage noch eine Aktion des Händlers aussteht.
Sollten wir unsere Abonnements für Stornierungen von Fulfillment-Aufträgen beibehalten?
Behalten Sie sie bei, wenn Ihre Integration mit dem Fulfillment-Dienst sie benötigt. Die Topics fulfillment_orders/cancellation_request_* betreffen Anfragen von Händlern oder Apps an einen Fulfillment-Dienst. Bestelländerungen auf Käuferanfrage verwenden requested_order_edit/* und erfordern eine eigene Verarbeitung.