Skip to content

VirtoCommerce/vc-storefront

Repository files navigation

Virto Commerce Storefront Kit

CI status Quality gate Reliability rating Security rating Sqale rating Lines of code

Deploy to Azure

The Virto Commerce Storefront Kit is the official online shopping website based on the Virto Commerce Platform, written on ASP.NET 8. The website serves as a client application for the VC Platform and communicates solely through public APIs.

The Storefront Kit enables the creation of multiple distinct stores (websites) on top of the Virto Commerce Platform. Each store may have its own theme with specific layouts, yet still be based on the same catalog and customer data. This allows for versatile store configurations, such as:

  • Different designs for various product categories.
  • Regional-specific sites offering tailored product sets.
  • Integration with multiple touchpoints for a true omnichannel experience.

Key features

  • Launch and host e-commerce themes on top of the Virto Commerce Platform.
  • XAPI Gateway.
  • Caching mechanism.
  • Multi-store support.
  • Multi-theme support.
  • Server-side rendering. And more.

Architecture

For detailed information about the Virto Storefront Architecture, please refer to our developer guide

Technologies and frameworks used

  • ASP.NET 8
  • ASP.NET Identity Core

Setup

For detailed setup information, please refer to Quick Start to deploy and run.

Themes

B2B Theme

View B2B theme on GitHub.

image

FAQ

Running the Storefront only on HTTP schema

  • In order to run the platform only at HTTP schema in production mode, it's enough to pass only HTTP URLs in --urls argument of the dotnet command.
  dotnet VirtoCommerce.Storefront.dll --urls=http://localhost:5002

Running the Platform on HTTPS schema

  • Install and trust HTTPS certificate

Run to trust the .NET Core SDK HTTPS development certificate:

    dotnet dev-certs https --trust

Read more about enforcing HTTPS in ASP.NET Core

    dotnet VirtoCommerce.Storefront.dll --urls=https://localhost:4302/
  • Trust the .Net Core Development Self-Signed Certificate. More details on trusting the self-signed certificate can be found here

Forward the scheme for Linux and non-IIS reverse proxies

Apps that call UseHttpsRedirection and UseHsts put a site into an infinite loop if deployed to an Azure Linux App Service, Azure Linux virtual machine (VM), Linux container or behind any other reverse proxy besides IIS. TLS is terminated by the reverse proxy, and Kestrel isn't made aware of the correct request scheme. OAuth and OIDC also fail in this configuration because they generate incorrect redirects. UseIISIntegration adds and configures Forwarded Headers Middleware when running behind IIS, but there's no matching automatic configuration for Linux (Apache or Nginx integration).

To forward the scheme from the proxy in non-IIS scenarios, set ASPNETCORE_FORWARDEDHEADERS_ENABLED environment variable to true.

For more details on how it works, see the Microsoft documentation.

References

License

Copyright (c) Virto Solutions LTD. All rights reserved.

Licensed under the Virto Commerce Open Software License (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://virtocommerce.com/opensourcelicense

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.