Excluir categoria
Manda uma categoria vazia para a lixeira ou, com cascata, apaga de vez a categoria, as filhas e os produtos delas.
Use esta operação para remover uma categoria do catálogo. O comportamento depende do conteúdo dela e é a parte mais delicada desta seção, então leia a tabela antes de integrar.
| Situação da categoria | Sem cascade | Com cascade=true |
|---|---|---|
| Vazia e sem filhas vivas | Vai para a lixeira (status T). Some das listas, mas pode ser restaurada em até 30 dias. Responde 204. | Apagada de vez, com todas as descendentes. Responde 204. |
| Com produtos | Recusa com 409 (Category has products...). | Apaga de vez a categoria, as filhas e todos os produtos ligados a elas. |
| Com filhas vivas | Recusa com 409 (Category has subcategories...). | Apaga de vez a subárvore inteira. |
Produtos que já foram excluídos (soft delete) não contam como "produtos" para a recusa. "Filhas vivas" são as que não estão na lixeira.
/api/v1.0/categories/{id}AdminExcluir uma categoria
Autenticação: HTTP Basic com e-mail:chave_de_api de um administrador, ou Bearer <JWT>.
Parâmetros de caminho
idstringobrigatórioUUID da categoria ou o slug dela.
Parâmetros de consulta
cascadestringtrueCom o valor exato
true, apaga também filhas e produtos (veja o aviso acima). Qualquer outro valor é ignorado./api/categories/{id}AdminExcluir uma categoria (rota sem /v1.0)
A mesma operação sem o /v1.0, com o mesmo parâmetro cascade. O {id} aceita UUID ou slug.
Exemplo de requisição
bash
curl -u "$EMAIL:$API_KEY" -X DELETE \
"$BASE_URL/api/v1.0/categories/mesas"Resposta
204Categoria removida
http
HTTP/1.1 204 No ContentA resposta não tem corpo.
Erros
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem credenciais ou token expirado | {"message":"Authentication required. Use HTTP Basic with email:api_key or Bearer <jwt>.","status":401} |
| 403 | Não é administrador | {"message":"Forbidden: admin scope required","status":403} |
| 404 | Categoria não existe | {"message":"Category not found","status":404} |
| 409 | Tem produtos, tem filhas vivas ou (com cascata) algum produto é referenciado por outro registro | {"message":"Category has products; pass ?cascade=true or move them first","status":409} ou {"message":"Category has subcategories; pass ?cascade=true or move them first","status":409} |
| 400 | Outra falha ao excluir (por exemplo, com cascata, um produto referenciado por outro registro) | {"message":"<motivo>","status":400} |