Skip to content

Overview

Virto Commerce is an Open-Source B2B Innovation Platform.

Complex digital commerce solutions for B2B, B2C or B2B2C businesses, marketplaces and derived SaaS commerce platforms.

Virto Commerce architecture was designed on principles: Microservices, API-first, Cloud-native, Headless, and Advanced Extensibility.

News Digests

Virto Commerce .NET8 Released

Virto Commerce on NET 8 (3.800+) introduces a significant technical update by transitioning the platform to .NET8. This update focuses on enhancing performance and stability while maintaining backward compatibility. It involves updating the Target Framework to .NET 8 and integrating the latest LTS releases of third-party libraries. Importantly, no code refactoring or alterations to the API and internal structure have been made. We published stable 7 release on NET 6 and stable 8 on NET8 at same time.

Continue reading ...

January

  • Redesigned Storefront UI
  • Updated xApi and other modules
  • Marketplace enhancements.

Continue reading on Virto Commerce community ...

December

  • Storefront: Improved pagination for a more user-friendly experience and streamlined list management in Storefront.
  • Platform: Inventory, Cart, xAPI, Catalog modules updates.

Continue reading on Virto Commerce community ...

November

  • Latest Stable Platform Release 6 with a range of enhancements and updates.
  • Redesigned Related products and Compare products sections in the Storefront.
  • Marketplace enhancements.

Continue reading on Virto Commerce community ...

View more details about releases in Virto Commerce Community, Subscribe on YouTube and Star on GitHub.

Principles

The main principle is to help the development team to focus on the implementation of business features and doesn’t worry about CLEAN ARCHITECTURE.

  • MICROSERVICES – Every application is built from headless microservices (modules). Applications and microservices are not limited to composite applications, they can be used for building any other application and hence are functionally independent.
  • API-FIRST – E-commerce service with the right API design. All business logic is accessible via API: Rest or GraphQL.
  • CLOUD NATIVE – E-commerce service is delivered in the SaaS model. Get significant benefits for the business from:
    1. On-demand - Use e-commerce service as a whole or its separate components as needed;
    2. Scalability - In the cloud, it can be easily scaled to support peak demand and long-term business growth;
    3. Reliability - Can leverage a solution deployed across multiple data centers and availability zones to maximize up-time and reduce potential revenue losses.
  • HEADLESS – Allows an enterprise to support omnichannel journeys across traditional and digital touchpoints as well as new business models.
  • EXTENSIBILITY – The API model, persistence model, and business logic can be extended as needed without deploying and re-deploying the solution. This provides superior business agility and keeps up to date.

Architecture Overview

The following diagram illustrates the high-level architecture and main areas of Virto Commerce solutions:

Virto Commerce Architecture Reference

Virto Commerce Platform - Launcher of e-commerce applications in the public, hybrid and private cloud.

Commerce Applications - API-based, Modular and Extensible logical set of one or several headless microservices (modules) with focus on the implementation of the business feature, like Digital Catalog, Order Management, Content Management, Marketing, etc.

Custom Extensions - Virto Commerce Module which allows extending API-model, Persistent model, Business logic and Admin UI in Commerce Applications.

External Commerce Applications - 3rd-party e-commerce applications and services.

Touchpoints - Sell in your products on the website, mobile application, chatbot or any through 3rd party services: Marketplace, Dropshipping, or whatever you create. Virto Commerce Storefront Kit allows managing different brands and store under the same environment and with same features.

Admin SPA - Virto Commerce has an extensible and intuitive admin user interface. It lets you manage data in Commerce Applications for all channels.

Integration middleware - Asynchronous integration middleware for declarative integration with Non-Real-time and legacy services.

Platform

Virto Commerce Platform - is a launcher of e-commerce applications in the cloud. It brings system functionality, modularity, dependency resolution, role-based security, API, etc.

Applications

Commerce Application - is an API-based, Modular and Extensible logical set of one or several headless microservices (modules) with a focus on the implementation of the business feature, like Digital Catalog, Order Management, Content Management, Marketing, etc.

The following diagram illustrates the high-level architecture of Digital Catalog application, which by default consists of Catalog, Search, Pricing, Inventory, Personalization and Store modules:

Virto Commerce Application Architecture Reference

Each of the applications is complete by itself and not dependent on the functioning of other applications. The constituent apps have their own consumers and interaction points. Selecting Commerce Application, you can configure the ecosystem based on your requirements.

The different applications can be deployed/launched in different isolated environments. The application can be scaled and run on multiple instances.

The applications can be extended with custom modules. You can extend API model, persistence model, business logic and admin UI. For example, architecture reference includes Pricing Extensions which extend API model, Persistence model and Admin UI with the Recommended price field.

Modules

