Overview
Store Reviews API provides comprehensive review and rating functionality including customer reviews, store responses, helpfulness voting, review flagging, and review management. Location:convex/stores/reviews.ts
Verified Purchase Logic
Reviews do not require a verified purchase. Any authenticated customer can leave a review on any store. TheisVerifiedPurchase flag is set automatically:
- If
orderIdis provided: the flag is set totrue(order must exist, belong to the customer, and be from the target store) - If
orderIdis omitted: the system checks if the customer has any delivered order from the store. If yes,isVerifiedPurchaseistrue; otherwisefalse
Add Review
Creates a new review for a store. Requires authentication. One review per order per customer (whenorderId is provided).
Id<'stores'>
required
Store ID to review
Id<'orders'>
Optional order ID to link the review to a specific order. If provided, automatically sets
isVerifiedPurchase to true.number
required
Rating from 1-5 stars
string
Review title (at least one of
title or comment is required)string
Review comment (at least one of
title or comment is required)Id<'_storage'>[]
Array of storage IDs for review photos
Update Review
Updates an existing review. Only the review author can update their own review.Id<'storeReviews'>
required
Review ID to update
number
Updated rating (1-5)
string
Updated title
string
Updated comment
Id<'_storage'>[]
Updated photo IDs
Delete Review
Deletes a review and all associated data (helpful votes, flags). Only the review author can delete their own review.Id<'storeReviews'>
required
Review ID to delete
Get Store Reviews
Lists reviews for a store with pagination, sorting, and filtering. Only visible reviews are returned. Does not require authentication, but authenticated users see their own helpfulness votes.Id<'stores'>
required
Store ID
PaginationOptions
required
Pagination options
string
Sort order:
newest, oldest, highest_rating, lowest_rating, most_helpfulnumber
Filter by specific rating (1-5)
boolean
Show only verified purchase reviews
Get Store Review Stats
Returns denormalized review statistics for a store. Fast query — reads pre-computed stats from the store document.Id<'stores'>
required
Store ID
Get Review
Fetches a single review by ID with full details including customer info, store info, photo URLs, and current user’s permissions and vote.Id<'storeReviews'>
required
Review ID
Get Customer Reviews
Lists all reviews written by the authenticated customer with pagination. Includes store info and store responses.PaginationOptions
required
Pagination options
Add Store Response
Allows a store owner to respond to a review. One response per review.Id<'storeReviews'>
required
Review ID to respond to
string
required
Store response comment
Update Store Response
Allows a store owner to edit their existing response.Id<'storeReviews'>
required
Review ID with the response to update
string
required
Updated response comment
Vote on Review
Vote on whether a review is helpful or not. Customers cannot vote on their own reviews. One vote per customer per review (can be changed).Id<'storeReviews'>
required
Review ID to vote on
boolean
required
true for helpful, false for not helpfulFlag Review
Report a review for moderation. One flag per customer per review. Creates a pending flag for admin review and sends an admin notification (high priority for offensive/fake reasons).Id<'storeReviews'>
required
Review ID to flag
string
required
Reason for flagging:
spam, inappropriate, fake, offensive, irrelevant, otherstring
Additional details about the flag
Reviews include photo support, verified purchase indicators, helpfulness voting, store owner responses, and a full flagging/moderation pipeline.
