Produtos

Atualizar um produto

PUT e PATCH usam o mesmo handler e são equivalentes — ambos aplicam um patch parcial; envie

OperaçãoMétodoEndpoint
Atualizar (parcial)PATCH/v1/products/{productId}
Atualizar (alias)PUT/v1/products/{productId}
ExcluirDELETE/v1/products/{productId}

PUT e PATCH usam o mesmo handler e são equivalentes — ambos aplicam um patch parcial; envie apenas os campos que deseja alterar (ao menos um). Escopos: products:update / products:delete.


Atualizar produto

PATCH / PUT /v1/products/{productId}

Atualiza apenas os dados do produto. As variantes não são alteradas por aqui — use os endpoints de Variantes. O slug é regenerado automaticamente quando o name muda (não é aceito na requisição). Os campos aceitos são os mesmos da criação (exceto variants), todos opcionais.

curl -X PATCH "https://api.selectwin.io/v1/products/prd_01hqzvabc" \
  -H "SelectKey: sk_live_aBcDeFgHiJkLmNoPqRsTuVwXyZ" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Premium Course",
    "description": "Curso completo (2026)",
    "enabled": true,
    "type": "digital",
    "language": "pt-BR",
    "category": "courses",
    "warrantyDays": 30,
    "salesPage": "https://loja.com/premium",
    "externalReference": "SKU-EXT-1"
  }'

Resposta 200 OK

Retorna o produto completo (mesmo formato de Consultar), já com as variantes:

{
  "id": "prd_01hqzvabc",
  "name": "Premium Course",
  "slug": "premium-course",
  "salesPage": "https://loja.com/premium",
  "description": "Curso completo (2026)",
  "language": "pt-BR",
  "enabled": true,
  "salesQty": 42,
  "type": "digital",
  "category": "courses",
  "externalReference": "SKU-EXT-1",
  "warrantyDays": 30,
  "images": ["https://example.com/img1.png"],
  "imageAssetIds": null,
  "createdAt": "2026-04-12T17:56:33.000Z",
  "updatedAt": "2026-04-12T18:00:00.000Z",
  "variants": [
    {
      "id": "var_01hqzvabc",
      "productId": "prd_01hqzvabc",
      "name": "Mensal",
      "slug": "mensal",
      "description": "Monthly billing",
      "sku": "SKU-M",
      "primary": true,
      "enabled": true,
      "pricing": { "unitPrice": 9900, "oldPrice": null, "costPerItem": null, "currency": "BRL", "schema": "unit", "type": "recurring", "billingType": "prepaid", "billingFrequency": "monthly", "billingFrequencyCount": 1 },
      "images": null,
      "metadata": null,
      "attributes": null,
      "externalReference": null,
      "checkoutUrl": null,
      "createdAt": "2026-04-12T17:56:33.000Z",
      "updatedAt": "2026-04-12T17:56:33.000Z"
    }
  ]
}

Para alterar a precificação ou os dados das variantes, use os endpoints de Variantes — não o update do produto.


Excluir produto

DELETE /v1/products/{productId}

curl -X DELETE "https://api.selectwin.io/v1/products/prd_01hqzvabc" \
  -H "SelectKey: sk_live_aBcDeFgHiJkLmNoPqRsTuVwXyZ"
{ "id": "prd_01hqzvabc", "resource": "product", "deleted": true }

Erros

error.codeHTTPQuando
productNotFound404Produto não encontrado para esta conta
invalidParameters400productId inválido ou corpo de atualização vazio

How is this guide?

On this page