Virto Commerce Headless Microservice (Module) - is a development unit. Can consist of one or several microservice. A module must fulfill a single purpose that is narrowly defined and easy to understand.

The module is built on few principles:

  • SINGLE RESPONSIBILITY – Every module should be as simple as possible, so a new developer can support and improve it.
  • SECURITY – Role-based security is the core functionality.
  • FLEXIBILITY – Configure data and relations based on organization structure, contracts and dynamic conditions.

The following diagram illustrates the different types of modules:

Single Responsibility - allows to implement an isolated business feature. For example Pricing.

Single Responsibility-Types of Virto Commerce Headless Microservice

Multiservices - host of several microservices, for example, Bundle microservice uses Catalog as primary data storage.

Multiservices-Types of Virto Commerce Headless Microservice

Extensions - The API model, persistence model, and business logic can be extended as needed without deploying and re-deploying solutions.

Extensions-Types of Virto Commerce Headless Microservice

The orchestration - aggregate information from multiple microservices and provide one API, for example provide access to Personalized Offers.

Orchestration-Types of Virto Commerce Headless Microservice

Inner Structure of the Module

The module can use a lot of out-of-the-box additional services from Virto Commerce Platform. The following diagram illustrates the inner structure and services which are accessible for developers:

Architecture Reference

  1. Module Manifest - gives the information about the module, such as the most important files, dependencies and the capabilities the extension might use.
  2. Tests and Documentation - an important part of any module, which helps a new developer to learn and improve it.
  3. API - All business logic accessible via API: Rest or GraphQL.
  4. Security - access to API is limited by permissions.
  5. Admin UI (optional) - the module provides the intuitive admin user interface. It lets you manage data in Admin SPA.
  6. Cache (optional) - From the business logic, you can use distributed cache to improve performance.
  7. Business Logic - The module solution structure is constructed using N-Tier and DDD principles and it is a business unit that is able to fully provide a set of desired features.
  8. Events (optional) - From the business logic, you can send internal and external events (Webhooks).
  9. Database - The module has a repository and doesn't have a connection with other modules on the database layer. The module can have a custom connection string and store data in the custom database.
  10. Background Jobs (optional) - The module can run long-running operations as Background Jobs.
  11. Log/Monitoring - The module has native integration with Azure Application Insights service, as Native monitoring tool for .NET Core applications.

Scalability

In the cloud, the Virto Commerce Applications can be easily scaled to support peak demand and long-term business growth. With auto-scale, you no longer have to worry about scaling services manually.

Extensibility

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 and simple way without workarounds.

Three types of vendor-made extensions guarantee “seamless delivery”. 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. Virto Commerce supports declarative extensions through the Admin interface and API to extend the data model, UI, and workflow processing.

  2. API-based extensions. These are traditional cloud-based extensions based on API calls and Events (Hooks). Developers can use any language and framework for integration and reactive programming.

  3. Native extensions. This is an advanced mode of modular extensions. It is called native because it is the way how Virto Commerce is built internally. Virto Commerce creates a unique extension framework based on .NET extension and dependency injection. It allows benefits from the first two approaches and extends default implementation for the unique needs of each business. Plus, it simplifies DevOps procedures and provides performance. Source code is only available for the purpose of transparency. Virto Commerce doesn't recommend extending the platform through source code. This will breach the continuous delivery functionality.

Monitoring

Virto Commerce Applications has native integrations with Azure Application Insights.

Azure Application Insights is an extensible Application Performance Management (APM) service for developers and DevOps professionals. You use it to monitor live applications. It will automatically detect performance anomalies and includes powerful analytics tools to help you diagnose issues and to understand what users actually do with your app. It's designed to help you continuously improve performance and usability. It works for apps on a wide variety of platforms including .NET, Node.js, Java, and Python hosted on-premises, hybrid, or any public cloud. It integrates with DevOps process and has connection points to a variety of development tools.

Technology Stack

In our work, we always try to use advanced technologies. Our decision to choose the technologies described below was the result of our extensive experience working with Microsoft products.

Virto Commerce uses the following stack of technologies:

  • .NET 8
  • ASP.NET Core 8
  • Entity Framework Core as primary ORM
  • ASP.NET Core Identity for authentication and authorization
  • OpenIddict for OAuth authorization
  • Swashbuckle.AspNetCore.SwaggerGen for Swagger docs and UI
  • SignalR Core for push notifications
  • Vue as primary framework for SPA
  • HangFire for run background tasks and more

Supported Databases

Virto Commerce is built with DB agnostic architecture and supports the following databases:

  • Microsoft SQL Server 2019 or above
  • MySql Server 8 or above
  • PostgreSQL 12 or above
  • Redis 7
  • Node.JS 20.11.0 LTS

Last update: January 17, 2024