Should I start from scratch or use nopCommerce?

At Nop-Templates.com we often get asked by developers and companies looking into nopCommerce how good the system is from a development and architectural point of view? Is it pleasant to work with? Is it extendible? And ultimately is it the right platform to use for an e-commerce project or even to base my ASP.NET business on? All these questions really boil down to:

If I am a .NET developer/company should I use nopCommerce or start from scratch?

Here goes our answer to this.

1. .NET developers new to nopCommerce would worry first and foremost about the code base and the architecture.

Since the 2.00 release of nopCommerce in 2011, nopCommerce has been widely adopted with almost none development documentation. This alone can testify to the quality of the nopCommerce architecture. The code base follows best practices like Inversion of controller, Separation of concerns, ORM, Automapping, etc and is always update with the latest version of ASP.NET MVC, currently ASP.NET MVC 5. So if you are wondering whether to start from scratch here is what you get out of the box with nopCommerce:

Dependency management via Autofac, which integrates both with MVC and your custom code.

A ready to use data layer using the newest EF 6.1 with Code First and the fluent API, both making it very easy to extend.

A built-in user management with all the required features like two-away authentication, password recovery, OpenId and most importantly ACL (access control lists) allowing for fine-grained permissions management.

An extensible theming mechanism.

An extensible plugin architecture.

Everything in nopCommerce is extensible 100% mostly due to the fact that it is based on ASP.NET MVC and the best practices that come with MVC and that it uses these technologies properly. Even if you are not developing an ecommerce project you can still borrow all this from nopCommerce because otherwise it would take you a lot to develop on your own.

2. What about the front-end? Is the markup clean and optimized? Can I easily customize it?

Well, let's start by saying that I personally know the guys who developed the default HTML/CSS markup (not the design) for nopCommerce. They work here at Nop-Templates.com :-). This was done as a major refactoring effort for the 3.00 version, which took more than 3 months. The goal was to make the HTML of the system consistent, follow all the latest trends, be easy to work with and allow for the development of responsive themes. And I can guarantee that the front-end team at Nop-Templates.com have done an awesome job! A testimony to this is the proliferation of responsive themes and websites since nopCommerce 3.00.

Still should you need to change or add something have in mind that the HTML/CSS can be overridden 100%.

As you can see on the architectural and code base side you are in pretty good hands if you decide to start with nopCommerce.

3. Will this hold for the features as well?

There are too many of them to be mentioned in a single blog post. Here you can find the complete list of nopCommerce features. Let me just mention a few, which I think are most important:

An user management with Vendors functionality. Users, user roles, vendors and access control lists can be managed with easy from the administration of nopCommerce. On the public side users can register and have a powerful My Account area, where they can manage their accounts, orders, etc.

A powerful catalog . You can have products each with more than 60 different properties like name, descriptions, prices, special prices, specifications, attributes, SEO data, stock management, etc. All of these properties are quite complex themselves so that you can achieve almost any ecommerce scenario.

A powerful discount system with coupon codes.

SEO management for all catalog pages, as well as any other page in nopCommerce. We have a backend management of all the SEO meta tags for every entity in nopCommerce. But we also have SEO-friendly urls, referred as slugs. NopCommerce have been building this SEO functionality since version 2.70 and it was complete in version 3.30.

Payment providers, Paypal, 2Checkout, SagePay, etc.

Shipping providers like UPS, USPS, FedEx, Australia Post, etc.

Built-in blog, news and forum. While meta tags are obligatory, these three powerful features are the killer weapons in your nopCommerce SEO toolbox. Use them in a meaningful way and you would never need the service of an SEO company.

Multi-language support out of the box with also an RTL support. One thing that I particularly like is that the system would not use language identifiers in the urls when there is more than one language enabled on the website. This is due to its proper implementation of the SEO-friendly urls.

Last but not least a checkout process which integrates both with the user management and the payment providers.

These are only a few of the features which you will get out of the box if you start with nopCommerce. Imagine how much time and effort you would need to develop these yourself. With nopCommerce as we already saw these are done nicely and you can easily built upon them.

I hope this will help anyone researching nopCommerce make the right decision! Do bear in mind that it has all been based on our years of working with nopCommerce. If you need examples of what you can achieve with the system you can have a look at our nopCommerce themes and plugins. If you still cannot find the answer to your nopCommerce conundrum do use the comments below.

How does nopCommerce's code base and the architecture compare to those of DNN? Which is the better web application framework?

I intend to create a web application where people/companies can register storage space they would like to offer for rent (along with many properties necessary for others to search and choose appropriate storage space), with Google-Map backed ZIP-based location search, photos and videos of storage spaces etc etc

This is not a typical eCommerce site for selling stuff.Is this better done based on a CMS (like DotNetNuke) or can nopCommerce be customized/extended in less effort?

Unfortunately I am not familiar with DotNetNuke, so I can't advice if it is better to it instead of nopCommerce.

Basically you can organize your "storage spaces" into products in nopCommerce. You can upload images, video etc. to products in nopCommerce. You have product search out of the box, which you can use for Zip-based search by adding the zip code in the product description for example.There is Rental products support in nopCommerce.

My advice is to give nopCommerce a try with a few products and then decide for yourself.