In questa pagina
Perché le 3 fasi dell’API sono importanti
La modifica di un ordine è una transazione, non un singolo aggiornamento. Shopify crea una versione calcolata dell’ordine, consente all’app di prepararvi le modifiche e applica quella versione quando l’app le conferma.
Su oltre 10 milioni di ordini nei negozi che usano Revize, circa 1 ordine su 19, pari al 5,2%, è stato modificato dopo il checkout (Revize, 2026). È un volume sufficiente per trattare la modifica degli ordini come un’attività ordinaria, anziché come un’eccezione da affidare all’assistenza.
CalculatedOrder è come una bozza della lista di prelievo del magazzino. Puoi aggiungere e rimuovere righe nella bozza, controllare il risultato e poi applicare una sola versione definitiva.
Il momento in cui avviene la modifica conta quanto la correttezza delle chiamate API. Nei negozi che usano Revize, il tempo mediano tra il checkout e la modifica è di 4,6 minuti (Revize, 2026). Se il prelievo inizia in quell’intervallo, anche un codice tecnicamente corretto può produrre il pacco sbagliato.

Come funziona l’API Shopify per la modifica degli ordini
Per la Shopify Admin API 2026-07, il flusso prevede orderEditBegin, una o più mutazioni per preparare le modifiche e infine orderEditCommit. I riferimenti delle mutazioni Shopify accettano sia l’ID dell’ordine calcolato sia quello della sessione di modifica per la preparazione e la conferma. Questa guida usa sempre calculatedOrder.id.
- Chiama
orderEditBegincon l’ID dell’ordine Shopify. - Salva
calculatedOrder.idcome$calculatedOrderId. - Esegui ogni mutazione di preparazione usando quell’ID.
- Controlla le righe e i totali dell’ordine calcolato, oltre a ogni array
userErrors. - Passa lo stesso ID a
orderEditCommit.
Shopify documenta questo modello di avvio, preparazione e conferma. L’app richiede l’ambito di accesso write_order_edits.
Una mutazione iniziale minima può richiedere entrambi gli oggetti per la diagnostica, scegliendo poi un solo identificatore per il resto del flusso:
mutation BeginOrderEdit($orderId: ID!) {
orderEditBegin(id: $orderId) {
calculatedOrder {
id
lineItems(first: 50) {
nodes {
id
quantity
}
}
}
orderEditSession {
id
}
userErrors {
field
message
}
}
}Fermati se userErrors non è vuoto. Una richiesta di rete riuscita dimostra solo che Shopify l’ha ricevuta, non che abbia accettato l’operazione.
La guida alla modifica relativa a questa versione dell’API documenta le operazioni per varianti, quantità, articoli personalizzati, sconti sulle righe d’ordine e righe di spedizione. Controlla il riferimento della mutazione per la versione 2026-07 prima di implementarla e di nuovo prima di cambiare versione dell’API.

Come completare il cambio di una variante
Per cambiare una variante, aggiungi quella sostitutiva e imposta a zero la quantità della riga originale dell’ordine calcolato nella stessa sessione di modifica. Conferma solo dopo che entrambe le operazioni sono riuscite e il risultato calcolato corrisponde a quanto confermato dal cliente.
Supponiamo che un cliente abbia ordinato una taglia media e abbia bisogno di una taglia grande.
- Avvia la modifica e salva
calculatedOrder.id. - Aggiungi la variante grande usando quell’ID:
mutation AddReplacement(
$calculatedOrderId: ID!
$variantId: ID!
$quantity: Int!
) {
orderEditAddVariant(
id: $calculatedOrderId
variantId: $variantId
quantity: $quantity
) {
calculatedLineItem {
id
quantity
}
userErrors {
field
message
}
}
}- Trova la taglia media originale nell’ordine calcolato. Usa l’ID della relativa riga calcolata, invece di copiare l’ID di una riga dell’ordine originale senza controllare lo stato calcolato restituito.

