📌 Endpoint
GET /stores/:storeId/categories/:categoryId/products
Retorna os produtos públicos (não desabilitados) que pertencem a uma categoria de uma loja.
Os produtos são retornados na ordem de position (ascendente).
🔐 Autenticação
- Rota pública para consulta.
- A loja precisa existir e estar com plano ativo.
🧾 Parâmetros de rota
✅ Exemplo de requisição
🔎 Query params
🔄 Paginação por cursor
Para listas grandes (mais de ~100 itens), prefira paginação por cursor no lugar depage:
- Faça a primeira chamada sem
cursor. - Se
hasMorefortrue, a resposta traz o camponextCursor. - Envie esse
nextCursorno parâmetrocursorda próxima requisição para buscar a página seguinte.
nextCursor, hasMore e limit:
cursorepagenão podem ser usados juntos (400 INVALID_PAGINATION).nextCursor: nullcomhasMore: falseindicam o fim da lista (a API responde200com array vazio).
📦 Resposta de sucesso (200)
A primeira chamada (semcursor) já retornanextCursorehasMorena paginação, permitindo iniciar a paginação por cursor sem chamadas extras.
⚠️ Possíveis erros
400 INVALID_DATA→ parâmetro inválido400 INVALID_PAGINATION_LIMIT→limitfora do intervalo permitido (1a100)400 INVALID_PAGINATION_PAGE→pageinválida400 INVALID_PAGINATION_CURSOR→cursorinválido ou malformado400 INVALID_PAGINATION→pageecursorutilizados juntos404 STORE_NOT_FOUND→ loja não encontrada404 PRODUCTS_NOT_FOUND→ nenhum produto encontrado para a categoria403 NO_ACTIVE_SUBSCRIPTION(ou similar) → plano inativo/expirado500 INTERNAL_SERVER_ERROR→ erro interno