docs.virtocommerce.org Open in urlscan Pro
2606:4700:3032::ac43:a682  Public Scan

Submitted URL: http://docs.virtocommerce.org/
Effective URL: https://docs.virtocommerce.org/
Submission: On January 16 via api from US — Scanned from DE

Form analysis 1 forms found in the DOM

Name: search

<form class="md-search__form" name="search">
  <input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required="">
  <label class="md-search__icon md-icon" for="__search">
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
      <path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path>
    </svg>
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
      <path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"></path>
    </svg>
  </label>
  <nav class="md-search__options" aria-label="Search">
    <button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
        <path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"></path>
      </svg>
    </button>
  </nav>
</form>

Text Content

Skip to content
We are revamping our documentation portal! Check out its beta version here
Virto Commerce Documentation
Overview
Type to start searching
VirtoCommerce/vc-platform
 * 3.452.0
 * 1.2k
 * 858

Virto Commerce Documentation
VirtoCommerce/vc-platform
 * 3.452.0
 * 1.2k
 * 858

 * Overview Overview
   Table of contents
    * News Digests
    * Principles
    * Architecture Overview
       * Platform
       * Applications
       * Modules
       * Inner Structure of the Module
   
    * Scalability
    * Extensibility
    * Monitoring
    * Technology Stack
    * Supported Databases

 * Quick start
 * Getting started
   Getting started
    * Deploy to Azure
    * Deploy on Windows
    * Deploy on Linux
    * Deploy on Mac OS
    * Deploy Storefront
    * Email notifications
    * Lessons
      Lessons
       * Overview
       * Lesson 1 - How to deploy and configure Virto Commerce
       * Lesson 2 - How to import new products into Virto Commerce catalog
       * Lesson 3 - How to create Virto commerce module (API)
       * Lessons 4 - How to build and customize platform manager Web UI
         (AngularJS)

 * User guide
   User guide
    * Getting started
    * Modules
    * Settings
    * User profile
    * Security
    * Login on behalf
    * Asset management
    * Configuration

 * BA docs
   BA docs
    * Overview
    * Customer journey steps
    * Backoffice functional scenarios

 * Developer guide
   Developer guide
    * Create a new module
    * Swagger/OpenApi
    * AutoRest Clients
    * Deploy from source code
    * Deploy module from source code
    * Create a new module from Scratch
    * Docker app development workflow
    * Modules development via docker
    * Manage tools
    * Logging
    * Working with User Manager

 * Fundamentals
   Fundamentals
    * Architecture reference
    * Extensibility
      Extensibility
       * Overview
       * Extending domain models
       * Extending using events
       * Style Guide
       * Extending main menu
       * Blades and navigation
       * Metaform
       * Widgets
       * Blade toolbar
       * Extending authorization policies
       * Extending grid columns
       * New payment method registration
       * New shipping method registration
       * New tax provider registration
       * Generic UI scroll directive
       * Using dynamic properties
   
    * Scalability
    * DB Agnostic
    * Essential caching
    * Essential modularity
    * Make secure Web API
    * Search

 * Techniques
   Techniques
    * How to Add New SSO Provider
    * Configuring and Managing Azure AD Authentication
    * Countries management
    * How to debug the platform and modules code without source code
    * Type inheritance support in Swagger API
    * Extend Database Model
    * PDF generations
    * Health checks in VirtoCommerce platform
    * Scaling configuration on the Azure cloud
    * How to run platform on azure functions
    * OAuth2 using Json Web Tokens
    * Share bearer tokens across multiple instances
    * User e-mail verification

 * CLI tools
   CLI tools
    * Introduction
    * Build automation
    * Package management
    * Cold start and data migration
    * Grab migrator utility quickstart

 * Architecture center
   Architecture center
    * B2B multi-regional

 * Modules
   Modules
    * Assets
      Assets
       * Overview
   
    * Azure ad
      Azure ad
       * Configuring and Managing Azure AD Authentication
   
    * Azureblob assets
      Azureblob assets
       * Overview
   
    * Cart
      Cart
       * Overview
   
    * Catalog
      Catalog
       * Overview
       * Adding New Catalog
       * Adding Virtual Catalog
       * Catalog Search
       * Managing Categories
       * Managing Products
       * Managing Product Variations
       * Managing Properties
       * Managing Search Index
       * Product Indexing
       * Search Engine Architecture
       * Viewing Catalogs and Physical Item Details
       * Viewing Product Variations
       * Viewing Catalog Properties
       * Terminology
   
    * Catalog export import
      Catalog export import
       * Index
   
    * Catalog personalization
      Catalog personalization
       * Overview
   
    * Catalog publishing
      Catalog publishing
       * Overview
   
    * Content
      Content
       * Overview
       * Pages and Blogs Management
       * Theme Management
   
    * Contract
      Contract
       * Overview
       * XAPI-Contracts
   
    * Core
      Core
       * How-to extend rounding policy
   
    * Customer
      Customer
       * Overview
       * Advanced Filter
       * Manage Employees
       * Manage Organizations
       * Manage Contacts
       * Create And Manage Vendors
       * View Organization Details
   
    * Customer export import
      Customer export import
       * Overview
   
    * Customer review
      Customer review
       * Index
       * Rest API
   
    * Customer segments
      Customer segments
       * Overview
   
    * Demo features
      Demo features
       * Overview
   
    * Dynamic associations
      Dynamic associations
       * Index
       * Rest API
   
    * Elastic app search
      Elastic app search
       * Elastic App Search
   
    * Elastic search
      Elastic search
       * Overview
       * Blue-Green Indexing
   
    * Event bus
      Event bus
       * Overview
   
    * Experience api
      Experience api
       * Overview
       * Getting started
       * X-Catalog
       * X-Purchase Cart
       * X-Purchase Order
       * Filters
       * How to extend
       * Troubleshooting
       * Sample: Recommendations
   
    * Export
      Export
       * Overview
       * Advanced Filter
   
    * Gdpr
      Gdpr
       * Overview
   
    * Google ecommerce analytics
      Google ecommerce analytics
       * Overview
   
    * Hotjar
      Hotjar
       * Overview
   
    * Image tools
      Image tools
       * Overview
   
    * Inventory
      Inventory
       * Overview
       * Manage Fulfillment Centers
   
    * Marketing
      Marketing
       * Overview
       * Combine Active Promotions
       * Manage Dynamic Content
       * Manage Content Placeholders
       * Manage Content Publishing
       * Manage Promotions
       * Promotion Rules
       * Publishing Conditions
       * Test
   
    * Marketing experience api
      Marketing experience api
       * Overview
   
    * Native payment methods
      Native payment methods
       * Getting Started
   
    * Notification
      Notification
       * Overview
       * Developing Your Custom Notification
       * Creating Email Templates
   
    * Order
      Order
       * Overview
       * How-to extend validation
       * Order Details
       * Orders Module Documents
       * Notification Types
       * Widgets
       * Scenarios
   
    * Payment
      Payment
       * Overview
   
    * Price export import
      Price export import
       * Overview
   
    * Pricing
      Pricing
       * Overview
       * Add New Assignment
       * Add Prices to products
       * Add Products to the New Price List
       * Create a New Price list
       * Export Function
       * Managing Pricing module settings
       * Troubleshooting Incorrect Prices in Storefront
       * View Price list via Catalog Module
   
    * Profile experience api
      Profile experience api
       * Overview
   
    * Quote
      Quote
       * Overview
   
    * Return
      Return
       * Return Module Overview
   
    * Shipping
      Shipping
       * Overview
   
    * Shipstation
      Shipstation
       * Overview
   
    * Sitemaps
      Sitemaps
       * Overview
   
    * Store
      Store
       * Overview
       * Add New Store
       * Edit Store Details
       * Widgets
   
    * Subscription
      Subscription
       * Overview
   
    * Tax
      Tax
       * Overview
   
    * Webhooks
      Webhooks
       * Overview

 * Products
   Products
    * Products virto3 versions
    * v3 2020 Q3
    * v3 2021 Q1
    * v3 2021 Q3
    * v3 2022 Q1
    * v3 2022 Q2
    * v3 2022 Q3
    * v3 2022 Q4
    * v3 2023 S5
    * v3 2023 S6

 * Release information
   Release information
    * What's new
    * Update to version 3
      Update to version 3
       * Breaking changes
       * Update module
       * Update storefront
       * Update dynamic properties
       * Prepare separated databases for VC v3
   
    * Update to version 3 200
      Update to version 3 200
       * Updating Platform and Modules to .NET 6

 * Versions
   Versions
    * New documentation version (preview)
    * Previous documentation version (2.x)

 * Support
 * License

Table of contents
 * News Digests
 * Principles
 * Architecture Overview
    * Platform
    * Applications
    * Modules
    * Inner Structure of the Module

 * Scalability
 * Extensibility
 * Monitoring
 * Technology Stack
 * Supported Databases


OVERVIEW

Virto Commerce is an open-source platform for extensible e-commerce
applications.

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

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 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:



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.



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



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



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




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:



 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 6
 * ASP.NET Core 6
 * 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

--------------------------------------------------------------------------------

Last update: January 9, 2024
Next Quick start

Copyright © 2023. All rights reserved.
Made with Material for MkDocs