Magento extension review – Improved Sorting v1.2.4 by Amasty

Magento extension review – Improved Sorting v1.2.4 by Amasty

Recently I have been approached by the Amasty employee, asking me if I could do an independent review of two of their extensions. Usually here at Inchoo, we do not have a habit of doing so, however I was caught in a pretty good mood and decided to say yes. It’s probably because I had a pleasure meeting them in person on the last Magento Developer Paradise held in Mallorca September 16th to 19th 2013.

In this article I am going to do a quick review of their Improved Sorting v1.2.4 extension, using the latest Magento Community Edition v1.8.0.0 with nothing but the sample data downloaded from Magento website.

Before I jump to it, I would just like to emphasize one thing. Even though I had a personal contact with Amasty, this review is fully biased, I am sure they would not like it any way around. πŸ˜›

As noted on their official website, extension selling points are as follows:

  • Sorting by savings, display name ‘Biggest Saving’.
  • Sorting by sales, ‘Bestsellers’.
  • Sorting by product creation date, ‘New’.
  • Sorting by rating and by the number of reviews, ‘Top Rated’ and ‘Reviews Count’.
  • Sorting by the number of product views, ‘Most Viewed’.
  • Sorting by presence in wishlists, ‘Now in Wishlists’.
  • Sorting by the amount of products, β€˜Quantity’.
  • Works for catalog and search

After unpacking and installing the extension, here is the list of files added to my Magento installation:

  • app/code/local/Amasty/Base/Block/Extensions.php
  • app/code/local/Amasty/Base/Helper/Data.php
  • app/code/local/Amasty/Base/Model/Feed.php
  • app/code/local/Amasty/Base/Model/Source/Updates/Type.php
  • app/code/local/Amasty/Base/etc/adminhtml.xml
  • app/code/local/Amasty/Base/etc/config.xml
  • app/code/local/Amasty/Base/etc/system.xml
  • app/code/local/Amasty/Base/sql/ambase_setup/mysql4-install-1.0.0.php
  • app/code/local/Amasty/Base/sql/ambase_setup/mysql4-upgrade-1.0.0-1.0.1.php
  • app/code/local/Amasty/Sorting/Block/Catalog/Product/List/Toolbar.php
  • app/code/local/Amasty/Sorting/Block/Catalog/Product/List/Toolbar/Pure.php
  • app/code/local/Amasty/Sorting/Block/Featured.php
  • app/code/local/Amasty/Sorting/Helper/Data.php
  • app/code/local/Amasty/Sorting/Model/Catalog/Config.php
  • app/code/local/Amasty/Sorting/Model/Indexer/Summary.php
  • app/code/local/Amasty/Sorting/Model/Method/Abstract.php
  • app/code/local/Amasty/Sorting/Model/Method/Bestselling.php
  • app/code/local/Amasty/Sorting/Model/Method/Commented.php
  • app/code/local/Amasty/Sorting/Model/Method/Image.php
  • app/code/local/Amasty/Sorting/Model/Method/Instock.php
  • app/code/local/Amasty/Sorting/Model/Method/Mostviewed.php
  • app/code/local/Amasty/Sorting/Model/Method/New.php
  • app/code/local/Amasty/Sorting/Model/Method/Qty.php
  • app/code/local/Amasty/Sorting/Model/Method/Saving.php
  • app/code/local/Amasty/Sorting/Model/Method/Toprated.php
  • app/code/local/Amasty/Sorting/Model/Method/Wished.php
  • app/code/local/Amasty/Sorting/Model/Source/Methods.php
  • app/code/local/Amasty/Sorting/Model/Source/Stock.php
  • app/code/local/Amasty/Sorting/etc/adminhtml.xml
  • app/code/local/Amasty/Sorting/etc/config.xml
  • app/code/local/Amasty/Sorting/etc/system.xml
  • app/code/local/Amasty/Sorting/sql/amsorting_setup/mysql4-install-1.2.0.php
  • app/design/frontend/default/default/template/amsorting/list.phtml
  • app/design/frontend/default/default/template/amsorting/plain.phtml
  • app/design/frontend/default/default/template/amsorting/sidebar-noimages.phtml
  • app/design/frontend/default/default/template/amsorting/sidebar.phtml
  • app/etc/modules/Amasty_Base.xml
  • app/etc/modules/Amasty_Sorting.xml
  • app/locale/en_US/Amasty_Sorting.csv
  • skin/adminhtml/default/default/images/ambase/amasty.png
  • skin/adminhtml/default/default/images/ambase/bad.gif
  • skin/adminhtml/default/default/images/ambase/ok.gif
  • skin/adminhtml/default/default/images/ambase/update.gif

Overall, installation took around several seconds and went without any issues.

Initial administration screen welcome message
Amasty - Dashboard Magento Admin

Administration area, shows extension indexer
Index Management - System - Magento Admin

