If you’re like me, you probably like to read comparative reviews of ecommerce platforms, don't you? But to be honest, as often as not when I see such reviews, I’m frequently disappointed because the content turns out to be rather superficial in the end. This is not surprising — most of what you find in the public domain about a product is simple marketing information. If you want details, you have to dig into community forums, GitHub, and other sources for developers.
Well, luckily for you, I've already done the work, so I want to present you with the ultimate guide for comparing the two most popular .NET ecommerce platforms: Virto Commerce versus nopCommerce.
Here it should be said, first of all, that it is impossible to directly compare two ecommerce products from different vendors. In fact, you should never say ‘this product is better or worse’ in general terms, you have to always specify — the best for which size of business, for the B2C or B2B sector, on which platform the development was done, and using many other criteria. As a result, there are really no two ecommerce platforms on the market that are nearly identical.
So the most important issue to clarify is that this review of Virto Commerce and nopCommerce is comparing two ecommerce platforms developed on Microsoft .NET. nopCommerce is a lightweight product for SMBs in the B2C sector, and it mainly uses the ASP.NET Core web development framework, which is just a part of Microsoft .NET.
For its turn, Virto Commerce is a B2B platform for enterprise-level ecommerce. During development, either ASP.NET Core or another .NET framework is used, including development for Azure services, for AI and Mobile.
“When you read reviews about Microsoft technology-based products, you may be confused by terms like ASP.NET, ASP.NET Core, .NET, frameworks, and development environments. You can find a special article, Understanding Open-Source eCommerce Platform ASP.NET Core and .NET Terminology, in our blog to help you understand all the nuances of these technologies.
”
If you compare these ASP.NET ecommerce platforms to, let’s say, the automotive industry, Virto Commerce is a heavy-duty engine for B2B customers that you can connect to a dump truck, a tractor trailer, or a liquid tanker. So, in other words, Virto Commerce adapts to the needs of a manufacturer just as easily as a large retail business. As a result, the focus is not as much on design, but a lot more on functionality for B2B customers.
By comparison, nopCommerce is like a B2C manufacturer of passenger cars with lots of bright colors and different interiors and bodies. So, keep this in mind when reading this review.
Since the review is published on the Virto Commerce blog, I propose to first start talking about the nopCommerce platform, including in the context of ASP.NET Core. Let's get started!
The development of the nopCommerce platform began in 2008 as a project on the .NET framework and ASP.NET projects, supported by the CodePlex initiative of Microsoft. For those who don't know, CodePlex (2006-2017) was the predecessor of GitHub, the largest web service for hosting IT projects and collaborative development today.
Over the course of a dozen years, there were several positionings of nopCommerce in the market, including an open-source ecommerce engine, open-source CMS shopping cart software, and, finally, ASP.NET Core ecommerce platform based on Microsoft technologies.
In 2011, version 2.0 was released, which was ported to ASP.NET MVC 3 and supported Razor syntax for views. Then in 2013, version 3.0 was released, and new versions appeared as Microsoft updated frameworks. Most recently, the migration of the nopCommerce project to .NET 6 took place in February 2022.
“Supported nopCommerce business models: major focus is on realizing basic B2C scenarios, but has some extensions for B2B scenarios for SMBs.
”
nopCommerce is an open-source ecommerce software that contains both a catalog front end and back-end database with an administration tool. nopCommerce has a fully customizable shopping cart — stable, secure, and extendable. It has a rich ability to style the look of an online store and provides a large set of ready-made extensions available from the NOP Marketplace plug-ins.
License Type: Free for “as-is” downloadable distributive, and about $50/month if you prefer to have nopCommerce preinstalled in the cloud with a ready-to-run online store. Although the preinstalled version is residing on a third-party hosting provider, it is assumed that some of your money comes back to nopCommerce as a commission.
nopCommerce is distributed in accordance with Public License Version 3.0. https://github.com/nopSolutions/nopCommerce/blob/develop/LICENSE.md. However, the monetization model assumes that there are paid plug-ins and services from the nopCommerce team like customization and support services. For example, if you want to remove the "Powered by nopCommerce" link from the footer of your nopCommerce website, you will have to pay $250 for a copyright removal (or $125 in some cases).
Below is the feature list provided on the vendor website:
The architecture of the nopCommerce project is a classic monolith, in which all parts of the platform, such as admin, front end, and API services, are run within a single application and are part of a single component.
At the same time, there is an ecosystem of plug-ins that allows you to expand the standard capabilities of the platform by installing new plug-ins without having to recompile the project. As of now, plug-ins can be used to expand the level of business logic and front-end user interface.
nopCommerce plug-ins work as extensions to the platform's basic functionality developed by third-party developers or the NopCommerce team itself, and are distributed via the platform's own marketplace.
With nopCommerce plug-ins and widgets, you can only extend certain parts of the business logic, as well as the front-end user interface and the administrative part. It can be done using the so-called WidgetZones, which are special places in the UI where the plug-ins can be loaded. Note that a plugin also can be used to deliver into the platform the custom implementation of .NET components that can extend or override default Nop implementations via registration them in the DI container (ServiceCollection).
Here's a partial list of the features that can be extended or added by installing plug-ins:
nopCommerce uses at least three different types of caching data, which can drastically speed up application performance
Initially, the nopCommerce project was not built on the principle of “API first.” Therefore, not all admin and front-end functions are available through the Web API for the base application. There is, however, an official, paid nopCommerce Web API plug-in that uses the RestAPI interface for most functions.
The official nopCommerce Web API plug-in covers all methods of nopCommerce. The Web API plug-in is available with source code. It is a RESTful API built according to the OpenAPI 3.0 specification (OAS). Using a tool like the Swagger UI or within the SwaggerHub platform, it is possible to convert OAS contract into an interactive API console that developers can use to interact with the API. nopCommerce offers a suite of APIs that allows developers to use and extend the platform's built-in features.
For extensions, nopCommerce offers the following capabilities:
“Clients who order such customization become critically dependent on the implementation partners who own the modified code. It is like a fork in cryptocurrencies — when this happens, the chain splits, producing a second blockchain that shares all of its history with the original, but is headed in an entirely new direction.
”
“Important: Support for multiple databases is not available in nopCommerce.
”
Microsoft's ASP.NET Core framework brings built-in security to your online store. By comparison, when you use PHP-based platforms (not like nopCommerce or Virto Commerce), it is necessary to design a protection system from scratch to maintain a minimum level of security.
With a lack of independent performance benchmark data, only data provided by the nopCommerce team or their partners is available for nopCommerce platform 4.50 version.
The recent trend toward composable architecture has been highlighted by many ecommerce vendors. They often talk about the benefits of modularity in their web pages. However, this can also mean a chaotic set with no logical order, which makes it difficult for partners’ and clients’ developers to work effectively on customization and integration tasks.
The lack of clear rules for how different components fit together has been a challenge in developing software applications. With every new module needing to be integrated into the application ecosystem, especially from third parties, it becomes increasingly difficult without well-defined standards on what needs to be done when integrating.
Until now, among ecommerce vendors, no one except Virto has offered partners’ and clients’ development teams such a harmonious and logically understandable architecture as the Virto Atomic Architecture™.
The core concept behind Virto Atomic Architecture™ is to think about an ecommerce application as a nested-structure universe, in which the smallest components (atoms) are included inside bigger elements (cells) that are, finally, included in large, fully functional apps we call the “organisms”.
You can read about Virto Atomic Architecture™ in detail in our blog posts:
What Is Virto Atomic Architecture™?
Reusing and Recomposing as Key Benefits of Virto Atomic Architecture™
Below is the feature list for Virto Commerce:
This architecture easily enables connecting a storefront application with the back-end application.
The separation of application levels brings three main benefits:
In Virto Commerce, we use modular programming and packaging principles for organizing functionalities into independent software packages called “modules”.
The module structure is constructed as loosely coupled with other modules and represents a delivery unit of desired features that has an independent delivery and release cycle. The typical module structure consists of four main layers.
Each layer provides a single purpose inside a module. In further detail, the:
Virto Commerce currently offers around 60+ proprietary Core modules, which provide features ranging from basic ecommerce functions such as catalog management to specific third-party integrations such as Shipstation or Avalara. All these modules are supported by the Virto Commerce team and have regular releases and updates.
You can install modules in the following ways:
This is a partial list of non-functional features that developers declare:
Each back-end and front-end application uses its own InMemory cache, which caches almost all data obtained from the database. In this case, as the developers say, the data stored is always maintained in a consistent state with the original source, due to the original logic of updating when changes occur.
In the case of horizontal scaling, the consistency of local caches of different instances is supported by the Redis server, which acts as a (backplane) for broadcasting data about changes.
Virto Commerce is designed as a headless, API-first platform, so all functionality is available through API layers.
Unlimited extensibility is an indisputable advantage of Virto Commerce. This means end-user solution developers can adapt or replace Virto Commerce modules with their own functionality. This adaptation can be done in an elegant, simple way without workarounds.
Three types of vendor-made extensions guarantee their seamless delivery to Virto Commerce architecture. Virto Commerce guarantees that these ways of extensibility are sufficient to build an ecommerce solution of any complexity on top of it.
1. No-code extensions mean the ability of declarative extensions through the admin interface and API to extend the data model, UI, and workflow processing.
2. API-based extensions are extensions based on API calls and events (hooks).
3. Native extensions without source code change. This is an advanced mode of modular extensions. It is called “native” because it refers to the way Virto Commerce is built internally. With a custom module, you can extend every layer:
The HangFire library is widely used for repetitive tasks as well as for background tasks. The HangFire library is an easy way to perform background processing in .NET and .NET Core applications. No Windows Service or separate process is required.
Microsoft's ASP.NET Core framework brings built-in security to an online store using this framework.
Other security features include:
Virto represented performance test data as follows. Test machine configuration:
Software components:
Test data:
Load profile:
As I said in the beginning, Virto Commerce and nopCommerce are different class systems, although both are open source and built on Microsoft .NET technologies.
You want my honest recommendations? For lightweight B2C stores in the SMB sector and a quick startup of online trading projects, nopCommerce looks preferable. This is because nopCommerce features a great variety of design themes and the possibility to use an already pre-installed version in the partner's data center.
Virto Commerce, on the other hand, is an exceptionally suitable platform for B2B applications. The large number of B2B business scenarios and the possibility of integration with any back-office systems allow for a seamless integration of Virto Commerce into the corporate information system of an enterprise level business, such as a manufacturer or a retail chain.
I hope you found a detailed comparison of the platforms useful, so you know all the details of what's under the hood.