- Imposta a zero la quantità della riga originale:
mutation RemoveOriginal(
$calculatedOrderId: ID!
$lineItemId: ID!
) {
orderEditSetQuantity(
id: $calculatedOrderId
lineItemId: $lineItemId
quantity: 0
) {
calculatedLineItem {
id
quantity
}
userErrors {
field
message
}
}
}- Interroga di nuovo l’ordine calcolato. Verifica che la variante sostitutiva sia presente, che la quantità della variante originale sia zero e che i totali corrispondano alla conferma del cliente.
- Conferma usando lo stesso ID dell’ordine calcolato:
mutation CommitOrderEdit(
$calculatedOrderId: ID!
$notifyCustomer: Boolean!
$staffNote: String
) {
orderEditCommit(
id: $calculatedOrderId
notifyCustomer: $notifyCustomer
staffNote: $staffNote
) {
order {
id
updatedAt
}
userErrors {
field
message
}
}
}Attenzione: non confermare se l’aggiunta è riuscita ma la rimozione no. Trasformeresti il cambio in un articolo aggiuntivo.
Blocca i clic ripetuti sul pulsante di conferma, registra quale fase è stata completata e recupera di nuovo l’ordine prima di confermare se un altro processo potrebbe averlo modificato.
Quale mutazione usare per ogni modifica
Usa il flusso dell’ordine calcolato per modificare righe d’ordine, quantità, sconti e righe di spedizione. Usa orderUpdate e le mutazioni di annullamento e rimborso solo per le operazioni documentate nei riferimenti delle rispettive versioni.
| Richiesta del cliente | Operazione Shopify principale | Verifica da fare nell’applicazione |
|---|---|---|
| Cambiare la quantità o rimuovere un articolo | orderEditBegin più orderEditSetQuantity |
Verificare il risultato calcolato |
| Cambiare una variante | orderEditAddVariant più orderEditSetQuantity |
Preparare entrambe le modifiche prima della conferma |
| Aggiungere un prodotto | orderEditAddVariant |
Verificare disponibilità e saldo |
| Cambiare email, indirizzo di spedizione, tag, nota o metafield | orderUpdate |
Controllare l’ordine restituito e gli errori |
| Annullare l’intero ordine | orderCancel |
Verificare i dati di annullamento e la risposta |
| Creare un rimborso | refundCreate |
Verificare l’importo e gli errori restituiti |
Il riferimento di orderUpdate per la versione 2026-07 copre attributi come l’email del cliente, l’indirizzo di spedizione, i tag e i metafield, e documenta l’aggiornamento delle note nei suoi esempi. Per modifiche sostanziali, come aggiungere o rimuovere righe d’ordine, cambiare quantità o modificare sconti, rimanda a orderEditBegin.
Le considerazioni di Shopify sulla modifica degli ordini indicano che i codici sconto, gli sconti automatici e gli sconti tramite script non possono essere modificati. Non è possibile nemmeno aggiungere, rimuovere o cambiare gli sconti a livello di ordine. Le mutazioni per gli sconti sulle singole righe d’ordine non eliminano questi limiti.
Dove si ferma l’API Shopify per la modifica degli ordini
La conferma di una modifica e la gestione del pagamento o del rimborso sono due passaggi distinti. Shopify segnala che una modifica del totale può lasciare un saldo da pagare al cliente o un rimborso da effettuare.
Se il totale aumenta, recupera di nuovo l’ordine confermato e verifica come verrà incassato il saldo prima di avviarne l’evasione. Una risposta riuscita di orderEditCommit non dimostra che il pagamento sia stato completato.
Se il totale diminuisce, la conferma non sostituisce un flusso di rimborso dedicato. Calcola l’importo previsto, chiama l’operazione di rimborso appropriata e controlla la risposta. Una modifica senza differenza di importo non richiede né un incasso né un rimborso, ma richiede comunque una verifica finale dello stato dell’ordine.
Iscriviti al webhook orders/edited di Shopify, poi recupera di nuovo l’ordine prima che un sistema a valle intervenga. I webhook segnalano che occorre leggere il record corrente: non rendono affidabile una copia locale precedente.
Non lasciare che un fornitore di logistica di terze parti, o 3PL, avvii il prelievo di un ordine finché la modifica o la situazione finanziaria non è stata risolta. Verifica la sospensione, la regola sullo stato del pagamento o il segnale di rilascio con il sistema di magazzino che scarica effettivamente gli ordini.
Come diagnosticare gli errori di modifica
Inizia verificando l’idoneità dell’ordine, gli identificatori, la convalida e le modifiche concorrenti. Registra il nome della mutazione, l’ID dell’ordine Shopify, l’ID di modifica scelto e l’intero array userErrors, senza registrare dati riservati del cliente o del pagamento.
| Sintomo | Possibile causa da verificare | Prossima prova |
|---|---|---|
| L’avvio restituisce un errore di idoneità | Ordine archiviato, troppo vecchio o altrimenti non idoneo | Provare con un ordine recente e attivo |
calculatedOrder è null |
Problema di ambito di accesso, ID o idoneità | Esaminare ogni voce di userErrors |
| La fase di preparazione rifiuta l’ID | Oggetto errato o sessione di modifica non più valida | Usare un ID restituito dalla chiamata di avvio corrente |
| La conferma fallisce dopo una preparazione valida | L’ordine è cambiato dopo l’avvio | Recuperare di nuovo l’ordine e ricominciare |
| La conferma riesce ma il pagamento o rimborso resta da gestire | Si è dato per scontato che la gestione finanziaria fosse completata | Controllare il saldo |
| Il magazzino riceve righe non aggiornate | Il prelievo è iniziato troppo presto | Verificare i tempi di sospensione e rilascio |
I requisiti di Shopify per la modifica degli ordini indicano che le app richiedono write_order_edits, possono modificare solo le righe d’ordine non evase e non possono modificare gli ordini archiviati o effettuati prima del 1° gennaio 2019. Per impostazione predefinita, le app possono accedere agli ordini degli ultimi 60 giorni; per interrogare ordini più vecchi serve read_all_orders.
Sono regole distinte. read_all_orders amplia l’accesso ai record più vecchi, ma non rende modificabile un ordine archiviato o precedente al 2019.
Non basare il comportamento dell’applicazione su una stringa di errore ipotizzata. Leggi il campo e il messaggio restituiti per la richiesta specifica, poi riproduci l’errore con un ordine di prova controllato.
Scegliere Revize o sviluppare con le API
Revize è in genere la scelta più adatta quando vuoi consentire ai clienti di modificare gli ordini in autonomia prima dell’evasione; il codice personalizzato è adatto all’orchestrazione interna proprietaria. La scelta è tra un percorso cliente già pronto e la gestione diretta di ogni interfaccia, passaggio e misura di sicurezza per il magazzino.
| Criterio di scelta | Sviluppo personalizzato con le API Shopify | Revize |
|---|---|---|
| Logica di avvio, preparazione e conferma | Implementazione interamente a tuo carico | Flusso rivolto al cliente già disponibile |
| Punto di accesso del cliente | Progettato dal tuo team | Integrato nella pagina di stato dell’ordine Shopify |
| Aumento del valore dell’ordine | Occorre sviluppare il percorso di incasso | Paga ora apre il checkout Shopify per la differenza |
| Gestione dei rimborsi | Occorre sviluppare le regole e la gestione degli errori | Usa l’opzione di rimborso configurata |
| Termine per le modifiche | Timer e stato personalizzati | Finestra di modifica impostata dal merchant |
| Sicurezza dell’evasione degli ordini | Integrazione con il magazzino necessaria | Sospensione, acquisizione manuale del pagamento come alternativa o tag di rilascio |
| Orchestrazione proprietaria | Pieno controllo dell’implementazione | Trigger di Shopify Flow, tag di modifica e tag di rilascio |
| Test | Ogni percorso è gestito internamente | Percorso di test documentato con ordini preliminari |
Il codice personalizzato ha un ruolo preciso quando un merchant ha bisogno di una console proprietaria per lo staff o di un processo di approvazione che coinvolge più sistemi interni. Revize non offre un’API generale per la modifica degli ordini né una coda di approvazione per i merchant.
Le agenzie possono collegare i trigger documentati di Shopify Flow agli eventi di modifica di Revize, usare i tag di modifica e rilascio di Revize nella logica di evasione degli ordini oppure usare la Public Cancellation API per offrire una modalità esterna di annullamento. La Public Cancellation API è disponibile solo con Pro, richiede l’abilitazione da parte dell’assistenza e applica la finestra di modifica, le restrizioni e la politica di rimborso del portale.
Tra le modifiche successive all’acquisto nei negozi che usano Revize, il 92,2% è stato completato dai clienti senza l’intervento di un addetto all’assistenza (Revize, 2026). La guida per le agenzie alla modifica degli ordini dopo l’acquisto tratta le verifiche preliminari da fare prima dell’implementazione.
La disponibilità delle funzionalità varia in base al piano. L’aggiunta e il cambio di prodotti, i rimborsi sotto forma di credito del negozio, il ricalcolo di sconti, spedizione e imposte, il motore di regole, Reverse Unpaid Edits e la Public Cancellation API sono disponibili solo con Pro, come indicato nella documentazione sui piani di Revize.
Installa Revize: Order Editing & Upsell se vuoi offrire ai clienti un modo per modificare gli ordini in autonomia.

