Advanced Reviews for Magento 2
Ayasoftware Advanced Reviews extends Magento's native product review system with richer review metadata, configurable catalog review display, image uploads, owner notifications, spam-protection integration points, and GraphQL exposure for advanced review data.
| Property | Value |
|---|---|
| Module name | Ayasoftware_Advancedreviews |
| Package name | ayasoftware/advancedreviews |
| Current version | 0.2.0 |
Requirements
- Magento Open Source or Adobe Commerce with
Magento_Reviewenabled. Magento_ReviewGraphQlenabled when using GraphQL review fields.- Writable Magento media directory for review image uploads.
- Valid external service credentials when enabling Akismet, Cloudflare Turnstile, or Google reCAPTCHA.
Installation
Via Composer (recommended)
Install via Composer after configuring your credentials. See your dashboard for your license key.
composer config repositories.ayasoftware composer https://www.ayasoftware.com/repo
auth.json (one-time)composer config --global http-basic.www.ayasoftware.com your@email.com YOUR_LICENSE_KEY
Your license key is available in the Ayasoftware dashboard.
composer require ayasoftware/advancedreviews
Manual installation
Alternatively, copy the module to:
app/code/Ayasoftware/Advancedreviews
Enable the module
Enable and install the module from the Magento root:
bin/magento module:enable Ayasoftware_Advancedreviews
bin/magento setup:upgrade
bin/magento cache:flushbash
Admin Configuration
Open Magento Admin and go to:
Stores > Configuration > Ayasoftware > Advanced Reviews
About
| Field | Description |
|---|---|
| Name | Displays the extension name. |
| Version Number | Displays the version from composer.json. |
| Documentation | Links to the Advanced Reviews documentation URL. |
General
| Field | Default | Description |
|---|---|---|
| Display Review Count on Catalog Page | Yes | Shows or hides the numeric review count beside stars on catalog/category/search listing pages. Stars remain visible when this is disabled. |
| Enabled | Yes | Enables Advanced Reviews data capture and display behavior. |
| Require Verified Purchase | No | Reserved for enforcing review submission rules in a later phase. |
| Minimum Review Length | 20 | Minimum review detail length expected by the frontend experience. |
| Review Preview Word Limit | 24 | Number of words to show in catalog review previews. Set to 0 to hide preview text. |
| Star Rating Rounding | Native | Controls visual star rounding and optional SEO rating rounding. |
Star rating rounding options:
| Value | Behavior |
|---|---|
| Native | Uses Magento's native rating percentage. |
| Round Everything | Rounds visual stars and SEO rating value to whole-star percentages. |
| Round Visual Stars Only | Rounds displayed stars while keeping the exact SEO rating value. |
Store Owner Notifications
| Field | Default | Description |
|---|---|---|
| Send Emails To | Empty | Recipient email for new review notifications. If empty, the store general email may be used by the sender service. |
| Email Sender | General Contact | Magento sender identity for notification emails. |
| New Review Notification | No | Sends an email when a new review is posted. |
| New Review Notification Template | Advanced Reviews template | Template used for new review notifications. |
| New Comment Notification | No | Reserved until review comments are implemented. |
| New Comment Notification Template | Advanced Reviews template | Template reserved for future comment notifications. |
Media
| Field | Default | Description |
|---|---|---|
| Allow Review Image Uploads | Yes | Allows customers to upload images with reviews. |
| Maximum Images Per Review | 3 | Maximum number of images allowed per review. Allowed range is 1 to 10. |
| Maximum Image Size (KB) | 2048 | Maximum file size per uploaded image. |
| Allowed Image Extensions | jpg,jpeg,png,webp,gif | Comma-separated list of allowed image extensions. |
Uploaded files are stored under Magento media at:
pub/media/ayasoftware/advancedreviews/<review_id>/
Mail After Purchase
| Field | Default | Description |
|---|---|---|
| Mail After Purchase | No | Enables the Mail After Purchase configuration group. |
| Email Sender | General Contact | Magento sender identity for review request emails. |
| Mail After Purchase Template | Advanced Reviews mail-after-purchase template | Email template for review requests. |
| Mail After Purchase Threshold | 14 | Number of days to wait after purchase before the first review request. |
| Max Number of Emails | 3 | Maximum review request emails to send per order. |
| Mail Interval | 7 | Number of days between follow-up review request emails. |
| Sort Order | Most Expensive Product First | Product selection order for review requests. |
When enabled, review request emails are sent automatically by the Magento cron job ayasoftware_advancedreviews_mail_after_purchase, which runs hourly. The email template includes the customer name, product name, product image, and a direct review link. For multi-product orders, products are selected in the configured sort order and follow-up emails respect the configured interval and maximum email count.
bin/magento cron:run scheduled on your server).Spam Protection
| Field | Default | Description |
|---|---|---|
| Enable Spam Protection | No | Enables spam protection on the product review form. |
| Spam Protection Provider | Akismet | Selects Akismet, Cloudflare Turnstile, or Google reCAPTCHA. |
| Akismet API Key | Empty | API key used when Akismet is selected. |
| Akismet Site URL | Store base URL | Optional Akismet site URL override. |
| Cloudflare Turnstile Site Key | Empty | Site key for Turnstile. |
| Cloudflare Turnstile Secret Key | Empty | Secret key for Turnstile. |
| Cloudflare Turnstile Theme | Auto | Turnstile widget theme. |
| Use Magento reCAPTCHA Configuration | Yes | Uses existing Magento reCAPTCHA Review configuration when available. |
| Google reCAPTCHA Site Key | Empty | Site key used when not using Magento's reCAPTCHA config. |
| Google reCAPTCHA Secret Key | Empty | Secret key used when not using Magento's reCAPTCHA config. |
| Google reCAPTCHA Minimum Score | 0.5 | Minimum score for score-based reCAPTCHA checks. |
| Action When Spam Is Detected | Mark Pending | Determines whether suspected spam is rejected or saved as pending moderation. |
| Log Spam Rejections | Yes | Logs spam rejection events. |
AI Review Summaries
The AI Features configuration group generates per-product review summaries using an AI provider of your choice and displays them on the product page. Summaries are generated by the hourly cron job ayasoftware_advancedreviews_generate_ai_summaries and cached for the configured duration.
| Field | Default | Description |
|---|---|---|
| Enable AI Review Summaries | No | Generates per-product summaries using an AI provider of your choice. |
| AI Provider | Claude | Selects Claude, OpenAI, or Gemini. |
| Claude API Key | Empty | Anthropic API key (console.anthropic.com). Shown when Claude is selected. |
| Claude Model | claude-sonnet-4-6 | Claude model used for summaries. |
| OpenAI API Key | Empty | OpenAI API key (platform.openai.com). Shown when OpenAI is selected. |
| OpenAI Model | gpt-4o-mini | OpenAI model used for summaries. |
| Gemini API Key | Empty | Google AI Studio API key (aistudio.google.com). Shown when Gemini is selected. |
| Gemini Model | gemini-2.0-flash | Gemini model used for summaries. |
| Minimum Reviews to Summarize | 3 | No summary is generated until at least this many approved reviews exist. |
| Maximum Reviews to Send | 50 | Caps how many review texts are sent per product (cost control). |
| Summary Cache Hours | 24 | Regenerates the summary after this many hours. 0 regenerates on every cron run. |
Trustpilot Sync
The Third-Party Integrations configuration group imports product reviews from Trustpilot via the Trustpilot API.
| Field | Default | Description |
|---|---|---|
| Trustpilot Sync Enabled | No | Enables the Trustpilot review import. |
| Trustpilot API Key | Empty | Trustpilot API key, stored obscured. |
| Trustpilot Business Unit ID | Empty | Found in your Trustpilot Business account settings. |
Run the import from the Magento root:
bin/magento advancedreviews:sync:trustpilotbash
Frontend Features
Review Form Fields
Advanced Reviews adds these optional review fields to the frontend product review form:
- Recommends product
- Usage period
- Pros
- Cons
- Review images, when image uploads are enabled
- Spam protection widget, when configured and available
Catalog Review Summary
Catalog/category/search listings use the module's review summary renderer.
When Display Review Count on Catalog Page is set to No, catalog listings hide the numeric review count and review-count link while keeping the star rating display.
Review Preview on Catalog Pages
Category, search results, and advanced search pages display an excerpt of the most recent approved review beneath the star rating. The excerpt length is controlled by Review Preview Word Limit (set to 0 to disable). The preview is applied via a plugin on ReviewRenderer — no theme modifications are required.
Helpful Votes
Each review displays Helpful and Not Helpful vote buttons. Vote counts are stored per review and exposed via GraphQL (helpful_count, not_helpful_count).
Product Review List
The product review list can display advanced metadata such as:
- Verified purchase status
- Usage period
- Recommendation value
- Pros and cons
- Merchant response
- Review images
Admin Review Editing
The module extends the Magento admin review edit form with an Advanced Review fieldset. Admin users can view or edit advanced review metadata including:
- Verified purchase status
- Review source
- Verified order ID and purchase date
- Helpful and not-helpful counts
- Uploaded images
- Usage period
- Recommendation value
- Pros and cons
- Merchant response, author, and response timestamp
Verified Purchase
When an advanced review is saved, the module attempts to match the review to an existing customer order using the customer ID, email, and product SKU. Confirmed reviews display a Verified Purchase badge on the storefront review list, and the exact variant (child SKU) the customer purchased is captured. Matching data is stored in ayasoftware_advanced_review.
Stored verified purchase fields include:
verified_purchasepurchased_skuorder_idpurchased_atvariant_summary
GraphQL
The module extends Magento review GraphQL types with advanced review metadata.
ProductReview Extension
type ProductReview {
advanced_review: AdvancedProductReview
}graphql
AdvancedProductReview Fields
type AdvancedProductReview {
verified_purchase: Boolean!
purchased_sku: String
usage_period: String
recommends: Boolean
pros: String
cons: String
source: String
helpful_count: Int!
not_helpful_count: Int!
merchant_response: String
merchant_response_author: String
merchant_response_at: String
images: [AdvancedProductReviewImage!]!
}graphql
CreateProductReviewInput Extension
input CreateProductReviewInput {
advanced_review: AdvancedProductReviewInput
}
input AdvancedProductReviewInput {
usage_period: String
recommends: Boolean
pros: String
cons: String
}graphql
Example mutation fragment
mutation CreateReview($input: CreateProductReviewInput!) {
createProductReview(input: $input) {
review {
nickname
summary
text
advanced_review {
verified_purchase
usage_period
recommends
pros
cons
}
}
}
}graphql
Database Tables
ayasoftware_advanced_review
Stores advanced metadata for each Magento review. The primary key is review_id, with a cascade foreign key to Magento's review table.
Important columns:
verified_purchasepurchased_skuorder_idpurchased_atusage_periodrecommendsprosconsvariant_summarysourcehelpful_countnot_helpful_countmerchant_responsemerchant_response_authormerchant_response_at
ayasoftware_advanced_review_media
Stores uploaded image metadata. The table has a cascade foreign key to Magento's review table.
Important columns:
media_idreview_idfile_pathfile_namemime_typefile_sizepositionstatus
Cache and Deployment Notes
After changing configuration or templates, flush Magento cache:
bin/magento cache:flushbash
After installing or upgrading the module, run:
bin/magento setup:upgrade
bin/magento cache:flushbash
Changelog
- FeatureVerified purchase detection — reviews are automatically linked to Magento orders (customer ID, email, product SKU) and confirmed reviews show a Verified Purchase badge with the purchased variant recorded.
- FeatureExtended review fields — optional Pros & Cons, Recommends (yes/no), and Usage Period fields on the review form, each individually configurable.
- FeatureReview image uploads — customers can attach up to 10 images per review (configurable formats and size limit) with a thumbnail gallery and full-size lightbox.
- FeatureHelpful votes — Helpful / Not Helpful buttons on each review with counts exposed via GraphQL.
- FeatureMerchant response — store administrators can post a public reply to any review from the admin review edit form.
- FeatureReview preview on catalog pages — an excerpt of the most recent approved review on category, search, and advanced search pages with a configurable word limit.
- FeatureSpam protection — Akismet, Cloudflare Turnstile, or Google reCAPTCHA v3 with configurable action (mark pending or reject) and rejection logging.
- FeatureStore owner notifications — email to the store owner when a new review is submitted, with configurable sender, recipient, and template.
- FeatureMail After Purchase — automated review request emails via hourly cron with configurable delay, interval, maximum email count, and multi-product sort order.
- FeatureAI review summaries — new AI Features admin configuration group supporting Claude, OpenAI, and Gemini; per-product review summaries generated via hourly cron, cached, and displayed on the product page.
- FeatureTrustpilot sync — new Third-Party Integrations group that imports reviews from Trustpilot via the Trustpilot API, with the
advancedreviews:sync:trustpilotCLI command. - FeatureAdmin review management — extended review edit form with all advanced fields, read-only verified purchase details, vote counts, and an image gallery.
- ImprovedStar rating rounding — three modes (Native, Round All, Round Visual Only) with separate visual and SEO rating values for structured data accuracy.
- ImprovedGraphQL API —
advanced_reviewfield onProductReview(verified purchase, extended fields, votes, merchant response, images) andCreateProductReviewInputaccepts advanced review input.
- FeatureInitial release.