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 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!