Getting to grips with Merchello

Matthew Mirzai
By Matthew MirzaiDeveloper
5 minutes to read

Merchello is an ecommerce package used with the Umbraco content management system (CMS)

We’ve been following its progress for a couple of years and so were excited when we had the opportunity to put it to use. After spending a while tinkering around with it, here’s some key things that we’ve learnt.

It’s brilliant for consumers

First of all – holy moly is this thing powerful. Want to ship four separately taxed items from Hawaii to Uzbekistan with inventory tracking from four different warehouses? Merchello lets you do that. Want to have voucher codes for a single product range valid for one week? Or one month? Or until it’s been redeemed a specific number of times? Merchello lets you do that too.

Merchello already has plenty of readymade options for you. But it’s also open source so you can extend it even further. This means that there’s loads of flexibility for businesses to offer services for customers and stand out from competitors.

It’s easy to use

Not only is Merchello flexible but it’s easy to use too. We built a custom voucher engine which easily slotted into the existing setup. We also added a customer payment system and it works seamlessly. So much so that we’re a little bit suspicious that we’ve done something horribly wrong!

It encourages collaboration

Merchello has opened up the platform and invited developers to create add-ons which will only serve to make a better product. There’s a marketplace where you can look for anything you want to include on your website. And if it’s not there, you can easily build it yourself and make it available for other users.

Not only is this incredibly useful, it just goes to show how friendly the Umbraco community is.

It’s beginner friendly

Merchello also has some nice starter packages. FastTrack is its most recent offering and helped us quickly get to grips with how Merchello as a whole works. It gave us all the necessary templates and a very basic system that already works.

All you need to do is jump in and start customising and adding bespoke code from it – getting up and running is a very fast process! So if you’re starting your own Merchello site, it’s highly recommended to add this in first and have a play around.

The codebase is huge

As Merchello is so powerful, we had to get to grips with a massive codebase. It’s very convoluted with interfaces inheriting from interfaces, several models for one instance of product and a built-in caching system that seems to co-operate most with Merchello’s ‘standard’ way of doing things.

While Merchello is has a large marketplace and encourages innovation, attempting to do anything outside of its linear pipeline quickly leads to problems. For example the checkout progression only works the way it’s intended to and you can’t break outside of this without massive rewrites of the based code.

Be prepared to learn for yourself

One of the few downsides of Merchello is that the existing documentation isn’t very thorough. It highlights a couple of useful tips that you might need but otherwise it’s a very hands on learning experience.

Merchello has such a large codebase though that it does take time to go through and understand how parts work. You’ll find yourself following function calls through 10 different classes before finding what you need. But this can easily be solved through community effort and those who have already learnt contributing to the documentation.

We look forward to experimenting

Merchello has a few shortcomings but over time these will be addressed as the community contributes. Overall though it’s fantastic that such a powerful platform exists that is also highly customisable.

It has a steep learning curve but there’s so much potential that it’s exciting to see what both Merchello can do and what we can do for our clients.

comments powered by Disqus

Articles by Matthew Mirzai

Matt has 10 years experience in the development field and is a back end developer here at Enjoy Digital, specialising in Umbraco (and Mario Kart!)