Avaliar o que comprou
Lista os itens avaliáveis de um pedido entregue e registra a avaliação de cada produto.
Depois que o pedido é entregue, a loja pode convidar o cliente a avaliar cada produto que comprou. Estas duas rotas dão a lista do que ainda pode ser avaliado e gravam a avaliação. Dependem do módulo product-reviews. Quem não comprou o produto não consegue avaliá-lo por aqui: a compra é a prova.
/api/v1/storefront/orders/{id}/reviewableClienteLista os itens do pedido que podem ser avaliados
Parâmetros de caminho
iduuidobrigatórioId do pedido.
bash
curl "$BASE_URL/api/v1/storefront/orders/$ORDER_ID/reviewable" \
-H "Authorization: Bearer $TOKEN"200Itens avaliáveis
json
{
"items": [
{ "product_id": "a34f126e-ff3b-4779-bf74-bda03502136e", "already_reviewed": false, "can_review": true }
]
}Campos da resposta
itemsarrayUm item por produto do pedido. A lista vem vazia (
[]) quando o pedido ainda não foi entregue, quando está cancelado, falhou ou foi devolvido, e também quando o pedido não é do cliente (aqui não há 404).items[].product_iduuidProduto. É o
{productID} da rota de avaliação.items[].already_reviewedbooleantrue quando este cliente já avaliou o produto (uma avaliação por cliente e produto).items[].can_reviewbooleantrue quando dá para avaliar agora.| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token, ou token inválido ou expirado | {"error":"missing authorization header"} / {"error":"invalid or expired token"} |
| 403 | Módulo product-reviews desligado na loja | {"error":"module_disabled","module":"product-reviews"} |
/api/v1/storefront/orders/{id}/items/{productID}/reviewClienteAvalia um produto de um pedido entregue
Parâmetros de caminho
iduuidobrigatórioId do pedido.
productIDuuidobrigatórioId do produto, tal como em
reviewable.Corpo da requisição
ratingintegerobrigatório12345Nota de 1 a 5.
titlestringTítulo curto da avaliação.
commentstringTexto da avaliação. O corpo todo aceita até 16 KB.
bash
curl -X POST "$BASE_URL/api/v1/storefront/orders/$ORDER_ID/items/$PRODUCT_ID/review" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"rating": 5,
"title": "Ótimo",
"comment": "Chegou antes do prazo."
}'201Avaliação registrada
json
{ "pending": true }pending: true significa que a avaliação foi gravada mas aguarda moderação da loja e ainda não aparece na página do produto; false significa que já foi publicada.
| Status | Quando | Corpo |
|---|---|---|
| 400 | rating ausente, fora de 1 a 5, ou corpo que não é JSON | {"error":"rating must be between 1 and 5"} |
| 401 | Sem login | {"error":"login_required"} |
| 403 | Módulo product-reviews desligado na loja | {"error":"module_disabled","module":"product-reviews"} |
| 403 | A compra não é do cliente | {"error":"purchase_required"} |
| 404 | Pedido que não é do cliente, ainda não entregue, ou que não contém o produto | {"error":"order_not_found"} |
| 409 | O cliente já avaliou este produto | {"error":"already_reviewed"} / {"error":"duplicate_review"} |
| 500 | Falha ao gravar | {"error":"failed to create review","detail":"..."} |