Nesta página
Por que as três etapas da API são importantes
A edição de pedidos é uma transação, não uma atualização única. A Shopify cria uma versão calculada do pedido, permite que o app prepare alterações nessa versão e a aplica quando o app confirma a edição.
Em mais de 10 milhões de pedidos de lojas que usam a Revize, cerca de 1 em cada 19 pedidos, ou 5,2%, foi editado após o checkout (Revize, 2026). É um volume suficiente para tratar a edição como parte da operação habitual, e não como uma exceção para a equipe de atendimento.
O CalculatedOrder funciona como uma cópia de prova de uma lista de separação do depósito. Você pode adicionar e remover itens nessa cópia, conferir o resultado e então publicar uma versão final.
O momento da edição importa tanto quanto as chamadas corretas à API. Nas lojas que usam a Revize, a mediana das edições ocorre 4,6 minutos após o checkout (Revize, 2026). Se a separação começar nesse intervalo, até um código tecnicamente correto pode resultar no envio do pacote errado.

Como funciona a API de edição de pedidos da Shopify
Na Shopify Admin API 2026-07, o fluxo é orderEditBegin, uma ou mais mutações de preparação e, por fim, orderEditCommit. As referências das mutações da Shopify aceitam o ID do pedido calculado ou o ID da sessão de edição para preparar e confirmar alterações. Este guia usa calculatedOrder.id em todo o fluxo.
- Chame
orderEditBegincom o ID do pedido da Shopify. - Armazene
calculatedOrder.idcomo$calculatedOrderId. - Execute cada mutação de preparação com esse ID.
- Confira os itens calculados, os totais e todos os arrays
userErrors. - Passe o mesmo ID para
orderEditCommit.
A Shopify documenta esse modelo de início, preparação e confirmação. O app precisa do escopo de acesso write_order_edits.
Uma mutação inicial mínima pode solicitar os dois objetos para diagnóstico e escolher um identificador para o restante do fluxo:
mutation BeginOrderEdit($orderId: ID!) {
orderEditBegin(id: $orderId) {
calculatedOrder {
id
lineItems(first: 50) {
nodes {
id
quantity
}
}
}
orderEditSession {
id
}
userErrors {
field
message
}
}
}Pare se userErrors não estiver vazio. Uma solicitação de rede bem-sucedida prova apenas que a Shopify a recebeu, não que aceitou a operação.
O guia de edição da versão da API documenta operações de preparação para variantes, quantidades, itens personalizados, descontos em itens e linhas de frete. Consulte a referência da mutação na versão 2026-07 antes de implementar e novamente antes de mudar a versão da API.

Como implementar uma troca completa de variante
Uma troca de variante adiciona a substituta e define como zero a quantidade do item calculado original na mesma sessão de edição. Confirme a edição somente depois que as duas operações tiverem sucesso e o resultado calculado corresponder ao que o cliente confirmou.
Imagine que um cliente comprou o tamanho M e precisa do G.
- Inicie a edição e armazene
calculatedOrder.id. - Adicione a variante de tamanho G usando esse ID:
mutation AddReplacement(
$calculatedOrderId: ID!
$variantId: ID!
$quantity: Int!
) {
orderEditAddVariant(
id: $calculatedOrderId
variantId: $variantId
quantity: $quantity
) {
calculatedLineItem {
id
quantity
}
userErrors {
field
message
}
}
}- Encontre o tamanho M original no pedido calculado. Use o ID do item calculado; não copie o ID de um item do pedido original sem conferir o estado calculado retornado.

