VenddorDocumentação API
API atualAPI legada
Guia rápidoReferência completa
Carregando índice…
API legada/Referência completa/Pedidos (REST)

Atualizar um pedido

Altera o status, os produtos ou os dados do cliente de um pedido existente, com notificações por e-mail opcionais.

Para atualizar um pedido existente, envie uma requisição PUT ao endpoint com o id do pedido na URL, por exemplo PUT /api/orders/98. Inclua os detalhes do pedido no corpo da requisição HTTP, de acordo com o Content-Type que você informar. Nenhum campo é obrigatório: envie só o que você quer mudar.

Esta é também a única forma de mudar o status de um pedido, porque um pedido recém-criado é sempre O (Aberto). As seções abaixo mostram as três atualizações mais comuns: o status, os produtos e os dados do cliente junto com o total do pedido.

PUT/api/orders/{order_id}Admin

Atualizar um pedido existente

Parâmetros de caminho

order_idintegerobrigatório
O identificador único do pedido a atualizar.

Corpo da requisição

statusstring
O novo código de status do pedido, por exemplo P.
notify_userstring
1
Use "1" para enviar uma notificação ao cliente.
notify_departmentstring
1
Use "1" para enviar uma notificação ao departamento de pedidos.
notify_vendorstring
1
Use "1" para enviar uma notificação ao vendedor.
productsobject
Os produtos do pedido, na mesma estrutura usada para criar um pedido. Precisa listar todos os produtos que devem ficar no pedido.
totalstring
O total do pedido. Tem prioridade sobre os outros parâmetros que o afetariam.
user_dataobject
Dados do cliente no pedido, como email, b_firstname, b_lastname, s_firstname e s_lastname.

Mudar o status e avisar por e-mail

Por padrão, mudar o status de um pedido pela API não envia notificações por e-mail. Você pode usar estas flags opcionais de notificação.

ParâmetroTipoDescrição
notify_userstringUse "1" para enviar uma notificação ao cliente
notify_departmentstringUse "1" para enviar uma notificação ao departamento de pedidos
notify_vendorstringUse "1" para enviar uma notificação ao vendedor

Esta requisição define o status do pedido como P (Processado) e envia notificações por e-mail ao cliente, ao vendedor e ao departamento de pedidos.

bash
curl -X PUT -u "$EMAIL:$API_KEY" "$BASE_URL/api/orders/98" \
  -H "Content-Type: application/json" \
  -d '{
  "status": "P",
  "notify_user": "1",
  "notify_department": "1",
  "notify_vendor": "1"
}'

Mudar os produtos de um pedido

Esta requisição altera os produtos do pedido. O pedido original tinha um produto com product_id=12 e dois produtos com product_id=13. Depois da atualização, o pedido passa a ter um produto com product_id=12 e um produto com product_id=241. O produto 241 também tem variantes de opção selecionadas: a variante 44 da opção 12 e a variante 48 da opção 13.

bash
curl -X PUT -u "$EMAIL:$API_KEY" "$BASE_URL/api/orders/98" \
  -H "Content-Type: application/json" \
  -d '{
  "products": {
    "1": {
      "product_id": "12",
      "amount": "1"
    },
    "3": {
      "product_id": "241",
      "amount": "1",
      "product_options": {
        "12": "44",
        "13": "48"
      }
    }
  }
}'
Atenção

Ao atualizar o objeto products com um PUT, você precisa informar todos os produtos que devem ficar no pedido. Qualquer produto que não estiver na requisição é removido do pedido. O mesmo vale para as variantes de opção dos produtos.

Mudar os dados do cliente e o total do pedido

Esta requisição troca o nome do cliente, nos endereços de cobrança e de entrega, para John Doe, troca o e-mail do cliente para customer@example.com e define o total do pedido como $100 (supondo que o USD seja a moeda principal da sua loja).

bash
curl -X PUT -u "$EMAIL:$API_KEY" "$BASE_URL/api/orders/98" \
  -H "Content-Type: application/json" \
  -d '{
  "total": "100",
  "user_data": {
    "email": "customer@example.com",
    "b_firstname": "John",
    "b_lastname": "Doe",
    "s_firstname": "John",
    "s_lastname": "Doe"
  }
}'
Nota

Mudar esses dados afeta apenas as informações na página do pedido, não os dados da conta do usuário.

Prioridade do total

Se você informar total e também outros parâmetros que o afetariam (como discount ou subtotal_discount) na mesma requisição, o campo total sempre tem prioridade. Você pode informar total, mas não subtotal, na mesma requisição.

Formato da resposta

Resposta de sucesso (200 OK)

200Pedido atualizado
json
{
  "order_id": "98"
}

Códigos de status da resposta

Código de statusDescrição
200 OKPedido atualizado com sucesso
400 Bad RequestParâmetros da requisição inválidos
404 Not FoundNão existe pedido com o id informado

Veja também

  • Obter um pedido
  • Criar um pedido
  • Excluir um pedido
Anterior
Criar um pedido
Próxima
Excluir um pedido
Nesta página
  • Mudar o status e avisar por e-mail
  • Mudar os produtos de um pedido
  • Mudar os dados do cliente e o total do pedido
  • Formato da resposta
  • Resposta de sucesso (200 OK)
  • Códigos de status da resposta
  • Veja também