Op deze pagina
Shopify heeft deze API’s toegevoegd in versie 2026-10. Gebruik ze wanneer je integratie voor bestelbeheer of fulfillment een openstaand annuleringsverzoek van een klant moet kunnen zien voordat de winkelier het verwerkt.
Beperk ingediende verzoeken tot het verwijderen van nog niet afgehandelde eenheden
De ondersteunde wijziging is verwijderen. In 2026-10 bevat de invoer lineItems van orderRequestEdit alleen removals, elk met een lineItemId en het gevraagde aantal in quantity. Een deel van het aantal verwijderen is toegestaan. Voor toevoegingen en variantwissels bestaat geen verzoektype, evenmin voor adreswijzigingen of wijzigingen in verzending of kortingen.
In het standaardproces voor klantaccounts selecteren kopers Cancel items bij een bestelling die hiervoor in aanmerking komt. Verouderde klantaccounts worden niet ondersteund. De instellingsvereisten van Shopify beschrijven de activering onder Settings > Customer accounts. Gebruik de migratiegids voor klantaccounts als de winkel nog verouderde accounts gebruikt.
Lees Order.requestedEditInformation uit wanneer je de interface voor kopers bouwt. Het object met gegevens over de bewerkbaarheid stelt hasEditableLineItems, editableLineItems en ineligibleLineItems beschikbaar. Toon de aantallen die volgens die respons in aanmerking komen. Ga er niet van uit dat elke nog niet afgehandelde eenheid beschikbaar is voor een nieuw verzoek.
De ingebouwde verzoeken die klanten zelf indienen zijn ook van toepassing op B2B-bestellingen. Bij het verwerken van een verzoek voor een abonnementsbestelling blijft het abonnementscontract actief. Activering per markt vereist Advanced of Plus en toegang tot de instellingen voor bestelacties in early access in de checkout- en accounteditor. Winkels zonder die optie activeren verzoeken voor alle markten.
Koppel de API en stel de machtigingen in
Gebruik de referentiedocumentatie voor 2026-10. De resource voor verzoeken is RequestedOrderEdit. De bijbehorende status-enum bevat REQUESTED, RESOLVED en DECLINED. REQUESTED betekent dat actie van de winkelier nog nodig is. Er bestaat geen status APPROVED.
| Aanroeper | Bewerking | Doel |
|---|---|---|
| Admin API | requestedOrderEditCreate |
Een verzoek namens een koper aanmaken |
| Admin API | requestedOrderEditResolve |
Een verzoek als afgehandeld markeren |
| Admin API | requestedOrderEditDecline |
Een verzoek afwijzen |
| Customer Account API | orderRequestEdit |
Het verzoek van de koper indienen |
| Beide API’s | requestedOrderEditCalculate |
Het financiële resultaat vooraf bekijken |
Vraag voor Admin-query’s read_orders aan. De drie Admin-mutaties vereisen write_orders en de medewerkersmachtiging edit_orders, zoals de referentiedocumentatie voor aanmaken aangeeft. De workflow met berekende bewerkingen door de winkelier vereist afzonderlijk write_order_edits.
Vraag voor de mutatie van de koper customer_write_pre_authenticated aan. De gebruiker heeft ook toegang via customer_write_orders of vooraf geauthenticeerde toegang tot de bestelling nodig. Voor de previewquery van de koper heeft de app customer_read_pre_authenticated nodig, en moet de gebruiker toegang via customer_read_orders of vooraf geauthenticeerde toegang tot die specifieke bestelling hebben voordat je de preview aanbiedt. Voor het uitlezen van OrderRequestedEditInformation is customer_read_orders vereist.
Gebruik @idempotent op orderRequestEdit en gebruik dezelfde sleutel opnieuw wanneer je dezelfde indiening opnieuw probeert. Shopify retourneert het oorspronkelijke verzoek in plaats van een nieuw verzoek aan te maken.
Blokkeer de fulfillment terwijl de winkelier het verzoek beoordeelt
Voor een openstaand verzoek is geen automatische blokkade gedocumenteerd. De changelog van Shopify beschrijft het blokkeren van de fulfillment als een handeling die een app kan uitvoeren bij bestellingen met de status REQUESTED.
Abonneer je op de drie webhookonderwerpen voor verzoeken: requested_order_edit/created, requested_order_edit/resolved en requested_order_edit/declined. Elk vereist minimaal een van read_orders, read_marketplace_orders of read_buyer_membership_orders. Payloads identificeren de bestelling en de gevraagde verwijderingen, waaronder quantity en resolved_quantity. De webhookstatussen in de voorbeelden staan in kleine letters. GraphQL-enumwaarden staan in hoofdletters.
Als de winkelier het verzamelen tijdens de beoordeling wil pauzeren, bouw dan deze volgorde in je integratie in:
- Haal bij
/createdde huidige bestelling en het verzoek op. Leg het verzoek-ID vast bij de magazijnbestelling. - Stel de fulfillmentblokkade in of gebruik het stopmechanisme van het magazijn dat je integratie beheert. Als het magazijn de bestelling al heeft geïmporteerd, vereis dan een bevestiging dat het verzamelen voor de gevraagde eenheden is gestopt.
- Haal bij
/resolvedof/declinedde resterende verzoeken voor de bestelling en de huidige aantallen op. Hef de blokkade van je integratie pas op wanneer alle openstaande verzoeken zijn afgehandeld en eventueel vereist werk voor terugbetalingen is afgerond.
Controleer elk verzoek. Een bestelling kan meerdere verzoeken hebben, en displayRequestedEditStatus = REQUESTED betekent dat voor minstens één verzoek nog actie van de winkelier nodig is. Hef de blokkade niet op op basis van één /resolved-gebeurtenis.
Spreek af hoe het stoppen wordt bevestigd voordat je automatische vrijgave inschakelt. De integratiegids voor fulfillmentblokkades behandelt de aansturing van de vervolgsystemen.
Voer de verwijdering uit voordat je het verzoek sluit
Filter in Shopify admin Orders op Customer request. Het verzoek verschijnt in een banner bij de bestelling. Beoordelaars hebben de machtiging Orders nodig.
Bij een betaalde bestelling opent Remove items de terugbetalingspagina met de gevraagde artikelen gemarkeerd. Selecteer de artikelen die je wilt terugbetalen, controleer het bedrag en de opties om artikelen terug op voorraad te zetten, en klik daarna op Refund. Shopify markeert het verzoek als afgehandeld. Bij onbetaalde bestellingen opent Remove items in plaats daarvan de pagina om artikelen terug op voorraad te zetten.
Afhandelen sluit de registratie van het verzoek. De referentiedocumentatie voor requestedOrderEditResolve beschrijft dit als het markeren van het verzoek als voltooid, en de enige invoer is het id van het verzoek, zonder velden voor aantallen, terugbetaling of het terug op voorraad zetten. Voer het verwijderen en terugbetalen van de eenheden apart uit en leg beide handelingen vast in het uitvoeringslogboek van je implementatie.
Gebruik requestedOrderEditCalculate om het financiële resultaat van de gevraagde verwijdering vóór het indienen te bekijken. Het retourneert financialSummary en berekende bestelregels. Een preview voert geen financiële afwikkeling uit. Onze gids voor de API voor het bewerken van bestellingen behandelt de bestaande workflow met begin, stage en commit en de aparte financiële afwikkeling ervan.
Roep requestedOrderEditDecline aan om het verzoek af te wijzen. Het optionele declineNote is een meldingsbericht voor de koper met een maximum van 500 tekens. In Shopify admin sluit Manage request > Mark as resolved het verzoek daarentegen zonder de bestelling te wijzigen of de klant te e-mailen. Wijs het verzoek af wanneer de winkelier de verwijdering weigert. Markeer het alleen als afgehandeld nadat de eenheden zijn verwijderd en terugbetaald, of wanneer het verzoek op een andere manier is verwerkt.
Verifieer de ongedocumenteerde statusovergangen vóór de release
In Shopify admin wordt het verzoek afgehandeld wanneer je de gevraagde artikelen terugbetaalt of de bestelling annuleert, terwijl het verwijderen van artikelen en later terugbetalen het verzoek open laat. Shopify documenteert niet of refundCreate of een orderEditCommit die de gevraagde eenheden verwijdert het verzoek via de API afhandelt. Test in een ontwikkelwinkel of jouw API-route zich hetzelfde gedraagt als Shopify admin voordat je erop vertrouwt.
Maak een verzoek aan voor een deel van het aantal op een nog niet afgehandelde bestelregel en verwerk dat aantal daarna via de terugbetalings- of bewerkingsroute die je wilt gebruiken, zonder requestedOrderEditResolve aan te roepen. Controleer de resulterende verzoekstatus en resolvedQuantity, samen met de resterende eenheden in de bestelling en de terugbetalingstransactie. Leg vast welke verzoekwebhooks binnenkomen.
Maak nog een verzoek aan voor andere eenheden op dezelfde bestelling die in aanmerking komen, en test je handler voor vrijgave terwijl één verzoek nog openstaat. Houd de bestelling in het magazijn geblokkeerd zolang de winkelier nog een verzoek moet beoordelen. Als het verwijderen of terugbetalen mislukt, toon de winkelier dan een zichtbare foutmelding en houd de bestelling geblokkeerd.
Voer voor herstel een gepagineerde orders-query uit met het filter requested_order_edit_status:requested. Haal voor elke gevonden bestelling de requestedOrderEdits-connection op en stem die af op je verzoekregistraties. Stem ook de bestellingen die je integratie blokkeert op basis van hun ID af met je registraties, omdat een bestelling waarvan het laatste verzoek is gesloten terwijl een webhook werd gemist buiten die zoekopdracht valt. Bepaal het controle-interval op basis van de vrijgaveregels van het magazijn.
Bepaal wie de wijziging uitvoert
Handel toevoegingen buiten de API voor kopersverzoeken af. De bewerkingsflow voor winkeliers van Shopify staat het toevoegen van producten vóór de fulfillment toe.
Voor klanten die binnen een door de winkelier ingestelde bewerkingstermijn varianten willen wisselen, adressen willen corrigeren of artikelen willen toevoegen, gebruiken winkels een app zoals Revize waarmee klanten zelf hun bestelling kunnen bewerken. De instelling Hold orders, onder Fulfillment while editing, blokkeert de fulfillment zolang een ingestelde bewerkingstermijn nog niet is verlopen en geeft deze daarna vrij volgens het ingestelde vrijgavemoment en de betalingsvoorwaarden. Bij de termijn Until fulfillment stelt Revize geen blokkade in.
| Bewerking op verzoek van de koper | Bewerking door de winkelier | Revize (app waarmee klanten zelf bewerken) | |
|---|---|---|---|
| Wie start het | De koper via klantaccounts of via orderRequestEdit. Een app kan een verzoek voor de koper aanmaken |
Een medewerker van de winkel of een app die de API voor het bewerken van bestellingen gebruikt | De koper op de bestelstatuspagina van Shopify |
| Wie geeft goedkeuring | De winkelier of app beoordeelt het verzoek en verwerkt het of wijst het af | De medewerker of app voert de bewerking uit | De winkelier stelt vooraf de toegestane acties in. Annulering is automatisch als de bestelling hiervoor in aanmerking komt |
| Wat kan veranderen | Verwijdering van nog niet afgehandelde eenheden, ook een deel van het aantal. Indienen verandert niets | Producten, aantallen, verzendkosten en handmatige kortingen binnen de standaardbewerkingslimieten | Variant- en aantalwijzigingen, verzendadres en toegevoegde producten. Voor het toevoegen van producten is Pro vereist |
| Betaling | Aanmaken en afhandelen voeren geen terugbetaling uit. Voor het verwerken van de verwijdering is een beslissing over terugbetaling nodig | Bij een hoger totaalbedrag kan een bijgewerkte factuur worden verstuurd. Bij een lager totaalbedrag kan een terugbetaling worden uitgevoerd | Pay now, Refund of Confirm, afhankelijk van of het totaalbedrag stijgt, daalt of gelijk blijft. Shopify voert de betaling of terugbetaling uit; Pay now int alleen het verschil |
| Fulfillment | Alleen nog niet afgehandelde eenheden. Geen automatische blokkade gedocumenteerd | Aantallen wijzigen en bestelregels verwijderen: alleen bij nog niet afgehandelde bestelregels. Handmatige kortingen kunnen ook bij afgehandelde artikelen worden gewijzigd | Vóór de fulfillment, binnen de door de winkelier ingestelde termijn. De modus Hold orders blokkeert de fulfillment |
Stel Fulfillment while editing samen met het magazijn in voordat je de bewerkingsflow voor klanten opent. Verwijs klanten voor annuleringsinstructies naar de annuleringsgids.
Veelgestelde vragen
Ons verzoek is RESOLVED, maar de eenheden staan nog in de bestelling. Is er iets misgegaan met de API?
De status op zichzelf bewijst niet dat de eenheden zijn verwijderd. requestedOrderEditResolve markeert het verzoek als voltooid en accepteert alleen het id van het verzoek, zonder velden voor aantallen, terugbetaling of het terug op voorraad zetten. Klantenservicemedewerkers moeten de daadwerkelijke bestelling en terugbetalingsregistratie controleren voordat ze de koper laten weten dat de verwerking is afgerond.
Kan de koper via deze API’s om een maatwissel vragen?
Nee. De verzoekinvoer in 2026-10 ondersteunt alleen het verwijderen van nog niet afgehandelde eenheden. Laat de maatwijziging verlopen via de workflow van de winkel voor bewerkingen door de winkelier of bewerkingen die klanten zelf uitvoeren.
Betekent een webhook voor een afgehandeld verzoek dat alle verzoeken voor die bestelling gesloten zijn?
Nee. Haal requestedOrderEdits op of controleer displayRequestedEditStatus voordat je de magazijnbestelling vrijgeeft. De waarde REQUESTED op bestelniveau betekent dat de winkelier voor minstens één verzoek nog actie moet ondernemen.
Moeten we onze abonnementen op annuleringen van fulfillmentorders behouden?
Behoud ze als je integratie met een fulfillmentdienst ze nodig heeft. De onderwerpen fulfillment_orders/cancellation_request_* gaan over verzoeken van winkeliers of apps aan een fulfillmentdienst. Bewerkingen op verzoek van kopers gebruiken requested_order_edit/* en vereisen een eigen afhandeling.