| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Inventory (stock)
• Website (website) • eCommerce (website_sale) • Discuss (mail) • Invoicing (account) |
| Lines of code | 5711 |
| Technical Name |
ecommerce_product_ratings |
| License | OPL-1 |
| Website | https://www.hexalian.com |
| Versions | 17.0 18.0 19.0 |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Inventory (stock)
• Website (website) • eCommerce (website_sale) • Discuss (mail) • Invoicing (account) |
| Lines of code | 5711 |
| Technical Name |
ecommerce_product_ratings |
| License | OPL-1 |
| Website | https://www.hexalian.com |
| Versions | 17.0 18.0 19.0 |
⭐⭐⭐⭐⭐ Product Ratings
Build Trust and Boost Sales with Verified Customer Reviews
A comprehensive rating and review system for Odoo e-commerce. Enable verified purchase badges, photo reviews, variant-specific feedback, and intelligent statistics to drive conversion.
Key Features
Everything you need for a professional review system
✅ Verified Purchase
Automatically verify if a reviewer has actually purchased the product. Adds a credible "Verified Purchase" badge to authentic reviews to build trust.
- ✓ Automatic order verification
- ✓ Delivery status checks
- ✓ Visual trust badges
- ✓ Anti-fake review protection
📸 Photo Reviews
Let customers upload photos of their purchases. Visual social proof significantly increases conversion rates and reduces hesitation.
- ✓ Image upload support
- ✓ Secure file handling
- ✓ Thumbnail generation
- ✓ Admin moderation
🎨 Variant Support
Reviews can be specific to product variants (e.g., Color: Red, Size: L). Help customers choose the right option based on specific feedback.
- ✓ Variant-specific ratings
- ✓ Automatic variant detection
- ✓ Filter by variant
- ✓ Detailed product context
📊 Smart Statistics
Real-time calculation of average ratings and distribution. Optimized performance with smart caching to ensure fast page loads.
- ✓ Instant average calculation
- ✓ Rating distribution bars
- ✓ Cached statistics
- ✓ Performance optimized
🛡️ Moderation & Control
Full control over reviews. Users can edit/delete their own reviews, while admins have full moderation capabilities.
- ✓ User self-management
- ✓ Admin moderation tools
- ✓ Spam protection
- ✓ Report abuse handling
🌍 Multi-Language
Fully ready for international stores. All interface elements are translatable and support Odoo's multi-language features.
- ✓ Translatable interface
- ✓ Localized date formats
- ✓ Multi-language support
- ✓ Global readiness
Building Trust
Trust Factor: High
System Check: Checks Sale Orders & Deliveries
Badge: "Verified Purchase" Green Badge
How it works:
- System checks if user has purchased the product
- Verifies confirm/done status of orders
- Checks delivery status for physical goods
- Automatically applies badge to valid reviews
Granularity: Product Variant Level
Context: Shows exact item purchased
Display: "Variant: Size L - Color Red"
Benefits:
- Reduces returns due to fit/color issues
- Helps customers choose specific options
- Provides context for the feedback
- Automatic linking from order history
Engaging Frontend Experience
Designed to maximize engagement and clarity
⭐ Summary Widget
A beautiful summary block at the top of the reviews section showing:
- Average Rating: Large, clear numerical rating out of 5
- Star Representation: Visual star display
- Rating Distribution: Progress bars showing the split of 5, 4, 3, 2, and 1-star reviews
- Total Count: Clear indication of total review volume
📝 Review Cards
Individual reviews are displayed in clean, modern cards containing:
- User Info: Reviewer name and avatar
- Verification: Prominent "Verified Purchase" badge if applicable
- Variant Info: Specific product option reviewed (e.g., "Color: Blue")
- Rating: Individual star rating
- Content: Full text review and attached images
- Date: Review submission date
✨ Interactive Elements
Users can interact with the system easily:
- Write Review: Simple, AJAX-powered submission form
- Image Upload: Drag-and-drop or click to upload photos
- Edit/Delete: Users can manage their own content
- Pagination: Smooth "Load More" experience without page reloads
Technical Excellence
Built with Odoo best practices and performance in mind
Robust Architecture
- Model Inheritance: Extends `product.template` efficiently
- Security: Strict ACLs and Record Rules ensuring users only edit their own data
- SQL Constraints: Prevents duplicate reviews for the same product/user pair
- Uninstall Safety: Advanced hooks to prevent data corruption during uninstall
- Smart Computation: Stats are stored and updated via triggers, not heavy on-the-fly computes
File Structure
ecommerce_product_ratings/ ├── models/ │ ├── product_rating.py # Core logic & stats │ └── __init__.py ├── controllers/ │ ├── main.py # AJAX & Routing │ └── __init__.py ├── views/ │ ├── product_rating_view.xml │ └── templates.xml ├── static/ │ └── src/ │ ├── css/ │ │ └── product_rating.css │ └── js/ │ └── product_rating.js ├── security/ │ ├── ir.model.access.csv │ └── product_rating_security.xml └── __manifest__.py
Advanced Capabilities
⚡ Optimized Performance
Rating statistics are pre-calculated and stored. No heavy database queries on product page load.
🔄 Auto-Fix Tools
Includes built-in tools to fix/recalculate statistics and variant assignments if data gets out of sync.
📉 Service Compatible
Works perfectly with Services and Digital goods, verifying purchase upon order confirmation.
Security & Performance
Protected and optimized for high-volume stores
System: Intelligent Rate Limiting
Protection: Prevents review bombing
Limit: 1 Review every 20 seconds
- Blocks automated spam scripts
- Prevents malicious flooding
- Ensures authentic user feedback
- Zero impact on normal users
System: Pagination Caps
Protection: Prevents Resource Exhaustion
Optimization: Max 50 reviews per load
- Protects server memory
- Ensures fast page loads
- Optimized database queries
- Scales to millions of reviews
⚙️ Backend Configuration
Comprehensive Settings
Configure every aspect of your rating system from a single control panel. Toggle features like photo uploads, verified purchase badges, and set global defaults.
Product Statistics Dashboard
Monitor performance directly on the product form. Real-time statistics including total ratings, average score, and the latest review data are always at your fingertips.
🛡️ Security in Action
Intelligent Spam Protection
See our rate limiting system acting in real-time. If a user tries to flood the system with reviews, they receive a clear, friendly warning preventing the spam while keeping the system responsive.
📸 Module Screenshots
A preview of the rating system in action
👀 Visual Preview
Seamless Product Page Integration
The "Customer Reviews" section integrates perfectly into your product page layout. It displays a prominent summary with star ratings and a breakdown bar chart, encouraging users to engage.
Interactive Review Interface
A rich user interface allowing customers to filter reviews, see verified purchase badges, and view variant specific details. Users can easily edit or delete their own reviews directly from this panel.
Smart Pagination
Handle thousands of reviews effortlessly. The system shows "Showing X of Y reviews" with intuitive "Previous" and "Next" controls, ensuring fast page loads even with massive datasets.
Authentication Awareness
Intelligent handling of unauthenticated users. Visitors see the reviews but are politely prompted to log in to leave their own feedback, driving user registration.
E-Commerce Product Ratings & Reviews
Overview
The E-Commerce Product Ratings & Reviews module provides a comprehensive rating and review system for your Odoo e-commerce store. Allow customers to share their experiences and build trust through authentic product feedback.
Key Features
Rating System
- 5-Star Rating: Customers can rate products from 1 to 5 stars
- Text Reviews: Optional detailed feedback and comments (up to 500 characters)
- Verified Purchase Badges: Highlight reviews from customers who actually purchased the product
- Variant Support: Rate specific product variants separately
- Edit & Delete: Users can manage their own reviews
Review Management
- AJAX Submission: Smooth review submission without page reload
- Advanced Filtering: Filter reviews by rating level (1-5 stars) or verified purchases
- Multiple Sorting: Sort by date (newest/oldest) or rating (highest/lowest)
- Pagination: Browse through reviews with dynamic AJAX pagination
- Anti-Spam Protection: Rate limiting to prevent abuse (20 requests per minute)
Statistics & Display
- Average Rating: Automatic calculation of product rating average
- Rating Distribution: Visual breakdown of ratings (1-5 stars)
- Review Count: Total number of reviews per product
- Latest Feedback: Display most recent customer feedback
- Rating Summary: Comprehensive statistics on product page
Security & Permissions
- User-Specific: Users can only edit/delete their own reviews
- Record-Level Security: Proper access control for all operations
- Public Read Access: Anyone can view ratings and reviews
- Portal Integration: Authenticated users can submit reviews
Technical Features
- Responsive Design: Mobile-optimized interface
- Multi-Language Support: Fully translatable (English/Spanish included)
- AJAX Operations: Dynamic loading and updates
- Automatic Statistics: Real-time rating calculation
- Integration: Seamless integration with product templates
Installation
Prerequisites
- Odoo 17.0 or later
- website_sale module installed
- Database backup recommended
Installation Steps
Download the Module
Download the module package to your Odoo addons directory.
Update Apps List
Go to Apps → Update Apps List
Install Module
Search for "E-Commerce Product Ratings" and click Install
Verify Installation
Check that the rating widget appears on product pages
Configuration
No configuration required! The module works out of the box.
The rating widget automatically appears on all published product pages.
Usage
For Customers
Submitting a Review:
- Navigate to a product page
- Log in to your account (required)
- Scroll to the "Customer Reviews" section
- Click on stars to select your rating (1-5)
- Optionally add text feedback
- Click "Submit Review"
For Products with Variants:
- Select the specific variant you want to review
- Rate and submit as above
- You can review multiple variants of the same product
Managing Your Reviews:
- Click "Edit" to modify your review
- Click "Delete" to remove your review
- Only your own reviews show edit/delete buttons
For Administrators
Viewing All Ratings:
- Go to Website → Catalog → Product Ratings
- View all customer reviews
- Filter and sort as needed
Product Statistics:
- Open any product in backend
- Go to "Ratings" tab
- View rating count, average, and all reviews
API Reference
Rating Submission
Endpoint: /shop/product/rate
Method: POST
Authentication: Required (logged-in users only)
Parameters:
- product_id (int, required): Product template ID
- rating (int, required): Rating value (1-5)
- feedback (string, optional): Review text (max 500 chars)
- variant_id (int, optional): Specific variant ID
Response:
{ "status": "success", "message": "Thank you for your feedback!", "data": { "rating_avg": 4.5, "rating_count": 10, "rating_id": 123 } }
Review Loading (AJAX)
Endpoint: /shop/reviews/load
Method: JSON-RPC
Authentication: Public
Parameters:
- product_id (int, required): Product ID
- page (int, optional): Page number (default: 1)
- per_page (int, optional): Reviews per page (default: 5)
- sort_by (string, optional): Sort method
- filter_by (string, optional): Filter method
Response:
{ "success": true, "data": { "reviews": [...], "pagination": { "current_page": 1, "total_pages": 5, "total_reviews": 25 } } }
Review Deletion
Endpoint: /shop/product/rating/delete
Method: POST
Authentication: Required (user must own the review)
Parameters:
- rating_id (int, required): Rating ID to delete
Response:
{ "status": "success", "message": "Review deleted successfully!", "data": { "product_id": 123, "rating_avg": 4.3, "rating_count": 9 } }
Review Editing
Endpoint: /shop/product/rating/edit
Method: POST
Authentication: Required (user must own the review)
Parameters:
- rating_id (int, required): Rating ID to edit
- rating (int, optional): New rating value
- feedback (string, optional): New feedback text
Response:
{ "status": "success", "message": "Review updated successfully!", "data": { "rating_id": 456, "updated_rating": 5, "updated_feedback": "Great product!" } }
Database Models
ecommerce_product_ratings.product_rating
Fields:
- product_template_id (Many2one): Product being rated
- product_variant_id (Many2one): Specific variant (optional)
- user_id (Many2one): User who submitted the rating
- rating (Integer): Rating value (1-5)
- feedback (Text): Review text
- verified_purchase (Boolean): Whether user purchased the product
- create_date (Datetime): When the review was submitted
- variant_display_name (Char): Computed variant name
Constraints:
- Unique constraint: One review per user per product/variant combination
product.template (Extended)
New Fields:
- rating_ids (One2many): All ratings for this product
- rating_count (Integer): Total number of ratings
- rating_avg (Float): Average rating value
- rating_last_feedback (Text): Most recent review text
- rating_last_value (Float): Most recent rating value
Troubleshooting
Common Issues
Reviews Not Appearing:
- Ensure user is logged in
- Check that product is published
- Verify module is installed correctly
Cannot Submit Review:
- User must be logged in
- User cannot review same product/variant twice
- Check rate limiting (20 requests/minute)
Statistics Not Updating:
- Statistics update automatically on review create/edit/delete
- Try refreshing the product page
- Check server logs for errors
Support
For technical support and inquiries:
- Website: https://www.hexalian.com
- Email: support@hexalian.com
License
This module is licensed under OPL-1 (Odoo Proprietary License v1.0).
Copyright © 2024 Hexalian LLC. All rights reserved.
Changelog
Version 1.0.0
- Initial release
- 5-star rating system
- Text reviews with 500 character limit
- Verified purchase badges
- Variant-specific ratings
- Edit and delete functionality
- Advanced filtering and sorting
- AJAX pagination
- Anti-spam protection
- Multi-language support (EN/ES)
- Responsive design
- Complete API documentation
Credits
Development: Hexalian LLC
Contributors:
- Hexalian Development Team
Special Thanks:
- Odoo SA for the excellent e-commerce framework
- The Odoo community for inspiration and feedback
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module