Lista de desejos e dados do cliente
Como o cliente logado guarda produtos para depois e grava preferências próprias na conta.
A lista de desejos (wishlist) guarda produtos que o cliente quer comprar depois: o coração da página de produto e a tela "Meus favoritos". Esta seção também documenta o armazenamento de dados do cliente (/data/{type}), um espaço chave-valor privado por cliente, útil para preferências do app (tema, filtros salvos, últimos termos pesquisados).
Como funciona
- Marcar o coração
Adicionar e remover grava ou apaga o produto da lista. Para pintar o coração ao abrir a página, use Contar e verificar.
- Mostrar o contador
Contar e verificar devolve o total de favoritos para o ícone do cabeçalho.
- Mostrar Meus favoritos
Listar a lista de desejos devolve os produtos com nome, imagem e preço, do mais recente para o mais antigo, paginados.
Conceitos-chave
Quem é o dono
A lista pertence ao usuário do token. Não existe parâmetro para ver a lista de outra pessoa.
Produtos que somem
A lista exibe só produtos ativos e não excluídos. Um favorito cujo produto foi desativado continua gravado, mas deixa de aparecer na lista e em total. O contador de Contar e verificar conta tudo o que está gravado, então pode ser maior que total da lista.
Dados do cliente
/data/{type} guarda um JSON qualquer sob um nome (type) escolhido por você, uma entrada por cliente e nome. Serve para pequenas preferências; não use para dados sensíveis nem grandes volumes.
Endpoints
| Método | Caminho | Para que serve | Autenticação |
|---|---|---|---|
| GET | /api/v1/storefront/wishlist | Listar a lista de desejos | Cliente |
| GET | /api/v1/storefront/wishlist/count | Contar os favoritos | Cliente |
| GET | /api/v1/storefront/wishlist/{productId}/check | Verificar um produto | Cliente |
| POST | /api/v1/storefront/wishlist/{productId} | Adicionar à lista | Cliente |
| DELETE | /api/v1/storefront/wishlist/{productId} | Remover da lista | Cliente |
| GET | /api/v1/storefront/data/{type} | Ler dados do cliente | Cliente |
| PUT | /api/v1/storefront/data/{type} | Gravar dados do cliente | Cliente |
| DELETE | /api/v1/storefront/data/{type} | Apagar dados do cliente | Cliente |
Erros comuns
- Chamar sem token. Responde 401
missing authorization header. - Usar o slug no lugar do UUID em
/wishlist/{productId}. Responde 400invalid product_id. - Esperar
[]na lista vazia.itemscheganull; trate como vazio. - Comparar o contador com
total. Podem diferir (veja "Produtos que somem"). - Mandar
PUT /data/{type}semdata. Responde 400data is required. - Apagar um
typeque não existe. Responde 400 (não 404), com uma mensagem em inglês.