Come Revize completa il flusso
Revize offre ai clienti un flusso di modifica controllato nella pagina di stato dell’ordine Shopify. Il merchant imposta la finestra di modifica, le azioni disponibili, la politica di rimborso e la modalità di elaborazione degli ordini.
Quando una modifica aumenta il totale, Revize mostra Paga ora e reindirizza il cliente al checkout Shopify per pagare soltanto la differenza. Se il totale diminuisce, mostra Rimborso; se resta invariato, mostra Conferma. Shopify esegue il pagamento o il rimborso, come descritto nella documentazione sul flusso cliente di Revize.
Il merchant configura le tempistiche in Order Editing > Order edit window. La guida alla configurazione della finestra di modifica documenta durate preimpostate, durate personalizzate, orari di chiusura programmati e una modalità che consente modifiche fino all’evasione. Quest’ultima modalità non sospende da sola l’evasione dell’ordine.
Con la modalità di elaborazione consigliata, Revize applica una sospensione dell’evasione Shopify durante la finestra di modifica e la rimuove alla chiusura della finestra. I sistemi che ignorano le sospensioni potrebbero richiedere l’alternativa documentata dell’acquisizione manuale del pagamento. In alternativa, un tag di rilascio può dare il via libera a un sistema di evasione configurato per attendere quel tag.
Revize verifica l’inventario aggiornato, tenendo conto della zona di spedizione, prima di consentire al cliente di cambiare variante. La guida alla sospensione dell’evasione degli ordini tratta il lato magazzino del flusso.
Cosa testare questa settimana
Prova un ordine dal checkout fino all’evasione corretta, includendo i casi di errore. Una mutazione riuscita in un client GraphQL è solo il primo controllo.
- Crea un ordine di sviluppo o un ordine preliminare rappresentativo.
- Prova un cambio a parità di prezzo, un aumento e una diminuzione del valore.
- Controlla
userErrorsdopo l’avvio, ogni mutazione di preparazione e la conferma. - Verifica l’ordine calcolato prima di confermare.
- Verifica separatamente la gestione dell’incasso e del rimborso.
- Invia l’ordine modificato attraverso il sistema di evasione effettivo.
- Prova un ordine archiviato, un ordine più vecchio, tentativi sovrapposti e l’abbandono della modifica.
- Esamina i limiti della modifica nativa degli ordini Shopify prima di accedere alla produzione.