- Defina a quantidade do item original como zero:
mutation RemoveOriginal(
$calculatedOrderId: ID!
$lineItemId: ID!
) {
orderEditSetQuantity(
id: $calculatedOrderId
lineItemId: $lineItemId
quantity: 0
) {
calculatedLineItem {
id
quantity
}
userErrors {
field
message
}
}
}- Consulte o pedido calculado novamente. Confirme que a variante substituta está presente, a quantidade da original é zero e os totais correspondem à confirmação do cliente.
- Confirme a edição usando o mesmo ID do pedido calculado:
mutation CommitOrderEdit(
$calculatedOrderId: ID!
$notifyCustomer: Boolean!
$staffNote: String
) {
orderEditCommit(
id: $calculatedOrderId
notifyCustomer: $notifyCustomer
staffNote: $staffNote
) {
order {
id
updatedAt
}
userErrors {
field
message
}
}
}Atenção: Não confirme a edição se a adição tiver dado certo, mas a remoção ainda não. Isso transforma uma troca em um item extra.
Rejeite cliques duplicados no botão de confirmação, registre qual etapa foi concluída e busque o pedido novamente antes de confirmar se outro processo puder tê-lo alterado.
Qual mutação usar para cada edição
Use o fluxo de pedido calculado para alterar itens, quantidades, descontos e linhas de frete. Use orderUpdate e as mutações de cancelamento e reembolso somente para as tarefas documentadas nas respectivas referências da versão da API.
| Solicitação do cliente | Operação principal da Shopify | Decisão do app |
|---|---|---|
| Alterar a quantidade ou remover um item | orderEditBegin mais orderEditSetQuantity |
Validar o resultado calculado |
| Trocar uma variante | orderEditAddVariant mais orderEditSetQuantity |
Preparar as duas alterações antes de confirmar |
| Adicionar um produto | orderEditAddVariant |
Validar a disponibilidade e o saldo |
| Alterar e-mail, endereço de entrega, tags, observação ou metafields | orderUpdate |
Conferir o pedido retornado e os erros |
| Cancelar o pedido inteiro | orderCancel |
Validar os dados de cancelamento e a resposta |
| Criar um reembolso | refundCreate |
Validar o valor e as falhas retornadas |
A referência de orderUpdate da versão 2026-07 cobre atributos como e-mail do cliente, endereço de entrega, tags e metafields, além de documentar a atualização de observações nos exemplos. Para alterações significativas, como adicionar ou remover itens, mudar quantidades ou modificar descontos, ela orienta o uso de orderEditBegin.
As considerações da Shopify sobre edição de pedidos informam que códigos de desconto, descontos automáticos e descontos de scripts não podem ser editados. Descontos aplicados ao pedido inteiro também não podem ser adicionados, removidos ou alterados. As mutações de desconto em itens não eliminam essas limitações.
Onde termina o alcance da API de edição de pedidos da Shopify
A confirmação da edição e a liquidação financeira são etapas separadas. A Shopify informa que uma edição que altera o total pode deixar um saldo a pagar pelo cliente ou um valor a reembolsar.
Quando o total aumenta, busque o pedido confirmado novamente e verifique como o saldo será cobrado antes de liberá-lo para o processamento de pedidos (fulfillment). Uma resposta bem-sucedida de orderEditCommit não comprova que o pagamento foi concluído.
Quando o total diminui, a confirmação da edição não substitui um fluxo de reembolso deliberado. Calcule o valor pretendido, chame a operação de reembolso apropriada e confira a resposta. Uma edição sem diferença de valor não exige cobrança nem reembolso, mas ainda exige uma verificação final do estado do pedido.
Inscreva-se no webhook orders/edited da Shopify e busque o pedido novamente antes que um sistema posterior tome alguma medida. Webhooks sinalizam que é preciso ler o registro atual; não são motivo para confiar em uma cópia local anterior.
Não permita que um operador logístico terceirizado, ou 3PL, separe um pedido enquanto a edição ou a situação financeira estiver pendente. Teste a retenção, a regra de status do pagamento ou o sinal de liberação no sistema do depósito que efetivamente baixa os pedidos.
Como diagnosticar falhas na edição
Comece verificando a elegibilidade, os identificadores, a validação e as alterações simultâneas. Registre o nome da mutação, o ID do pedido da Shopify, o ID de edição escolhido e o array userErrors completo, sem registrar dados sigilosos do cliente ou do pagamento.
| Sintoma | O que investigar | Próximo teste |
|---|---|---|
| O início retorna um erro de elegibilidade | Pedido arquivado, antigo ou inelegível por outro motivo | Testar um pedido recente e ativo |
calculatedOrder é nulo |
Falha de escopo, ID ou elegibilidade | Conferir todas as entradas de userErrors |
| A operação de preparação rejeita o ID | Objeto incorreto ou sessão de edição desatualizada | Usar um ID retornado pela chamada inicial atual |
| A confirmação falha após uma preparação válida | O pedido mudou após o início da edição | Buscar o pedido novamente e reiniciar a edição |
| A confirmação funciona, mas há valores pendentes | A liquidação foi presumida | Conferir o saldo |
| O depósito recebe itens desatualizados | A separação começou cedo demais | Testar o momento da retenção e da liberação |
Os requisitos de edição de pedidos da Shopify dizem que os apps precisam de write_order_edits, só podem editar itens ainda não processados e não podem editar pedidos arquivados nem pedidos feitos antes de 1º de janeiro de 2019. Por padrão, os apps têm acesso aos pedidos dos últimos 60 dias; consultar pedidos mais antigos exige read_all_orders.
Essas regras são independentes. read_all_orders amplia o acesso a registros antigos, mas não torna editável um pedido arquivado ou anterior a 2019.
Não baseie o comportamento do app em uma mensagem de erro presumida. Leia o campo e a mensagem retornados para a solicitação específica e reproduza a falha com um pedido de teste controlado.
Usar a Revize ou começar pelas APIs
A Revize é a opção padrão mais adequada quando o objetivo é permitir que o cliente edite o próprio pedido antes do processamento; código personalizado atende à coordenação interna específica da empresa. A escolha é entre uma jornada do cliente pronta para uso e a responsabilidade por cada interface, transição e proteção do fluxo no depósito.
| Critério de decisão | Implementação personalizada com a API da Shopify | Revize |
|---|---|---|
| Lógica de início, preparação e confirmação | Responsabilidade por toda a implementação | Fluxo para o cliente fornecido pelo app |
| Ponto de entrada do cliente | Projetado pela sua equipe | Integrado à página de status do pedido da Shopify |
| Aumento do valor do pedido | É preciso criar o fluxo de cobrança | Pagar agora abre o checkout da Shopify para cobrar a diferença |
| Tratamento de reembolsos | É preciso implementar a política e o tratamento de falhas | Usa a opção de reembolso configurada |
| Prazo para edição | Temporizadores e estado personalizados | Janela de edição definida pelo lojista |
| Segurança do processamento de pedidos | É necessária integração com o depósito | Retenção, alternativa de captura de pagamento ou tag de liberação |
| Coordenação específica da empresa | Controle total da implementação | Acionadores do Shopify Flow, tags de edição e tags de liberação |
| Testes | Todos os fluxos são responsabilidade da equipe interna | Fluxo de teste com pedido preliminar documentado |
O código personalizado tem uma função clara quando o lojista precisa de um painel exclusivo para a equipe ou de um processo de aprovação que abrange sistemas internos. A Revize não oferece uma API geral de edição de pedidos nem uma fila de aprovação para lojistas.
As agências podem conectar acionadores documentados do Shopify Flow aos eventos de edição da Revize, usar as tags de edição e liberação da Revize na lógica de processamento de pedidos ou usar a Public Cancellation API para oferecer cancelamento em uma interface externa. A Public Cancellation API é exclusiva do Pro, exige ativação pelo suporte e aplica a janela de edição, as restrições e a política de reembolso do portal.
Entre as edições feitas após a compra em lojas que usam a Revize, 92,2% foram concluídas pelos clientes sem a ajuda de um atendente (Revize, 2026). O guia de edição de pedidos após a compra para agências aborda o levantamento necessário antes da implementação.
A disponibilidade dos recursos varia conforme o plano. Adição e troca de produtos, reembolsos em crédito na loja, recálculo de descontos, frete e tributos, mecanismo de regras, Reverse Unpaid Edits e Public Cancellation API são exclusivos do Pro, conforme detalhado na documentação de cobrança da Revize.
Instale Revize: Order Editing & Upsell quando o objetivo for oferecer uma solução funcional de autoatendimento, em vez de mais uma interface interna de edição.

