Star ratings, verified-buyer reviews, photo uploads, and a proper moderation queue — running inside your own Joomla site, with the data in your own database.

Shoppers read reviews before they buy. That is not a marketing claim you need to take on faith — it is why every large store you have ever used puts a star rating above the fold. For a small Joomla store, the usual path to getting those stars is renting them: sign up with a review platform, drop their script onto your product pages, pay monthly, and watch your most valuable customer feedback accumulate on somebody else’s domain.

Today we are releasing the alternative. The Solidshop Reviews & Ratings plugin is out at 1.0.1: a complete review system that installs like any other Joomla plugin, stores everything in your own database, and adds no third-party JavaScript to your storefront.

What’s in it

The plugin adds a Reviews tab to every product page. At the top sits the summary a shopper actually scans — the average score, and a bar chart showing how the ratings are distributed across one to five stars. Below it, the reviews themselves, sortable by newest, highest, lowest, or most helpful, loading five at a time so a product with three hundred reviews still paints instantly.

Each review can carry a title, a body, a Verified buyer badge, photos, and a “Was this helpful?” vote count. Visitors can flag a review for abuse, which lands it in a dedicated report queue in your admin rather than in your inbox.

Ratings do not stay inside the tab. Once a product has an approved review, a compact star rating appears under its name on every card in your category listings and in the Products module, and in the summary bar at the top of the product page — the two places a rating earns its keep before anyone reads a single review. The whole listing page’s rating data is loaded in one query, so a twenty-four-product category costs you no extra round trips.

On the admin side you get a moderation queue with bulk approve / reject / mark-as-spam actions, an edit form for fixing a typo before publishing, a filterable list, and a Recent Reviews widget on the Solidshop dashboard so a one-star review does not sit unnoticed for a week.

Verified buyers, verified properly

“Verified buyer” is the single most valuable signal a review system can produce, and the one most often faked. In Solidshop it means something specific: the reviewer was logged in, the order belongs to their account, and that order actually contains the product being reviewed. All three are checked on the server, so the badge cannot be forged by a crafted request.

Switch Who Can Submit Reviews to Verified buyers only and the review form moves off the product page entirely. Instead it appears where it belongs — on the customer’s own order detail page, under Account → Orders, with one small form per item they bought. It is the moment they are already thinking about the purchase, and it removes any question of who is writing.

You can tighten it further by restricting reviews to orders that have reached a given fulfillment status. Gate on Delivered and a customer cannot review a product they have paid for but not yet received — which is where a surprising share of one-star reviews actually come from.

If you would rather maximise volume, the other two modes are still there: open to anyone including guests, or restricted to registered users. Moderation and CAPTCHA are there to make the open mode survivable.

Spam protection without picking your poison

Review forms attract bots. Rather than bundling one vendor’s CAPTCHA, the plugin hooks into Joomla’s native captcha stack: install whichever captcha plugin you already trust — reCAPTCHA, hCaptcha, or the self-hosted, privacy-friendly Altcha — and select it from a dropdown. Altcha is worth a look if you would rather not hand your visitors’ browsing behaviour to an ad network to prove they are human; it asks the browser to solve a small proof-of-work puzzle instead, with no third-party account involved.

Moderation is on by default, so nothing reaches your storefront until you approve it. And in verified-buyer mode the spam problem largely evaporates on its own — a spammer would have to place and pay for a real order first.

Voting and abuse reporting are hardened the same way. A customer gets one vote and one report per review, guaranteed by a database constraint rather than a check that a concurrent request can race, and both actions carry a per-account hourly ceiling so nobody can bury an honest review under a pile of reports or brigade the helpful count. The limits are counted per user, not per IP address — an IP bucket is bypassable with any VPN and simultaneously locks out everyone sharing an office connection.

Stars in search results

Reviews earn their keep twice: once on your product page, and again in search. Once a product has an approved review, the plugin emits aggregateRating structured data — the average score and review count — which is what search engines read when deciding whether to show star ratings under your listing.

One detail matters more than it sounds: the rating data is merged into the existing Product JSON-LD node that Solidshop already emits, not published as a second one. Two competing Product entities on a single page is a classic reason for Google to decline review snippets despite technically valid markup. Rich results are never guaranteed — but this is the version that gives you a fair shot at them.

Why self-hosted matters here

Reviews are customer data, and reviews are content. Hosted on a third-party platform, they are neither quite yours: the text lives on their domain, the SEO value is split, the widget is one more render-blocking script, and the arrangement lasts exactly as long as you keep paying. Your customers’ names and email addresses go along for the ride, which is its own conversation with your privacy policy.

Three tables in your own MySQL database is a duller answer, and a much better one. Export it, back it up, query it, migrate it. The plugin is GPL-3, like everything else in Solidshop — the source is yours to read and modify, and an installed copy keeps working regardless of what happens to your update subscription.

Setting it up

Three steps, about two minutes:

  1. Install plg_solidshop_review.zip through System → Install → Extensions.
  2. Enable Solidshop - Review in the Plugin Manager.
  3. Open Solidshop → Options → Reviews & Ratings and set Enable Reviews to Yes.

That third step catches people out — the plugin switch and the component option are deliberately separate, so enabling the plugin never surprises a live storefront with a new tab. Everything else — who can review, moderation, voting, abuse reports, photos, CAPTCHA — is configured on that same options tab.

The full walkthrough, including the settings reference and troubleshooting, is in the Reviews & Ratings documentation.

Requirements & availability

Reviews & Ratings 1.0.1 needs Solidshop 1.1.0 or later, Joomla 6.0+, and PHP 8.4+ — the installer checks before it runs, so it will not half-install against an older core. The 1.1.0 floor is what carries the product-card rating hook, so listings light up as soon as both are in place. Twenty-three admin locales ship in the package, and the storefront layouts are template-overridable like every other Solidshop layout.

It is $39, one-time, per domain, with 12 months of updates and support included; renewals thereafter are 30% off. No monthly platform fee, and no per-review pricing tier waiting for you at scale.