Virto Commerce Enterprise eCommerce Blog

Virto Version 3 Beta Product Release Notes

Executive summary

Virto Commerce is pleased to release the beta version of its platform, Virto Commerce Version 3. This release provides innovative advancements in core architecture, increased speed, and new or improved modules. Business users will appreciate the benefits of decreased time to market for the solution – allowing faster uptime for transactions.

What were our objective when starting development project on VC platform v3?
  • Change primary technology stack to .NET Core for the platform application and all key modules.
  • Eliminate known technical and architecture design issues of 2.x version (Caching, Overloaded core module, Asynchronous code, Platform simplification, Extensibility, Performance, Authentication and Authorization)
  • Provide easy and clear migration from 2.x version by preserving complete backward compatibility for API and Database schema
  • The platform and 18 core modules were planned to be migrated.

These Virto Commerce Release Notes below are a subset of the larger list of changes in migration to ASP.NET Core.

What does Virto V3 provide to developers and architects?
  • Improved extensibility and unification to increase the development speed and decrease time to market.
  • Unified architecture and usage of solid architectural principals leads to shorter learning curve for developers who are new to working with Virto Commerce
What technological stack did we apply?
  • .NET Core, ASP.NET Core 2.2 as base framework
  • EF Core 2.2 as primary ORM
  • ASP.NET Core Identity 2.2 for authentication and authorization
  • OpenIddict 2.0.0 for completely support of all OAuth authorization scenarios and OpenID Connect server
  • WebPack as primary design/runtime bundler and minifier for JS scripts and styles
  • Swashbuckle.AspNetCore.SwaggerGen for Swagger docs and UI
  • SignalR Core for push notifications
  • AngularJS 1.4 still be as primary framework for SPA
  • HangFire 1.6.21 for run background tasks
What architectural changes were implemented?
  • Configuration: NET Core configuration paradigm (configuration providers and POCO classes IOptions) replaces old .NET Framework Configuration
  • Dependency Injection: Unity DI is replaced with build-in .NET Core DI Microsoft.Extensions.DependencyInjection
  • Persistent infrastructure: EF Core, async queries and commands, DB context triggers for aspect operations, TPH inheritance policy
  • Localization: permissions and settings now are localizable
  • Caching: CacheManager to ASP.NET in-memory is replaced with cache dependencies
  • Modularity: powered by the new dynamic assembly loading in .NET Core; significant module manifest changes
  • Platform permissions, settings and dynamic properties: the new definition and registration
  • Bundling and minification: use Webpack + npm
  • Make all as asynchronous: DAL and Domain services, API controllers
Platform changes
  • Solution changes: solution structure, startup.cs
  • Authorization and Authentication: migrate to ASP.NET Core Identity membership and OpenIddict OpenID Connect server
  • Platform manager UI changes: small redesign and layout changes
What was changed in modules?
  • Core module: CoreModule.Domain project is terminated
  • Marketing module changes: new serialization logic for expressions
  • Catalog module changes: get rid of WEB model and add possibility for model extension
  • Lucene search module: migration to new version of search engine Lucene .NET 4.8
  • Image Tools module: switch from Windows Component dependency for Images transformation to another library .NET Standard compatible
Which modules were migrated?

The following modules were migrated

  • Cart
  • Catalog
  • Content
  • Core
  • Customer
  • ImageTool
  • Inventory
  • Licensing
  • Lucene-search
  • Marketing
  • Orders
  • Pricing
  • Sitemaps
  • Store
  • Subscriptions
Which modules were added?

VirtoCommerce.Notifications module 3.0 includes:

  • Functionality which was spread across the system is shifted to dedicated module
  • Manage notification availability for each store
  • Unlimited cannels types for sending notifications
  • Possibility to activate/deactivate each notification individually for each store
  • New flexible extendibility model
  • Allows to preview a notification
  • Support of LIQUID syntax for templates based on Scriban engine
  • The new notification messaged feed allows to search and preview individual messages

Tax module 3.0

  • The tax calculation functionality which was spread across the system is shifted to a dedicated module which is now responsible for tax settings and calculation
  • The new module is a single integration point for third party software and custom extensions

Shipping module 3.0

  • The shipping costs calculation functionality which was spread across the system is shifted to a dedicated module which is now responsible for shipping methods, related settings and shipping costs calculation
  • The new module is a single integration point for third party software and custom extensions

Payment module 3.0

  • The payment methods functionality and integrations which were spread across the system are shifted to a dedicated module which is now responsible for payment methods and related settings
  • The new module is a single integration point for payment gateways integration

Search module 3.0

  • The new module is a single integration point for search engines integration
Which modules were deleted?
  • Smart cashing module
  • Virto Commerce dynamic expression library module
Release status note
  • We inspire you to try and investigate the new version of the system and give us your feedback
  • This is a beta release, which hasn't been verified on a production project yet
  • We have delivered a simple migration from 2.x version by preserving complete backward compatibility for API and Database schema, while you need for additional efforts in case there are custom changes in your current 2.X system. Please follow our migration guide during the migration project.
  • We cannot guarantee the backward compatibility of current the beta version with the final 3.X release
Screenshots