Domande frequenti
Qual è la differenza tra orderUpdate e orderEditBegin?
Usa orderUpdate per gli attributi dell’ordine supportati e orderEditBegin per le modifiche calcolate alle righe d’ordine. Nella Admin API 2026-07, orderUpdate copre attributi come email, indirizzo di spedizione, tag e metafield. L’aggiunta e la rimozione di prodotti, i cambi di quantità e variante e le modifiche agli sconti richiedono una sessione di modifica, seguita dalla preparazione e dalla conferma.
Perché orderEditBegin restituisce un errore di idoneità?
L’ordine potrebbe essere archiviato, precedente al 2019 o privo di righe non evase che Shopify può modificare. Controlla l’ID dell’ordine GraphQL, gli ambiti di accesso richiesti, l’età dell’ordine, lo stato di archiviazione, i requisiti di valuta e l’intera risposta userErrors. Fai una prova con un ordine recente e attivo prima di cambiare la logica dell’applicazione.
Si possono modificare tramite l’API Shopify le righe d’ordine già evase?
Le righe d’ordine evase non rientrano nel flusso di modifica degli ordini Shopify. Una richiesta ricevuta dopo l’evasione richiede un processo di assistenza o reso, anziché la riapertura di un ordine calcolato. Revize è pensato per le modifiche dei clienti prima dell’evasione e non è una piattaforma per i resi dopo la consegna.
Come si rimuove una riga d’ordine con l’API per la modifica degli ordini?
Avvia una modifica, trova la riga dell’ordine calcolato e chiama orderEditSetQuantity con quantità 0. Passa l’ID dell’ordine calcolato o della sessione di modifica accettato dalla mutazione, controlla userErrors e interroga il risultato calcolato prima di confermare. Imposta deliberatamente il comportamento della mutazione relativo al reintegro delle scorte e verificalo.
Come si cambia una variante in un ordine Shopify esistente?
Aggiungi la variante sostitutiva con orderEditAddVariant, imposta la riga originale calcolata a 0, controlla l’anteprima e poi conferma. Esegui entrambe le operazioni nella stessa sessione di modifica. Se l’aggiunta riesce ma la rimozione fallisce, fermati. Il flusso di cambio variante rivolto ai clienti di Revize verifica anche l’inventario aggiornato del magazzino che serve quell’indirizzo di spedizione.
orderEditCommit completa ogni pagamento o rimborso?
La conferma applica le modifiche preparate all’ordine, mentre la gestione finanziaria resta un passaggio separato. Dopo la conferma, recupera di nuovo l’ordine e controlla il saldo. Un aumento può richiedere un incasso prima dell’evasione; una diminuzione può richiedere un’operazione di rimborso separata. Revize offre ai clienti un flusso per la gestione della differenza tramite Shopify.
Quali ambiti di accesso servono per modificare gli ordini?
Il flusso di modifica dell’ordine calcolato richiede write_order_edits. Shopify indica inoltre che le app hanno bisogno di read_all_orders per interrogare gli ordini più vecchi di 60 giorni. Questo accesso aggiuntivo in lettura non supera i requisiti di idoneità alla modifica: gli ordini archiviati, quelli precedenti al 1° gennaio 2019 e le righe d’ordine evase restano esclusi dal flusso documentato.
Il cliente riceve una notifica dopo una modifica tramite API?
Lo sviluppatore controlla la notifica di conferma di Shopify tramite notifyCustomer in orderEditCommit. Impostalo in modo consapevole e usa staffNote quando è utile fornire contesto interno. Se il messaggio viene inviato da un altro sistema, recupera prima l’ordine confermato, così il cliente non riceverà varianti, quantità o totali non aggiornati.