AgentReady

Sort and filter on review lists

Merchant sort and filter settings, the shopper controls, and the no-JavaScript newest-first page from the metafield snapshot.

Last updated 2026-09-01

Product review list and All store reviews both expose sort and filter. The first page is still newest-first HTML from the metafield snapshot. JavaScript enhances that page. It does not replace it.

Every setting and default: storefront blocks. Continuation: Show more without a script on first paint.

Merchant settings (Behaviour)

Copied from the shipping schemas.

SettingSchema labelOptionsDefault
default_sortDefault sortNewest (newest), Highest rated (highest), Lowest rated (lowest), With photos (with_photos)newest
show_sort_controlLet shoppers change the sorton / offon
show_filter_controlLet shoppers filter reviewson / offon
verified_onlyShow verified purchases onlyon / offoff

verified_only is a merchant filter, not a shopper chip. When it is on, the list starts from verified purchases only.

Shopper controls

When Let shoppers change the sort is on, the list offers:

  • Newest
  • Highest rated
  • Lowest rated
  • With photos

When Let shoppers filter reviews is on, the list offers:

  • Rating (1 star through 5 stars)
  • Verified purchases
  • With photos

Those labels match the theme extension strings: Sort reviews, Filter reviews, Verified purchases, With photos.

What you get with JavaScript off

The snapshot on the page is newest-first. Sort and filter controls are added after the loader runs. With JavaScript off, shoppers keep that newest-first page. They can still read every review that was in the first paint. They cannot change sort or filter.

If you set Default sort to anything other than Newest, or you turn on Show verified purchases only, the loader re-requests the list after paint. Without JavaScript, the snapshot stays newest-first. That is the honest no-JS behaviour, not a second snapshot per sort.

Show more reviews is a separate switch (enable_load_more). It also needs the loader. The first page does not wait on it.

Next