Isotope eCommerce Blends CMS Content with your eCommerce shop.
No bridges here. Just pure integration.

Faster Product Listing & Filtering with Smart Filtering and Product Caching

October 6, 2011 (comments: 9)

Isotope is known for its flexibility.  It has never been a "one size fits all" approach, but the tradeoff is that you have more to deal with behind the scenes to accommodate as many possible uses as you can without limiting the system. Inevitably, the price to be paid is usually in performance.  If the system has more to manage and think about, then it needs more time to do it.  Well, in the case of product listing and filtering, we simply couldn't allow a heavier engine slow down the vehicle.  As a result, two new features have been added - product caching and "Smart Filtering".

What is "Smart Filtering"?

Smart Filtering makes it possible for customers to filter products faster by knowing which data can be directly queried against the product database instead of loading unnecessary extra rows that don't quite fit what the user is looking for.  In the past, Isotope usually asked for more rows with more basic queries, which meant loading more products, and of course, slower page load times.  Now, if a particular filter value can be added directly to the query, the system is smart enough to know that and to do it, which means small result sets, and faster load times. Awesome!

Product Caching

Product Caching makes it possible for us to store just the specific product IDs that we need for a given set of product listing/filtering parameters.  So, if someone has already searched in a particular category for shirts that are red and extra large, Isotope will remember that and the product IDs that fit that information, and show only those corresponding products in the list for the fastest possible shopping experience.

Ok, but how does Isotope know when the cache needs to be updated? 

That is a very good question!  Simply put, if there are any changes made to products in the backend, the cache is purged and rebuilt the next time the request is made.  Or, if a product is no longer available but listed in the cache, the system will recognize that and rebuild the cache to reflect the most up-to-date information.

Special thanks to Yanick Witschi for writing a great explanation on these two new features so that we can share the exciting news with you all!  Yanick and Andreas worked very hard on these issues to come up with a solution that improves Isotope for all users.

The Isotope Development Team is always looking for ways to improve the core.  It is an ongoing process that cannot be left alone.  Most of the time, we spot things that most users don't even realize are an issue, or might not be an issue unless you are pushing the limits of the system in some way or another.  What can we say?  We're passionate about e-commerce!

Go back

Add a comment

Comment by warrior | 2011-10-11

Sorry, but your db sql have errors, which i found when made a sample isotope site install. Could you be able to help me a little to build up your sample site?

Comment by Blair Winans | 2011-10-11

Can you provide some additional details? Specific errors? The Current SQL is for the 0.2 version, not the 1.3, which is still in Beta.

Comment by warrior | 2011-10-11

To find were errors are I started SQL import step by step and first error appears when I run: INSERT INTO `tl_content`(..)VALUES... I got this - #1054 - Unknown column 'iso_attribute_set' in 'field list'. And, yes, after that there were some others errors too. Next appears on line 463 with - #1054 - Unknown column 'conditionField' in 'field list', line 1449 with - #1054 - Unknown column 'aggregate' in 'field list', then on line 1720 with - #1054 - Unknown column 'iso_list_layout' in 'field list', then on line 1969 with - #1054 - Unknown column 'iso_config' in 'field list', then on line 2085 with - #1054 - Unknown column 'iso_product_types' in 'field list'.
So it would be very nice from you if you could find some time to correct those errors and giving with that me and others a chance to learn some Webshop site building best practices.

Comment by warrior | 2011-10-11

And, yes, I follow instructions in your Website trying to build this sample Web shop site. I made clean Contao CMS installation, after that downloaded from your site sample files and try to install, but got only errors.

Comment by Blair Winans | 2011-10-11

Those errors are because you have not run the Contao install tool after installing the Isotope files or are operating with Contao 2.10 and not Contao 2.9.

Right now the SQL is for Isotope 0.2+ and Contao 2.9+. It will not work with Isotope 1.3 and Contao 2.10. We will be updating these once Isotope reaches 1.3 RC/stable.

I will try and fix what I can, as I think one of those errors is valid, but the others are due to installing on the wrong platform release.

Comment by warrior | 2011-10-11

Ok, I see. It would be very nice to make this isotope module compatible with newest version of Contao CMS. I also was trying to translate isotope, but got another error message, that isotope can not be translated (in Latvian) and got recommendation to connect to isotope creator.

Comment by Blair Winans | 2011-10-11

We're working on it... 1.3 is getting close to being released as stable so we should have it ready then. Stay posted. It should technically work if you start out at 2.9.5, run the install, and then upgrade to 2.10 and 1.3, so you could always try that in the meantime. Stay tuned for updates soon.

Comment by warrior | 2011-10-11

Huh. Tried with 2.9.5 and adding isotope through install tool, but got error again: Fatal error: Uncaught exception Exception with message Query error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 (INSERT INTO `tl_article` (`id`, `pid`, `sorting`, `tstamp`, `author`, `inColumn`, `title`, `alias`, `teaser`, `showTeaser`, `keywords`, `space`, `cssID`, `printable`, `published`, `start`, `stop`, `teaserCssID`) VALUES ) thrown in C:\...\site\system\libraries\Database.php on line 642

Comment by Blair | 2011-10-11

Did you truncate everything first? Try this:

1. Install fresh Contao 2.9.5
2. Drop all tables and import SQL file
3. Login to the backend using user: k.jones and pass: kevinjones (don't forget to change this!)
4. Download Isotope & dependencies from the Extension Repository, and run the install tool.

I just did that myself and it worked flawlessly. We should have 1.3 up and ready soon, so check back often!