.
Please, use the following credentials
user:manager,password:manager
for logging to the Dashboard.
New FREE Shopaholic Bootstrap Theme Available!
Free E-Commerce Bootstrap for Shopaholic theme is now available on October's marketplace. Check out the theme's live demo version. It demonstrates what you can build with Shopaholic and will soon have support for all our plugins and extensions. We will also constantly update it to cover all Shopaholic functionality.
Open to your Ideas!
Let us know if you have any questions, ideas or suggestions! Just drop a line at shopaholic@lovata.com
Live Demo
You can visit our Live Demo site. Sign in to backend using: login - manager, password - manager. You can deploy the demo site locally. To do so, you need to clone the repository, follow the steps from the "Installation guide", install the plugins. As a result, you will receive a copy of the demo site with a full database. Having a ready-made demo site example, you can easily learn how to operate the plugins.
Large Catalog Performance Live Demo
If you would like to know how our plugins perform with large catalogs of products, you can visit our Large Catalog Live Demo that has 21 000 products, 68 000 offers and 210 000 variations of property values.
Below are the performance characteristics for server setup: Dual Core CPU with 4GB of RAM.
For a catalog containing 210 products
Catalog page load time: 100-150 ms
Product list filtering time: 80-100 ms
For a catalog containing 21 000 products
Catalog page load time: 900-1100 ms
Product list filtering time: 500-600 ms
Support
Please join us on #shopaholic channel in October CMS slack chat in order to have quick support on all our products. You will also get all newest updates and insights about our existing and upcoming products!
If you have any specific requests, suggestions or ideas please do not hesitate to send us a message, it will help us make our products even better.
If you don't have access to octobercms.slack.com, please register here
Required Plugins
Recommended Plugins
General information
Reviews for Shopaholic plugin allows clients to post reviews for products on your online shop or marketplace. Reviews provide customers with more insight as to the quality of the product and the level of satisfaction other customers had upon receiving the product. This important feature helps customers in making the final decision and serves as incentive to buy products, therefore increasing conversions.
The plugin extends Shopaholic’s functionality as follows:
- Customers have the opportunity to review products and rate them (rating range can be set by the admin, for instance from 1 to 5 stars);
- The overall product rating is generated as an average value based on all received reviews;
- Before being posted on the website reviews go through moderation;
- Allows to display a list of reviews for a product;
- Allows to display the product’s overall rating;
- Provides additional functionality to sort products by rating.
Get involved and contribute to the project
If you’d like to help us improve the project, you can do so in the following ways:
- Report bugs and recommend new features on our plugin’s GitHub issues page;
- Contribute to the project by following these instructions;
- Follow and support us on social media: Twitter page; Facebook community.
You can also visit LOVATA’s GitHub page.
License
© 2018, LOVATA Software Development Company under Commercial License.
Developed by Andrey Kharanenka.
The following plugins are required
Toolbox
Helpers for faster development: pagination rendering, objects and lists caching, UI strings for using in third...
Toolbox
Helpers for faster development: pagination rendering, objects and lists caching, UI strings for using in third...
Shopaholic
No. 1 e-commerce platform for October CMS
Shopaholic
No. 1 e-commerce platform for October CMS
This plugin is also included into the following bundles
Sneakers Shop Pro for Shopaholic
The ready-made online athletic shoe store
Sneakers Shop Pro for Shopaholic
The ready-made online athletic shoe store
- Sneakers E-Commerce Theme for Shopaholic
- Good News
- Filter for Shopaholic
- Mighty SEO
- + 14 more
Sneakers Shop for Shopaholic
The ready-made online athletic shoe store
Sneakers Shop for Shopaholic
The ready-made online athletic shoe store
- Sneakers E-Commerce Theme for Shopaholic
- Good News
- Filter for Shopaholic
- Mighty SEO
- + 8 more
PRO Shopaholic E-commerce Bundle
Adds even more great features to your Shopaholic E-commerce solution
PRO Shopaholic E-commerce Bundle
Adds even more great features to your Shopaholic E-commerce solution
- Accessories for Shopaholic
- Campaigns for Shopaholic
- Compare for Shopaholic
- Coupons for Shopaholic
- + 4 more
The following theme uses this plugin
The full plugin documentation is available here.
Extension ProductItem class
Plugin adds fields:
- (float) rating
- (ReviewCollection) review
"review" field in ProductItem object returns ReviewCollection object with sorted reviews for this product.
Example: render product reviews on product page
[ProductPage] slug = "{{ :slug }}" == {# Get product item #}s {% set obProduct = ProductPage.get() %} <div data-id="{{ obProduct.id }}"> <h1>{{ obProduct.name }}</h1> {# Render product rating #} <div>{{ obProduct.rating }}</div> {# Get list of reviews #} {% set obReviewList = obProduct.review %} {% if obReviewList.isNotEmpty() == true %} <ul> {% for obReview in obReviewList %} <li>{{ obReview.comment }}</li> {% endfor %} </ul> {% endif %} </div>
MakeReview component
The component allows to create reviews.
Component properties:
- Mode (Submit form/Ajax form)
- Send flash message (only for Ajax mode)
- Enable redirect
- Choose page for redirect (the URL of the page will be passed to the review ID, product ID and product slug)
Usage: The component is used to process the review form. To send an ajax request, you must use the MakeReview::onCreate method. Available fields: name, email, phone, comment, rating.
Example 1 (Submit form).
[MakeReview] mode = "submit" redirect_on = 1 redirect_page = "review_success" == {% set arError = MakeReview.getErrorMessage %} {% set arForm = MakeReview.getOldFormData %} <form> <label for="field-email">Email</label> <input type="email" id="field-email" placeholder="Email" name="email" value="{{ arForm.email }}"> {% if arError.message is not empty and arError.field == 'email' %} <p>{{ arError.message }}</p> {% endif %} <label for="field-comment">Comment</label> <textarea id="field-comment" name="comment">{{ arForm.comment }}</textarea> {% if arError.message is not empty and arError.field == 'comment' %} <p>{{ arError.message }}</p> {% endif %} <span>Rating:</label> <label><input type="radio" name="rating" value="1">1</label> <label><input type="radio" name="rating" value="2">2</label> <label><input type="radio" name="rating" value="3">3</label> <label><input type="radio" name="rating" value="4">4</label> <label><input type="radio" name="rating" value="5">5</label> <input type="hidden" name="product_id" value="10"> <button type="submit">Submit</button> </form> {% if arError.message is not empty %} <p>{{ arError.message }}</p> {% endif %}
Example 1 (Ajax request).
$('form').request('MakeReview::onCreate');
The MakeReview.getOldFormData method returns the filled form fields, if the form was sent and an error occurred. The MakeReview.getErrorMessage method returns an error message if the form was sent and an error occurred.
[ 'message' => 'Error message', 'field' => 'email', //Field name, if there was a validation error ]
Plugin adds sorting by rating to ProductCollection class ('rating|desc', 'rating|asc').
Example: render of product list
Get collection of product, apply sorting by rating (desc), filter by flag "active" and category ID.
{% set obCategory = CategoryPage.get() %} {% set obProductList = ProductList.make().sort('rating|desc').active().category(obCategory.id) %} {% if obProductList.isNotEmpty() %} <div class="product-list-wrapper"> {% for obProduct in obProductList %} <div data-id="{{ obProduct.id }}"> <h1>{{ obProduct.name }}</h1> {% if obProduct.preview_image is not empty %} <img src="{{ obProduct.preview_image.path }}" title="{{ obProduct.preview_image.title }}" alt="{{ obProduct.preview_image.alt }}"> {% endif %} <div>{{ obProduct.preview_text }}</div> </div> {% endfor %} </div> {% endif %}
-
Kuznetsov Semen
Found the plugin useful on 17 Dec, 2019
Simple and intuitive plugin. Easy to install and expand
-
Lovata sp. z o.o. author
Replied on 18 Dec, 2019
Hi!
Thank you for using Shopaholic products and your review of the Reviews plugin! ?️
We're happy you've found it easy to use!
-
1.7.1 |
Fixed error in MakeReview component Mar 24, 2024 |
---|---|
1.7.0 |
Added withComment and withRating methods to ReviewCollection class Mar 14, 2024 |
1.6.1 |
Updated composer file Jul 07, 2023 |
1.6.0 |
Added the ability to link reviews to different sites. Added site() method to ReviewCollection class. Jul 07, 2023 |
1.5.1 |
Change lists method to pluck method. Thanks for contribution Nick Khaetsky. Apr 05, 2022 |
1.5.0 |
Added composer.json to plugin May 01, 2021 |
1.4.1 |
Fixed dynamic method in ProductItem class. Requires Toolbox plugin version 1.28.1 and later. Mar 03, 2020 |
1.4.0 |
Update license file Aug 07, 2018 |
1.3.2 |
Add permissions for "Reviews" menu item. Jul 27, 2018 |
1.3.1 |
Fix work with *Store classes in *Handler classes. Jul 11, 2018 |
1.3.0 |
Add new store classes. Refactoring *Store, *Item, *Collection classes. Requires Toolbox plugin version 1.10.0 and later. Jun 21, 2018 |
1.2.0 |
Update logic for new version of CResult class. Requires Toolbox plugin version 1.9.1 and later. Apr 17, 2018 |
1.1.1 |
Added check for isNested flag when expanding forms Feb 23, 2018 |
1.1.0 |
Add "rating_data" field, add "getRatingCount", "getRatingTotalCount", "getRatingPercent" methods to ProductItem class Feb 08, 2018 |
1.0.0 |
Initialize plugin. Feb 04, 2018 |