O widget consome a API Martan e espera o seguinte formato de resposta:
{
"result": [
{
"id": "string",
"display_name": "string",
"rating": 5,
"body": "string",
"title": "string",
"created_at": "2024-01-15T00:00:00Z",
"verified_purchase": true,
"is_recommended": true,
"pictures": []
}
],
"count": 100,
"meta": {
"limit": 10,
"offset": 0,
"query": {
"product_sku": "PROD-123"
}
}
}
Campos do Review
| Campo | Tipo | Descrição |
|---|
id | string | ID único da avaliação |
display_name | string | Nome do avaliador |
rating | number | Nota de 1 a 5 |
body | string | Texto da avaliação |
title | string | Título da avaliação |
created_at | string | Data de criação (ISO 8601) |
verified_purchase | boolean | Se a compra foi verificada |
is_recommended | boolean | Se o produto é recomendado |
pictures | array | Array de URLs de imagens |
O widget de rating consome a API Martan no endpoint /api/v1/ratings.json?expand=metrics e espera o seguinte formato:
{
"result": [
{
"sku": "PROD-123",
"product_id": "123",
"average": 4.5,
"total": 120,
"recommended": 100,
"not_recommended": 5,
"recommended_percentage": 83.33,
"rate": {
"one": 0,
"two": 2,
"three": 8,
"four": 30,
"five": 80
}
}
],
"count": 1
}
Campos do Rating
| Campo | Tipo | Descrição |
|---|
sku | string | SKU do produto |
product_id | string | ID do produto |
average | number | Média de avaliações (0-5) |
total | number | Total de avaliações |
recommended | number | Número de recomendações |
not_recommended | number | Número de não recomendações |
recommended_percentage | number | Percentual de recomendações |
rate | object | Distribuição por estrelas |
rate.one | number | Quantidade de avaliações com 1 estrela |
rate.two | number | Quantidade de avaliações com 2 estrelas |
rate.three | number | Quantidade de avaliações com 3 estrelas |
rate.four | number | Quantidade de avaliações com 4 estrelas |
rate.five | number | Quantidade de avaliações com 5 estrelas |
O widget faz cache dos dados no localStorage por 24 horas para otimizar performance. Apenas uma requisição à API é feita por página, mesmo com múltiplos componentes.