Administration area, shows extension specific config options
Configuration - System  - Magento Admin

Administration area, shows General config options
Configuration-System-Magento Admin 2

Frontend screenshot, demos Sort By toolbar select filtered by Reviews Count value
Furniture

Pros:

  • Support for the latest Community (1.8) & Enterprise Editions (1.13)
  • Affordable price (and yes, regardless what some of you might think, $79 for Magento Community Edition and $229.00 for Magento Enterprise Edition licence is actually cheap, this is eCommerce business, not some amater blogging stuff)
  • Clear and concise installation guide (readme.txt file supplied within the extension download archive)
  • After installation “Incoming Message” is a nice user friendly touch with a short “Remember to flush all cache, recompile, log-out and log back in.” instructions.
  • Addition of special custom “Improved Sorting” indexer found under System > Index Management used for “data for best-selling, most viewed and wishlist sorting options” instills confidence in details they put in code.
  • It just works, no issues after installation (at least no issues on my Magento v.1.8)

Cons:

  • Not a technical issue at all, but… Use of local codePool for extension location. This has absolutely no technical impact, since for Magento it’s all the same whether it uses community or local code codePool. However, as a developer, I would expect all 3rd party distributed extensions to be found under community codePool.
  • Not a technical issue at all, but… Use of app/design/frontend/default/default/template/amsorting for template view files (.phtml) location. Given that they sell many Magento extensions, I would like to see them all of their template view files under one roof, like app/design/frontend/default/default/template/amasty, further divided into sub-folders named like their extension, for example in this case app/design/frontend/default/default/template/amasty/sorting. Approach like this gives far better overview of things for front-end developers working on Magento project with several extensions from single vendor. Same remark goes for JS, CSS and images under skin folder.
  • Not quite that big, if any technical issue at all, but… There is a Magento cron job definition found under config > crontab > jobs > amsorting_index of app/code/local/Amasty/Sorting/etc/config.xml file, that seems to schedule a cron job each day at 1:07. The readme.txt insallation / instruction file I referenced earlier does not mention cron jobs. Which is a slight minus, even though when running Magento you are expected to have your system cron setup to trigger Magento cron every now and then. What this cron job does is that it runs Amasty_Sorting_Model_Indexer_Summary->reindexAll() which in turn runs individual Amasty related indexers like Bestselling, Commented, Mostviewed, Toprated, etc. Now, you might want to keep an eye on this part of functionality if you are running a store with large number of products, or at least adjust the config > crontab > jobs > amsorting_index > schedule > cron_expr value to match the time when your store is experiencing the lowest user hit
  • Not quite that big, if any technical issue at all, but… Extension defines two core class rewrites, one for Mage_Catalog_Block_Product_List_Toolbar and other for Mage_Catalog_Model_Config. Be sure to keep that in mind if you have several other 3rd party extensions some of which possibly rewrite the same core classes.

Final verdict:
Extension code looks pretty professionally written, and it delivers the functionality it promotes. Even though my cons section might seem big at first, please read carefully what I said as these kind of broad comments apply to almost every Magento extension and they can hardly be taken as serious cons. Overall, if your project requires this exact functionality, then Improved Sorting extension by Amasty is definitely worth the money.

You made it all the way down here so you must have enjoyed this post! You may also like:

Magento 2 Product Quick View Tomas Novoselic
, | 5

Magento 2 Product Quick View

How I learned to stop worrying and love 3rd party modules for Magento Luka Rajcevic
Luka Rajcevic, | 2

How I learned to stop worrying and love 3rd party modules for Magento

Return Management Authorization by Aheadworks (review) Stanislav Mihic
Stanislav Mihic, | 1

Return Management Authorization by Aheadworks (review)

7 comments

  1. Thanks for nice review! For my customers I usually use Magento Product Filter Extension by Plumrocket which has fast Ajax filter and another key thing why I like it – the module supports all available product attributes and custom options.

  2. This extension is actually pretty useful. What made me buy this is the “sort by product views” which I cannot implement in my site. Other features of this extension can easily be implemented in by tweaking the default Magento sorting options. Anyway, thanks to Amasty for solving my problem fast. πŸ™‚

  3. Nice review. Even if you say “Usually here at Inchoo, we do not have a habit of doing so” maybe you should start doing so. Magento developers have a high level of trust in Inchoo – at least I have πŸ™‚ – and these kind of reviews help us in taking decisions about the extensions to use. Maybe you can have a separate section on your blog about Extension code review. I know that this can lead to a lot of requests for core review but I think you can “cherry pick” from them. What do you say?

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <blockquote cite=""> <code> <del datetime=""> <em> <s> <strike> <strong>. You may use following syntax for source code: <pre><code>$current = "Inchoo";</code></pre>.

Tell us about your project

Drop us a line. We'd love to know more about your project.