Litestore · Operator guide
Insights

Reviews

Collect reviews from people who bought a product, approve them, and show their ratings on the product page.

Litestore lets shoppers review the products they bought. You read each review in a queue and decide whether it appears on your store.

A shopper can only review a product they bought.

Before the storefront accepts a review, it checks for a matching order item. If there is none, it rejects the submission. This isn't a badge added afterwards. Without the purchase, the review can't exist at all.

New reviews arrive unmoderated and are stored in your own database. Once you approve one, it appears on the product page and in the page's Product schema.

You find the queue here:

Insights → Reviews
/admin/reviews

You need the reviews:view permission to open it. Each review gets a sequential number, which keeps admin URLs short and readable.

Only buyers can review

Litestore checks the purchase in two places, and both use the same test.

The storefront only shows the review form when the customer has an order item for that product. It only accepts the submission if the same test passes. Hiding the form is a convenience. The check on submit is what actually protects you.

Because the order item itself is the gate, the verified-buyer flag on a storefront review is always true. There are no unverified reviews to tell apart, and you don't run a separate verification step.

The database allows one review per customer per product, so a customer can't post five reviews on the same item. The database enforces this rule, not the form, so no route into the data can get around it.

Four states, derived rather than stored

A review is pending, published, rejected or flagged.

Litestore doesn't store the state in a status column. It works the state out from which decision timestamp is set.

This matters more than it sounds. A stored status would be a second copy of the truth, and copies drift apart. The list filter could say one thing while the product page shows another, and the moderation menu could offer a move that no longer applies. Because Litestore derives the state from your decisions, the list filter, the product page and the moderation menu always agree.

A new review has no decision timestamp at all. It reads as pending without anything having to write that word down.

Reviews are not published until you approve them

A submitted review has no decision timestamp, so Litestore treats it as pending. It stays off the product page and out of the structured data until you approve it.

The moderation moves

You can add a moderation note to each decision.

pending    → approve → published
flagged    → approve → published

pending    → flag    → flagged
published  → flag    → flagged

anything not already rejected → reject → rejected

Note that you can flag a review that is already published. This pulls a live review back for a second look. You need it when a review seemed fine at approval but turns out to come from a competitor, to be a mistake, or to be about the wrong product.

Ratings in the markup

When you publish a review, it appears in the product's structured data as well as on its page.

Litestore adds the product's average rating and review count to the Product schema as AggregateRating.

It also adds up to ten individual Review nodes. Each one includes the rating, body, author and date.

Litestore only includes published reviews. Search engines can't see a pending review, for the same reason shoppers can't: both read the state from the same place.

Imported reviews

When you migrate a catalog, its review history goes into the same queue and the same table as new reviews.

An imported review keeps:

  • Its source
  • Its external id and URL
  • The id of the import batch it came in
  • Its external image URLs

You don't have a second inbox to check or a separate import table that behaves differently. You moderate an imported review with the same moves as a new one.

Settings

You can set three things:

  • Whether reviews are turned on at all
  • How many days after delivery Litestore asks the customer for a review
  • One reminder

Litestore sends one reminder. You can't configure a longer sequence.

Reviews you own

Your reviews are rows in your own database.

You don't embed a widget, so nothing from a third party loads on your product pages. You also don't pay a fee per review, so a growing review history doesn't cost you more to keep.

Working the queue

  1. A buyer leaves a review. If they have a matching order, the review enters the queue as pending.
  2. You decide. Approve, flag or reject it, and add a moderation note if you want to record why.
  3. Litestore publishes it. The approved review and the new average rating appear on the product page and in its structured data at the same time.

If you are unsure about a review, think about what each move does. Rejecting takes the review off every page. Flagging keeps it in the queue for a second look. You can still pull back a review that is already live.

You are only deciding what to publish. Litestore already checked the purchase before the review reached you.

On this page