As I mentioned earlier in my post, Orchard E-Commerce Website and Media Library, I've been upgrading the Orchard E-Commerce Website and Online Store I built in Orchard CMS 1.5 to Orchard 1.x on CodePlex. I first upgraded the online store to use the new Media Library and Media Processing Modules. And, now, I have finished various improvements in the product catalog to handle the shift to document storage in Orchard CMS using Infoset. I've also leveraged some of the improvements in Indexing, Lucene, and Searching as well as, of course, the continued use of the Media Library and Media Profiles to help with displaying various images on product detail pages and product category pages. And, last, where I had one Orchard Module that contained all the Orchard Widgets and Content Parts for the product catalog, I now separated them into more reusable modules as many of these Widgets and Content Parts are useful for more than just a product catalog in an e-commerce website.
Orchard CMS Document Storage using InfoSet
In several posts I've mentioned this change to a document storage type of solution using Infoset in Orchard CMS 1.x, lovingly known as "the shift". I've been slowly converting many of my modules to use this new approach to document storage that eliminates a lot of code in custom Orchard Modules as well as improves the performance of Orchard by reducing database tables, joins across these tables, and the possibility of Select N+1 queries. This will probably be first introduced in Orchard 1.8, but you can play with Infoset now in the Orchard 1.x source code on CodePlex. Check out various recent blog posts mentioning the shift to Infoset in Orchard for Content Part data:
- Custom Orchard Modules - Humans.txt
- Robots.txt Module for Orchard CMS using Infoset
- Orchard 1.8 and Smart App Banners using Infoset
- Olark Live Chat Module using Infoset in Orchard 1.8
I've taken this same approach in a few places and updated the Orchard Widgets and Content Parts used to make the product catalog in my e-commerce website:
- Product Spotlight Widget to promote a product anywhere in the online store.
- Products List Widget to display various products as recent products, products on sale, popular products, etc.
- Related Products Widget for use on the product detail page to promote related products.
- Reviews Widget to display reviews about a product in the product catalog.
Surprisingly not a lot had to change in the product catalog since Orchard 1.5 since I leveraged the new fields in Orchard 1.4 and Content Picker in Orchard 1.5 to my advantage. Still, there were a few changes to Infoset and these changes reduced the amount of code and hopefully improve performance.
Orchard Product Catalog Using Media Library and Media Processing
I took those same Orchard CMS Media Library and Media Processing Enhancements used in the various portfolios and carousels in the online store and used them for the product catalog ( Orchard Online Store and Media Library ). The Orchard Administrator has the ability to use media profiles and various custom image filters to serve images for use in the product categories, product catalog's detail view, related products, product spotlight widget, product list widget, etc. If it's not obvious, I'm a big fan of the new Media Library and Media Processing Modules in Orchard CMS!
There are still some changes that need to be completed here with the product catalog in the online store regarding moving from the Orchard Rules Engine to Orchard Workflow. I'll save that for another time, but you can read a couple of blog posts where I mention creating custom workflow activities for Orchard CMS:
- Extending Orchard Workflow with Custom Activities
- Developing Custom Workflow Activities for Orchard CMS
Always fun to work on side Orchard CMS projects whenever I get the chance!