⭐ Avaliações
📋 Visão Geral
As avaliações são análises e críticas feitas por compradores sobre um produto, serviço ou ferramenta, permitindo relatar experiência, satisfação pessoal e recomendações para outros clientes.
Elas trazem transparência para a decisão de compra e fornecem ao lojista feedbacks valiosos, possibilitando melhorias e ajustes para aumentar a satisfação dos clientes.
🔄 Entidades Relacionadas
No contexto Uappi, as avaliações estão relacionadas a três tipos principais: App, Produto e Canal de Venda.
Apesar das particularidades de cada um, todos compartilham muitas características em relação às avaliações.
🧩 App — Usuário
Um App funciona como um plug-in para a loja, adicionando funcionalidades extras como login social, métodos de pagamento, cálculo de frete, envio de e-mails ou integração com redes sociais.
As avaliações de Apps permitem ao lojista analisar experiências de outros usuários, ajudando a decidir se vale a pena ativar determinada ferramenta no ecossistema da loja.
Nesse contexto, o avaliador é identificado pelo ID do usuário (userId).
🏪 Canal de Venda — Cliente
O canal de venda define como a loja é disponibilizada e acessada pelos clientes, incluindo o domínio e o contexto de operação.
As avaliações nesse contexto refletem a experiência do cliente com a loja, indicando confiabilidade e qualidade do serviço/produtos, além de fornecer feedback direto ao lojista.
O objeto retornado inclui o salesChannelId e o salesChannelDomain associados à avaliação.
📦 Produto — Cliente
Um produto pode ser físico ou digital, incluindo serviços, plataformas ou funcionalidades.
O foco principal é o valor entregue ao usuário.
As avaliações de produtos ajudam outros clientes a tomar decisões mais conscientes, enquanto permitem ao lojista entender satisfação, pontos fortes e melhorias necessárias.
O objeto retornado pode incluir o objeto resumido do produto (product) e as mídias vinculadas (medias), quando solicitados.
🗂️ Estrutura da Avaliação
Todos os tipos de avaliação compartilham um conjunto base de campos, estendido com campos específicos conforme o contexto.
📄 Campos base (todos os tipos)
id— identificador único da avaliaçãoname— nome do avaliadoremail— e-mail do avaliador; omitido nas consultas públicas (publicSearch = true)comment— texto descritivo com o relato da avaliaçãorecommended— indica se o avaliador recomenda o item avaliado (true/false)score— nota atribuída ao item pelo avaliadoractive— indica se a avaliação está ativa e contabilizada na médiamasked— indica se os dados sensíveis do avaliador foram mascaradoscreatedAt— data e hora de cadastro da avaliaçãoupdatedAt— data e hora da última atualização da avaliaçãoproductId— ID do produto avaliadocustomerId— ID do cliente que realizou a avaliaçãomedias— lista de mídias vinculadas à avaliação, ounullquando não solicitada (campo customizadomedias)product— objeto resumido do produto avaliado (SimpleProductDMC), ounullquando não solicitado (campo customizadoproducts)reviewId— ID da avaliação à qual a mídia está vinculadamediaId— ID da mídiaimage— URL da imagem vinculada à avaliaçãocreatedAt— data e hora de cadastro da mídiaproductId— ID do produtobrandId— ID da marca do produto, ounullquando não disponívelbrandName— nome da marca, ounullquando não disponívelmainCategoryId— ID da categoria principal, ounullquando não disponívelmainCategoryName— nome da categoria principal, ounullquando não disponíveltype— tipo do produtosku— SKU do produtoname— nome do produtoactive— indica se o produto está ativourl— URL amigável do produto na lojacomparisonPrice— preço de comparação do produtostock— estoque disponível, ounullquando não disponívelmedias— lista de mídias do produtocombination— lista de combinações do produtocurrentAttributes— lista de atributos atuais do produtorestriction— restrição de acesso ao produto, ounullquando não aplicávelsalesChannelId— ID do canal de venda associado à avaliaçãocustomerId— ID do cliente que realizou a avaliaçãosalesChannelDomain— domínio do canal de vendaappId— ID do App avaliadouserId— ID do usuário que realizou a avaliação- Uma avaliação não pode ser feita mais de uma vez por item (App, produto ou canal de venda)
- Toda avaliação feita por um cliente é cadastrada inicialmente como inativa; a ativação é responsabilidade do lojista (no caso de Apps, apenas o Admin Sources)
- Qualquer ativação ou desativação de avaliação recalcula a nota média do item, considerando ou desconsiderando a avaliação atual
📦 Campos adicionais — Avaliação de Produto
🖼️ Estrutura de Mídia da Avaliação (medias)
Cada item da lista de mídias contém:
🛍️ Estrutura do Produto Resumido (product)
Quando o campo product é retornado, ele contém:
🏪 Campos adicionais — Avaliação de Canal de Venda
🧩 Campos adicionais — Avaliação de App
📌 Regras Gerais
Criar Avaliação do Cliente ao canal de venda
/review/sales-channel/
Cria uma nova avaliação feita por um cliente a respeito de um canal de venda.
📋 Descrição
Endpoint responsável por criar uma avaliação de um canal de venda (loja) feita por um cliente 🏬⭐.
Regras importantes:
- Cada cliente pode avaliar a loja apenas uma vez
- A avaliação é cadastrada inicialmente com status "inativo"
- A exibição é definida exclusivamente pelo lojista
- A nota só é contabilizada quando a avaliação estiver ativa
- Sempre que o status for alterado (ativação ou inativação), o cálculo da nota média da loja é refeito, considerando ou desconsiderando a avaliação
📝 Parâmetros
🏷️ Headers Obrigatórios
| Header | Valor | Descrição |
|---|---|---|
Content-Type | application/json | Tipo de conteúdo |
Authorization | Bearer SEU_TOKEN_AQUI | Token de autenticação do cliente |
📦 Parâmetros do Corpo
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
name | string | ❌ | Nome do cliente (máx. 255 caracteres) |
email | string | ❌ | E-mail do cliente (máx. 255 caracteres) |
comment | string | ✅ | Comentário do cliente (máx. 65535 caracteres) |
recommended | boolean | ✅ | Recomendação do cliente (true ou false) |
score | integer | ✅ | Pontuação da avaliação (entre 1 e 5) |
💡 Exemplo de Requisição
1curl --request POST \2 --url '{{MAIN_URL}}/review/sales-channel/' \3 --header 'Content-Type: application/json' \4 --header 'Authorization: Bearer SEU_TOKEN_AQUI' \5 --data '{6 "comment": "Ótima loja, recomendo a todos!",7 "recommended": true,8 "score": 59 }'✅ Resposta de Sucesso
HTTP Status: 200 OK
1{2 "status": true,3 "data": {4 "id": 18,5 "name": "joão",6 "email": "joão@email.com",7 "comment": "Essa é definitivamente uma das lojas já feitas",8 "recommended": true,9 "score": 5,10 "active": false,11 "masked": false,12 "createdAt": "2025-06-24 20:01:15",13 "updatedAt": "2025-06-24 20:01:15",14 "salesChannelId": 1,15 "customerId": 1,16 "salesChannelDomain": "sualoja.com.br"17 }18}⚠️ Possíveis Erros
> Os cenários abaixo representam os principais erros que podem ocorrer neste endpoint, servindo como referência para entendimento e tratamento das falhas.
| Código do Erro | HTTP | Descrição |
|---|---|---|
EXPIRED_AUTH_TOKEN | 401 | Token expirado — o token de autenticação informado está vencido |
INVALID_AUTH_TOKEN | 401 | Token inválido — o token de autenticação informado não é válido |
INVALID_AUTH_HOST | 403 | Host inválido — o domínio da requisição não corresponde ao registrado no token |
INVALID_CUSTOMER | 401 | Cliente inválido — o cliente autenticado não foi encontrado ou está inativo |
UAPPI_TOOLS_REVIEW_ITEM_EVALUATED | 400 | Avaliação duplicada — o cliente já realizou uma avaliação para este canal de venda |
Busca por avaliação de cliente
/review/sales-channel/customer
Busca avaliação realizada pelo cliente atual para um canal de venda específico.
📋 Descrição
Endpoint responsável por buscar e retornar a avaliação do cliente referente a um canal de venda específico 🏬⭐.
Como cada cliente pode realizar apenas uma avaliação por loja, o retorno será único, caso a avaliação já tenha sido cadastrada.
Neste cenário, não é necessário informar parâmetros adicionais na requisição.
A identificação é feita exclusivamente por meio do token de autenticação do cliente, que permite localizar diretamente a avaliação vinculada à loja atual.
📝 Parâmetros
🏷️ Headers Obrigatórios
| Header | Valor | Descrição |
|---|---|---|
Authorization | Bearer SEU_TOKEN_AQUI | Token de autenticação |
💡 Exemplo de Requisição
1curl --request GET \2 --url '{{MAIN_URL}}/review/sales-channel/customer' \3 --header 'Authorization: Bearer SEU_TOKEN_AQUI'✅ Resposta de Sucesso
HTTP Status: 200 OK
1{2 "status": true,3 "data": {4 "id": 1,5 "name": "Maria",6 "email": "mariabatata@email.com",7 "comment": "Teste",8 "recommended": true,9 "score": 5,10 "active": false,11 "masked": false,12 "createdAt": "2025-10-15 17:34:56",13 "updatedAt": "2025-10-15 17:34:56",14 "salesChannelId": 1,15 "customerId": 1,16 "salesChannelDomain": "sualoja.com.br"17 }18}⚠️ Possíveis Erros
> Os cenários abaixo representam os principais erros que podem ocorrer neste endpoint, servindo como referência para entendimento e tratamento das falhas.
| Código do Erro | HTTP | Descrição |
|---|---|---|
EXPIRED_AUTH_TOKEN | 401 | Token de autenticação expirado |
INVALID_AUTH_TOKEN | 401 | Token de autenticação inválido ou ausente |
INVALID_AUTH_HOST | 403 | Domínio da requisição não corresponde ao registrado no token |
INVALID_CUSTOMER | 401 | Cliente associado ao token indisponível ou desativado |
UAPPI_TOOLS_REVIEW_NOT_FOUND | 404 | Avaliação não encontrada para o cliente autenticado neste canal de venda |
Atualizar avaliação do canal de venda
/review/{reviewId}/sales-channel/
Atualiza a avaliação de um canal de venda realizada pelo cliente.
📋 Descrição
Endpoint responsável por atualizar uma avaliação de um canal de venda (loja) realizada pelo cliente 📝⭐.
Permite a alteração das informações previamente cadastradas na avaliação.
Importante: o cliente não pode alterar o status da própria avaliação. A decisão sobre a exibição (ativação ou inativação) é exclusiva do lojista.
📝 Parâmetros
🏷️ Headers Obrigatórios
| Header | Valor | Descrição |
|---|---|---|
Content-Type | application/json | Tipo de conteúdo |
Authorization | Bearer SEU_TOKEN_AQUI | Token de autenticação |
🔗 Parâmetros da URL
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
reviewId | integer | ✅ Sim | ID único da avaliação |
📦 Parâmetros do Corpo
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
name | string | ❌ | Nome do cliente (máx. 255 caracteres) |
email | string | ❌ | E-mail do cliente (máx. 255 caracteres) |
comment | string | ✅ | Comentário do cliente (máx. 65535 caracteres) |
recommended | boolean | ✅ | Recomendação do cliente (true ou false) |
score | integer | ✅ | Pontuação da avaliação (entre 1 e 5) |
💡 Exemplo de Requisição
1curl --request PUT \2 --url '{{MAIN_URL}}/review/{reviewId}/sales-channel/' \3 --header 'Content-Type: application/json' \4 --header 'Authorization: Bearer SEU_TOKEN_AQUI' \5 --data '{6 "comment": "Ótima loja, recomendo a todos!",7 "recommended": true,8 "score": 59 }'✅ Resposta de Sucesso
HTTP Status: 200 OK
1{2 "status": true,3 "data": {4 "id": 1,5 "name": "joão",6 "email": "joão@email.com",7 "comment": "Ótima loja, recomendo a todos!",8 "recommended": true,9 "score": 5,10 "active": false,11 "masked": false,12 "createdAt": "2025-10-15 17:34:56",13 "updatedAt": "2026-01-22 20:26:54",14 "salesChannelId": 1,15 "customerId": 1,16 "salesChannelDomain": "sualoja.com.br"17 }18}⚠️ Possíveis Erros
> Os cenários abaixo representam os principais erros que podem ocorrer neste endpoint, servindo como referência para entendimento e tratamento das falhas.
| Código do Erro | HTTP | Descrição |
|---|---|---|
EXPIRED_AUTH_TOKEN | 401 | Token expirado — o token de autenticação informado está vencido |
INVALID_AUTH_TOKEN | 401 | Token inválido — o token de autenticação informado não é válido |
INVALID_AUTH_HOST | 403 | Host inválido — o domínio da requisição não corresponde ao registrado no token |
INVALID_CUSTOMER | 401 | Cliente inválido — o cliente autenticado não foi encontrado ou está inativo |
UAPPI_TOOLS_REVIEW_NOT_FOUND | 404 | Avaliação não encontrada — não existe avaliação com o reviewId informado vinculada ao cliente |
Excluir avaliação do canal de venda
/review/{reviewId}/sales-channel/
Exclui a avaliação de um canal de venda realizada pelo cliente.
📋 Descrição
Endpoint responsável por excluir uma avaliação de um canal de venda (loja) realizada pelo cliente 🗑️⭐.
Importante: caso a avaliação excluída estivesse ativa, a exclusão impacta diretamente na nota média da loja, pois o cálculo é refeito desconsiderando a avaliação removida, garantindo que a pontuação reflita apenas as avaliações ativas restantes.
📝 Parâmetros
🏷️ Headers Obrigatórios
| Header | Valor | Descrição |
|---|---|---|
Authorization | Bearer SEU_TOKEN_AQUI | Token de autenticação |
🔗 Parâmetros da URL
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
reviewId | integer | ✅ Sim | ID único da avaliação |
💡 Exemplo de Requisição
1curl --request DELETE \2 --url '{{MAIN_URL}}/review/{reviewId}/sales-channel/' \3 --header 'Authorization: Bearer SEU_TOKEN_AQUI'✅ Resposta de Sucesso
HTTP Status: 200 OK
1{2 "status": true,3 "data": true4}⚠️ Possíveis Erros
> Os cenários abaixo representam os principais erros que podem ocorrer neste endpoint, servindo como referência para entendimento e tratamento das falhas.
| Código do Erro | HTTP | Descrição |
|---|---|---|
EXPIRED_AUTH_TOKEN | 401 | Token expirado — o token de autenticação informado está vencido |
INVALID_AUTH_TOKEN | 401 | Token inválido — o token de autenticação informado não é válido |
INVALID_AUTH_HOST | 403 | Host inválido — o domínio da requisição não corresponde ao registrado no token |
INVALID_CUSTOMER | 401 | Cliente inválido — o cliente autenticado não foi encontrado ou está inativo |
UAPPI_TOOLS_REVIEW_NOT_FOUND | 404 | Avaliação não encontrada — a avaliação informada não existe ou não pertence ao cliente autenticado |