Como a Revize completa o fluxo
A Revize oferece aos clientes um fluxo de edição controlado na página de status do pedido da Shopify. O lojista define a janela, as ações disponíveis, a política de reembolso e o modo de processamento de pedidos.
Quando uma edição aumenta o total, a Revize apresenta Pagar agora e redireciona o cliente ao checkout da Shopify apenas para pagar a diferença. Se o total diminui, apresenta Reembolsar; se não muda, apresenta Confirmar. A Shopify executa o pagamento ou o reembolso, conforme descrito no fluxo do cliente da Revize.
O lojista define o prazo em Order Editing > Order edit window. O guia de configuração da janela de edição documenta durações predefinidas, durações personalizadas, horários de encerramento programados e o modo que permite editar até o processamento do pedido. Esse modo, por si só, não coloca o pedido em retenção.
No modo de processamento recomendado, a Revize aplica uma retenção ao processamento do pedido na Shopify durante a janela de edição e a libera quando a janela se encerra. Sistemas que ignoram retenções podem precisar da alternativa documentada de captura manual de pagamento. Uma tag de liberação pode, em vez disso, sinalizar a um sistema de processamento de pedidos configurado para aguardar essa tag.
A Revize verifica o estoque em tempo real, considerando a zona de entrega, antes de permitir que o cliente troque uma variante. O guia de retenção do processamento de pedidos aborda a parte do fluxo que ocorre no depósito.
O que testar nesta semana
Teste um pedido desde o checkout até o processamento corrigido, incluindo as falhas. Uma mutação bem-sucedida em um cliente GraphQL é apenas a primeira verificação.
- Crie um pedido representativo de desenvolvimento ou um pedido preliminar.
- Teste uma troca sem diferença de valor, um aumento e uma redução de valor.
- Confira
userErrorsapós o início, cada mutação de preparação e a confirmação. - Confira o pedido calculado antes de confirmar a edição.
- Verifique separadamente o tratamento da cobrança e do reembolso.
- Envie o pedido editado pelo sistema real de processamento de pedidos.
- Teste um pedido arquivado, um pedido antigo, tentativas simultâneas e abandono.
- Consulte as limitações da edição nativa de pedidos da Shopify antes de habilitar o acesso em produção.

