For a while now, since last Codegarden in 2014 in fact, I've been planning to take a look at Merchello, an e-commerce framework for Umbraco. In the past I've made use of uCommerce which worked well for the project but the fact that, like Umbraco, Merchello is open-source is one factor that makes it attractive to consider for future projects.
So on and off for the past few weeks I've built out a very basic store site. Really doesn't look like much and has little in the way of bells and whistles, but implements a number of the core features required for an e-commerce website, namely:
- Product category and product pages
- Products with variants, with price and availability indicated for the particular variant selected
- Basket page with quantity update and option to remove
- Billing and shipping detail collection
- Delivery method selection and application of postage & packing costs
- Selection of payment method
- Integration with a credit card processing provider, Authorize.Net
- Presentation of confirmation screen
Nothing in the above is particularly off the beaten track when it comes to Merchello - there are a number of extension points available that I've not dug into yet.
That said, in building this out I did find myself digging into a number of documentation pages and examples (plus forum posts of course) which as is often the case with a fast moving project, sometimes struggle to keep up with the latest features.
I've also followed some stricter MVC patterns I like to use with Umbraco development, which is to use route hijacking, strongly typed POCO view models and mapping with Umbraco Mapper and AutoMapper from my Umbraco content and the Merchello APIs and objects respectively.
For both those reasons think it's worth sharing and may be of use for anyone else making a start with this product. Code is up at GitHub.