Wednesday, April 3, 2013

Building an eCommerce Site with NopCommerce

Below is a blog entry I wrote for Bayshore Solutions in March, 2013. It contains information about my experience implementing NopCommerce. Hopefully some of the contents provide valuable information for somebody else. Enjoy!

Not long ago, an online store was seen as a means of adding presence to traditional brick-and-mortar stores. According to the National Retail Federation, online shopping makes up to 40% of retail purchases for an average person these days.

Clearly the convenience of eCommerce has been embraced by consumers and the trend is unlikely to change, therefore many retailers are reinventing their business in order to make their products available on the web.

Bayshore Solutions has worked with many retailers to support their eCommerce efforts by building state of the art sites that help businesses expose their products in ways never seen before.
Although there are plenty of tools available to create an on-line store, one of the most common tools used by Bayshore Solutions to develop a custom eCommerce store is NopCommerce.

NopCommerce is an open source shopping cart designed and developed by a group of entrepreneurs from many different countries using state of the art technology; this has transformed NopCommerce into one of the preferred solutions for developing eCommerce sites under the .NET Platform.

NopCommerce offers a quick and effective way to get a store started; installation is a breeze thanks to their web install. NopCommerce has a wealth of features and capabilities out of the box. Below is a summary of some key features:

  • Unlimited Number of products on the catalog
  • Support for categories, subcategories and manufacturers
  • Product Attributes
  • Management of Stock by Attribute
  • Ability to manage discounts by role
  • Tier pricing
  • Customer can enter price
  • Support for downloadable products
  • Anonymous checkout
  • Open ID, Facebook and Twitter Authentication
  • One page checkout
  • Multilingual/Internationalization
  • Multiple Shipment methods and shipment amount calculations
  • Free shipping over $X amount
  • Support for multiple payment methods
  • Extensible interface that allows creating custom plug ins
  • Sales dashboard
  • Import/Export of basic data
  • PDF Invoicing
  • Source code is provided for the entire product. The source code is well organized, documented and it is possible to extend it and modify it to accomplish any task imaginable.

A detailed list of features can be found at:

Despite the fact that NopCommerce offers a great amount of features and functionality, there are multiple challenges to overcome when building an eCommerce site using this tool. Some of the common challenges faced when building a custom NopCommerce site are listed below:

  • Design integration, although the system includes the ability to incorporate new themes; it is always challenging to incorporate layouts that modify the default. Adding custom styles to NopCommerce native controls is not simple; this usually requires a developer in conjunction with a graphic designer.
  • Importing product and attribute data could be complicated when interfacing disconnected systems, for example trying to feed a catalog of existing products from an ERP system to NopCommerce will require a customization in most cases. Assuming that the source of the data will be the ERP system it will be necessary to create a scheduled task that will load the products once or multiple times a day by using an external CSV file or a web feed.
  • Implementing complex shipping, taxes or payment methods could be challenging. Although the framework includes a myriad of shipping, taxes and payment options, customized business rules are difficult to implement. For example taxes can be calculated based on a zip code and percentage, however if the business requires to set a threshold before applying taxes, then a customization to an existing tax calculation plug-ins would have to performed. Consider the following scenario: Charge taxes by zip code but only apply taxes to purchases over $500, although the first part of the requirement is met out of the box, there is no way to set a rule to only charge taxes for purchases over $500.
  • Heavy content sites: Although NopCommerce includes a feature that allows the user to create content and display it, it is not meant to be used on a heavy content site that involves pages, subpages and dynamic navigation. Since the main purpose of NopCommerce is to build a store, content can be included but within its limits. Bayshore Solutions usually approaches this issue by building a content site, with a store domain. Both sites have the same look and feel but when the user clicks on any feature that requires displaying inventory, they are taken to the NopCommerce store.
  • Additional data fields. Because of the number of features in NopCommerce, a common request is the need is to store additional information linked to existing NopCommerce entities in order  to better match the business need being addressed by the site; for example add additional customer information such as: phone numbers, addresses, comments or business related information. Although it would be tempting to add these extra pieces of data to existing NopCommerce entities, it is often easier to create separate objects and layers to hold and manage this data and link them to the default entities; this will allow to better maintain the site and to facilitate a possible future upgrade.