Skip to content

Listagem de Comentários

GET /publics/products/comments

Retorna lista paginada de comentários ativos de produtos

Descrição

Endpoint responsável por retornar todos os comentários referentes a produtos 💬🛍️.

O controle da filtragem é realizado pelo frontend, que pode aplicar condições na requisição. Para buscar os comentários de um produto específico, deve-se forçar a condição pelo id do produto.

Parâmetros de Query

Campos de Condição Disponíveis

CampoTipoDescrição
parentCommentIdintegeridentificador do comentário pai (comentário que foi respondido)
productIdintegeridentificador único do produto
userIdintegeridentificador único do usuário
userNamestringnome do usuário
userEmailstringe-mail do usuário
customerIdintegeridentificador único do cliente
customerNamestringnome do cliente
customerEmailstringe-mail do cliente que realizou o comentário
replyByUserbooleandefine se foi respondido por um usuário
activebooleanstatus de ativação do comentário
createdAtstringdata de cadastro do comentário

Campos de Ordenação Disponíveis

CampoDescrição
productIdOrdernar por identificador único de produto
userIdOrdernar por identificador único de usuário
userEmailOrdernar por e-mail de usuário
customerIdOrdernar por identificador único de cliente
customerNameOrdernar por nome de cliente
createdAtOrdernar pela data de cadastro do comentário

Exemplo de Requisição

1curl --request GET \
2 --url https://sua-loja-uappi.com.br/api/v3/publics/products/comments \

✅ Resposta de Sucesso

1{
2 "registers": [
3 {
4 "id": 101,
5 "productId": 1234,
6 "parentCommentId": null,
7 "customerId": 567,
8 "customerName": "João Silva",
9 "customerEmail": "joao.silva@email.com",
10 "userId": null,
11 "userName": "",
12 "userEmail": "",
13 "message": "Produto excelente! Superou minhas expectativas. Entrega rápida e embalagem perfeita.",
14 "replyByUser": false,
15 "active": true,
16 "totalReplies": 1,
17 "product": {
18 "id": 1234,
19 "brandId": 1234,
20 "brandName": "TopPhone,
21 "mainCategoryId": 1,
22 "mainCategoryName": "smartphone",
23 "type": "product",
24 "name": "Smartphone XYZ Pro 128GB",
25 "sku": "SMPH001",
26 "url": "/smartphone-xyz-pro-128gb",
27 "comparisonPrice":2199.99,
28 "stock":20,
29 "medias":[
30 {
31 "id": 123,
32 "type": "image",
33 "title": "",
34 "alternativeText": null,
35 "file": "\/upload\/media\/produto-media.webp",
36 "originalFile": "\/upload\/media\/produto-media.png",
37 "size": null,
38 "originalSize": null,
39 "width": null,
40 "height": null,
41 "url": null
42 }
43 ],
44 "combination":[1, 2, 3],
45 "currentAttributes":[
46 {
47 "id":123,
48 "name":"cor",
49 "value":{
50 "id":123,
51 "label":"azul-escuro",
52 "image":null,
53 "originalImage":null,
54 "color":"#00008B",
55 "order":1
56 }
57 }
58 ],
59 "active": true
60 },
61 "createdAt": "2024-04-08 10:30:00",
62 "updatedAt": "2024-04-08 10:30:00"
63 },
64 {
65 "id": 102,
66 "productId": 1234,
67 "parentCommentId": 101,
68 "customerId": null,
69 "customerName": "",
70 "customerEmail": "",
71 "userId": 25,
72 "userName": "Suporte TechStore",
73 "userEmail": "suporte@techstore.com.br",
74 "message": "Olá João! Muito obrigado pelo feedback positivo.",
75 "replyByUser": true,
76 "active": true,
77 "totalReplies": 0,
78 "product": null,
79 "createdAt": "2024-04-08T14:15:00Z",
80 "updatedAt": "2024-04-08T14:15:00Z"
81 }
82 ],
83 "pagination": {
84 "limit": 10,
85 "offset": 0,
86 "pages": 5,
87 "registers": 47
88 }
89}

Criar Comentário no Produto

POST /publics/products/{productId}/comments

Cria comentário ou resposta em produto específico

Descrição

Endpoint responsável por permitir que um cliente crie comentários em um produto 💬🛍️.

Possibilita que o cliente envie opiniões, faça perguntas ao lojista ou interaja com outros clientes, promovendo maior engajamento e transparência na página do produto.

Este endpoint não requer autenticação.

No entanto, caso o cliente esteja autenticado, ele será identificado por meio do token e o comentário será automaticamente associado ao seu cadastro.

Parâmetros de Query

Headers Obrigatórios

HeaderValorDescrição
Content-Typeapplication/jsonTipo de conteúdo

Parâmetros da URL

ParâmetroTipoObrigatórioDescrição
productIdintegerSimID único do produto

Parâmetros do Body

CampoTipoObrigatórioDescrição
messagestringSimMensagem do comentário
parentCommentIdintegerNãoID do comentário pai (para respostas)
customerNamestringCondicionalNome do cliente (obrigatório se não autenticado, mínimo 3 caracteres)
customerEmailstringCondicionalEmail do cliente (obrigatório se não autenticado, formato válido)

Exemplo de Requisição

1curl --request POST \
2 --url {{MAIN_URL}}/publics/products/{productId}/comments \
3 --data '{
4 "message": "Esse celular vem com carregador?",
5 "parentCommentId": "1",
6 "customerName": "jose",
7 "customerEmail": "jose@exemplo.com"
8 }'

✅ Resposta de Sucesso

1{
2 "id": 1,
3 "productId": 1234,
4 "parentCommentId": null,
5 "customerId": 567,
6 "customerName": "João Silva",
7 "customerEmail": "joao.silva@email.com",
8 "userId": null,
9 "userName": "",
10 "userEmail": "",
11 "message": "Produto excelente! Superou minhas expectativas. Recomendo!",
12 "replyByUser": false,
13 "active": true,
14 "totalReplies": 0,
15 "product": null,
16 "createdAt": "2024-04-10T15:30:00Z",
17 "updatedAt": "2024-04-10T15:30:00Z"
18}

⚠️ Possíveis erros:

Atenção: a seguir estão destacados os principais erros que podem ocorrer neste endpoint.

Os cenários descritos representam os erros mais relevantes do contexto atual, servindo como referência para entendimento e tratamento das falhas.

Código InternoCódigo HttpDescrição
UAPPI_STORE_COMMENT_NOT_FOUND404O comentário solicitado não foi encontrado.
UAPPI_STORE_PRODUCT_NOT_FOUND404O produto solicitado não foi encontrado.

Uappi é a melhor opção para o crescimento da sua loja!

;