Perguntas frequentes
Qual é a diferença entre orderUpdate e orderEditBegin?
Use orderUpdate para atributos de pedido aceitos e orderEditBegin para alterações calculadas nos itens. Na Admin API 2026-07, orderUpdate cobre atributos como e-mail, endereço de entrega, tags e metafields. Adições e remoções de produtos, mudanças de quantidade, trocas e modificações de descontos exigem uma sessão de edição, seguida da preparação e confirmação.
Por que orderEditBegin retorna um erro de elegibilidade?
O pedido pode estar arquivado, ser anterior a 2019 ou não ter itens ainda não processados que a Shopify possa editar. Confirme o ID GraphQL do pedido, os escopos de acesso necessários, a data do pedido, o estado de arquivamento, os requisitos de moeda e a resposta userErrors completa. Teste com um pedido recente e ativo antes de mudar a lógica do app.
É possível editar itens já processados pela API da Shopify?
Itens já processados estão fora do fluxo de edição de pedidos da Shopify. Uma solicitação recebida após o processamento exige atendimento ou um processo de devolução, em vez de reabrir um pedido calculado. A Revize foi criada para alterações feitas pelo cliente antes do processamento de pedidos e não é uma plataforma de devoluções após a entrega.
Como remover um item com a API de edição de pedidos?
Inicie uma edição, encontre o item calculado e chame orderEditSetQuantity com a quantidade 0. Passe o ID do pedido calculado ou da sessão de edição aceito pela mutação, confira userErrors e consulte o resultado calculado antes de confirmar. Defina e verifique deliberadamente o comportamento de devolução ao estoque da mutação.
Como trocar uma variante em um pedido existente da Shopify?
Adicione a substituta com orderEditAddVariant, defina a quantidade do item calculado original como 0, confira a prévia e confirme a edição. Mantenha as duas operações na mesma sessão de edição. Se a adição funcionar, mas a remoção falhar, pare. O fluxo de troca da Revize para clientes também valida o estoque em tempo real do depósito que atende aquele endereço de entrega.
orderEditCommit liquida todos os pagamentos ou reembolsos?
A confirmação aplica as alterações preparadas no pedido, enquanto a liquidação financeira continua sendo uma etapa separada. Após a confirmação, busque o pedido novamente e confira o saldo. Um aumento pode exigir cobrança antes do processamento; uma redução pode exigir uma operação de reembolso separada. A Revize oferece ao cliente um fluxo de liquidação pela Shopify.
Quais escopos de acesso são necessários para editar pedidos?
O fluxo de edição de pedidos calculados exige write_order_edits. A Shopify também informa que os apps precisam de read_all_orders para consultar pedidos com mais de 60 dias. Esse acesso adicional de leitura não elimina os critérios de elegibilidade para edição: pedidos arquivados, pedidos anteriores a 1º de janeiro de 2019 e itens já processados continuam fora do fluxo documentado.
O cliente recebe uma notificação após uma edição pela API?
O desenvolvedor controla a notificação de confirmação da Shopify com notifyCustomer em orderEditCommit. Defina esse valor deliberadamente e use staffNote quando um contexto interno for útil. Se outro sistema enviar a mensagem, busque o pedido confirmado novamente primeiro para que o cliente não receba variantes, quantidades ou totais desatualizados.