Skip to content

Commit

Permalink
Update Deploy to Azure
Browse files Browse the repository at this point in the history
Update Read.me
  • Loading branch information
OlegoO committed Jul 21, 2020
1 parent aabcc36 commit bfa81bf
Show file tree
Hide file tree
Showing 2 changed files with 289 additions and 203 deletions.
225 changes: 145 additions & 80 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,33 +1,102 @@
# [VirtoCommerce Storefront for ASP.NET Core 3.1](https://virtocommerce.com) [![Share on Facebook](https://img.shields.io/badge/facebook--blue.svg?style=social&label=Share&logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSIyNjYuODkzcHgiIGhlaWdodD0iMjY2Ljg5NXB4IiB2aWV3Qm94PSIwIDAgMjY2Ljg5MyAyNjYuODk1IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAyNjYuODkzIDI2Ni44OTUiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxwYXRoIGlkPSJCbHVlXzFfIiBmaWxsPSIjM0M1QTk5IiBkPSJNMjQ4LjA4MiwyNjIuMzA3YzcuODU0LDAsMTQuMjIzLTYuMzY5LDE0LjIyMy0xNC4yMjVWMTguODEyYzAtNy44NTctNi4zNjgtMTQuMjI0LTE0LjIyMy0xNC4yMjRIMTguODEyYy03Ljg1NywwLTE0LjIyNCw2LjM2Ny0xNC4yMjQsMTQuMjI0djIyOS4yN2MwLDcuODU1LDYuMzY2LDE0LjIyNSwxNC4yMjQsMTQuMjI1SDI0OC4wODJ6Ii8%2BPHBhdGggaWQ9ImYiIGZpbGw9IiNGRkZGRkYiIGQ9Ik0xODIuNDA5LDI2Mi4zMDd2LTk5LjgwM2gzMy40OTlsNS4wMTYtMzguODk1aC0zOC41MTVWOTguNzc3YzAtMTEuMjYxLDMuMTI3LTE4LjkzNSwxOS4yNzUtMTguOTM1bDIwLjU5Ni0wLjAwOVY0NS4wNDVjLTMuNTYyLTAuNDc0LTE1Ljc4OC0xLjUzMy0zMC4wMTItMS41MzNjLTI5LjY5NSwwLTUwLjAyNSwxOC4xMjYtNTAuMDI1LDUxLjQxM3YyOC42ODRoLTMzLjU4NXYzOC44OTVoMzMuNTg1djk5LjgwM0gxODIuNDA5eiIvPjwvc3ZnPg%3D%3D)](https://www.facebook.com/sharer.php?u=https://virtocommerce.com) [![Tweet](https://img.shields.io/twitter/url/https/virtocommerce.com.svg?style=social)](https://twitter.com/intent/tweet?text=%23VirtoCommerce%20puts%20the%20best%20of%20MS%20Azure%20Cloud%2C%20open%20source%20.Net%20code%20and%20agile%20development%20in%20a%20single%20enterprise%20%23ecommerce%20platform.) [![Latest release](https://img.shields.io/github/release/VirtoCommerce/vc-storefront-core.svg)](https://github.com/VirtoCommerce/vc-storefront-core/releases/latest) [![Total downloads](https://img.shields.io/github/downloads/VirtoCommerce/vc-storefront-core/total.svg?colorB=007ec6)](https://github.com/VirtoCommerce/vc-storefront-core/releases) [![License](https://img.shields.io/badge/license-VC%20OSL-blue.svg)](https://virtocommerce.com/open-source-license)
**Precaution! Storefront version 5 and above is backward NON-compatible with VirtoCommerce platform v2! Use only with platform v3.**
# [Virto Commerce Storefront Kit](https://virtocommerce.com) [![Share on Facebook](https://img.shields.io/badge/facebook--blue.svg?style=social&label=Share&logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSIyNjYuODkzcHgiIGhlaWdodD0iMjY2Ljg5NXB4IiB2aWV3Qm94PSIwIDAgMjY2Ljg5MyAyNjYuODk1IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAyNjYuODkzIDI2Ni44OTUiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxwYXRoIGlkPSJCbHVlXzFfIiBmaWxsPSIjM0M1QTk5IiBkPSJNMjQ4LjA4MiwyNjIuMzA3YzcuODU0LDAsMTQuMjIzLTYuMzY5LDE0LjIyMy0xNC4yMjVWMTguODEyYzAtNy44NTctNi4zNjgtMTQuMjI0LTE0LjIyMy0xNC4yMjRIMTguODEyYy03Ljg1NywwLTE0LjIyNCw2LjM2Ny0xNC4yMjQsMTQuMjI0djIyOS4yN2MwLDcuODU1LDYuMzY2LDE0LjIyNSwxNC4yMjQsMTQuMjI1SDI0OC4wODJ6Ii8%2BPHBhdGggaWQ9ImYiIGZpbGw9IiNGRkZGRkYiIGQ9Ik0xODIuNDA5LDI2Mi4zMDd2LTk5LjgwM2gzMy40OTlsNS4wMTYtMzguODk1aC0zOC41MTVWOTguNzc3YzAtMTEuMjYxLDMuMTI3LTE4LjkzNSwxOS4yNzUtMTguOTM1bDIwLjU5Ni0wLjAwOVY0NS4wNDVjLTMuNTYyLTAuNDc0LTE1Ljc4OC0xLjUzMy0zMC4wMTItMS41MzNjLTI5LjY5NSwwLTUwLjAyNSwxOC4xMjYtNTAuMDI1LDUxLjQxM3YyOC42ODRoLTMzLjU4NXYzOC44OTVoMzMuNTg1djk5LjgwM0gxODIuNDA5eiIvPjwvc3ZnPg%3D%3D)](https://www.facebook.com/sharer.php?u=https://virtocommerce.com) [![Tweet](https://img.shields.io/twitter/url/https/virtocommerce.com.svg?style=social)](https://twitter.com/intent/tweet?text=%23VirtoCommerce%20puts%20the%20best%20of%20MS%20Azure%20Cloud%2C%20open%20source%20.Net%20code%20and%20agile%20development%20in%20a%20single%20enterprise%20%23ecommerce%20platform.) [![Latest release](https://img.shields.io/github/release/VirtoCommerce/vc-storefront.svg)](https://github.com/VirtoCommerce/vc-storefront/releases/latest) [![Total downloads](https://img.shields.io/github/downloads/VirtoCommerce/vc-storefront/total.svg?colorB=007ec6)](https://github.com/VirtoCommerce/vc-storefront/releases) [![License](https://img.shields.io/badge/license-VC%20OSL-blue.svg)](https://virtocommerce.com/open-source-license)

[![Build status](http://ci.virtocommerce.com/buildStatus/icon?job=vc-2-org/vc-storefront-core/master)](http://ci.virtocommerce.com/job/vc-2-org/job/vc-storefront-core/job/master/) [![Quality Gate](https://sonar.virtocommerce.com/api/badges/gate?key=vc-storefront-core%3Amaster&blinking=true)](https://sonar.virtocommerce.com/dashboard?id=vc-storefront-core%3Amaster) [![Lines of code](https://sonar.virtocommerce.com/api/badges/measure?key=vc-storefront-core%3Amaster&metric=ncloc)](https://sonar.virtocommerce.com/api/badges/measure?key=vc-storefront-core%3Amaster&metric=ncloc) 
[![Documentation](https://img.shields.io/badge/docs-read-brightgreen.svg)](https://virtocommerce.com/docs/vc2devguide/working-with-storefront) [![Discourse topics](https://img.shields.io/discourse/topics?label=community&logo=community&server=http%3A%2F%2Fcommunity.virtocommerce.com)](https://community.virtocommerce.com) [![Contributors](https://img.shields.io/github/contributors/VirtoCommerce/vc-storefront-core.svg)](https://github.com/VirtoCommerce/vc-storefront-core/graphs/contributors)
> Precaution! Storefront version 5 and above is backward NON-compatible with VirtoCommerce platform v2! Use only with platform v3.
### Continuous Integration Supported by Browserstack
Cross-browser compatibility of the storefront is generously provided by [Browserstack](https://www.browserstack.com/).
[![Build status](http://ci.virtocommerce.com/buildStatus/icon?job=vc-2-org/vc-storefront/master)](http://ci.virtocommerce.com/job/vc-2-org/job/vc-storefront/job/master/) [![Quality Gate](https://sonar.virtocommerce.com/api/badges/gate?key=vc-storefront%3Amaster&blinking=true)](https://sonar.virtocommerce.com/dashboard?id=vc-storefront%3Amaster) [![Lines of code](https://sonar.virtocommerce.com/api/badges/measure?key=vc-storefront%3Amaster&metric=ncloc)](https://sonar.virtocommerce.com/api/badges/measure?key=vc-storefront%3Amaster&metric=ncloc) 
[![Documentation](https://img.shields.io/badge/docs-read-brightgreen.svg)](https://virtocommerce.com/docs/latest/) [![Discourse topics](https://img.shields.io/discourse/topics?label=community&logo=community&server=http%3A%2F%2Fwww.virtocommerce.org)](https://www.virtocommerce.org) [![Contributors](https://img.shields.io/github/contributors/VirtoCommerce/vc-storefront.svg)](https://github.com/VirtoCommerce/vc-storefront/graphs/contributors)

[![Browserstack](https://images.techhive.com/images/article/2014/12/browserstack-logo-100538202-medium.idge.png)](http://browserstack.com/)
[![Deploy to Azure](https://azuredeploy.net/deploybutton.png)](https://azuredeploy.net/)

Official online shopping website based on VirtoCommerce Platform written on ASP.NET Core. The website is a client application for VC Platform and uses only public APIs while communicating.
Official online shopping website based on Virto Commerce Platform written on ASP.NET Core. The website is a client application for VC Platform and uses only public APIs while communicating.

Technologies and frameworks used:
* ASP.NET MVC Core 3.1.0 on .NET Core 3.1.0
* ASP.NET Identity Core 3.1.0
* REST services clients generation with using [Microsoft AutoRest](https://github.com/Azure/autorest)
* Liquid view engine based on [Scriban](https://github.com/lunet-io/scriban)
* [LibSassHost](https://github.com/Taritsyn/LibSassHost) for processing **scss** stylesheets in runtime
It is possible to run multiple different stores (web sites) on top of Virto Commerce. Each store (website) might have its own theme with a specific layout still being based on the same catalog and customer data.

It is possible, for example, to create sites with a different design for different product categories still having all products in the same backend.

Key features:
Another option is to create different sites for different regions so that a specific product set will be available to a specific region, is still based on one product data.

It is also possible to connect Virto Commerce to multiple touchpoints so that customers will get a real omnichannel experience.

## Key features
* Multi-Store support
* Multi-Language support
* Multi-Currency support
* Multi-Themes support
* Faceted search support
* SEO friendly routing
* Server-side rendering
* Client-side rendering
* Optimization for Desktop
* Optimization for Tables
* Optimization for Mobile

## Business Requirements
* Home page
* Catalog browsing
* Product page
* Cart
* Bulk add to cart
* Multiple Whish lists and Mark favorites
* Product compare
* Anonymous Checkout process
* Checkout process
* Address verification
* Integration with Tax providers
* Integration Shippment and Payment methods
* Place orders
* Order Approve process
* Offers
* My Account
* My Orders History
* Reorder
* Reorder
* New Account verification
* Self-registration
* Forgot password
* User permissions to manage their own account page
* Catalog personalization
* Price personalization (List and Sales prices)
* Promotions
* Coupons
* Recommended products
* Banner and dynamic content
* User Groups - to build personalization
* Configurable Branding and customization
* Configurable navigation
* CMS to build Static, Landing, Blog pages

## References
* [Public Demo](https://demo.virtocommerce.com)
* Virto Commerce Documentation: https://www.virtocommerce.com/docs/latest/
* Home: https://virtocommerce.com
* Community: https://www.virtocommerce.org
* [Download Latest Release](https://github.com/VirtoCommerce/vc-storefront/releases/latest)


## Sample themes

### [Default theme](https://github.com/VirtoCommerce/vc-theme-default)
![electronics](https://user-images.githubusercontent.com/7566324/31821605-f36d17de-b5a5-11e7-9bb5-a71803285d8b.png)

### [B2B theme](https://github.com/VirtoCommerce/vc-theme-b2b)
![img_20102017_174148_0](https://user-images.githubusercontent.com/7566324/31821606-f3974b26-b5a5-11e7-8b52-e3b80d6bdd74.png)

### [Procurement Portal](https://github.com/VirtoCommerce/vc-procurement-portal-theme)
![img_20102017_174148_0](https://github.com/VirtoCommerce/vc-procurement-portal-theme/raw/master/docs/media/screen-catalog-page.png)

### List of changes
### [Business Portal](https://github.com/VirtoCommerce/vc-odt-mpa-theme)
![img_20102017_174148_0](https://user-images.githubusercontent.com/7566324/80617364-4ba80a80-8a42-11ea-8222-be17dea1cc8d.png)


## Technologies and frameworks used
* ASP.NET MVC Core 3.1.0 on .NET Core 3.1.0
* ASP.NET Identity Core 3.1.0
* REST services clients generation with using [Microsoft AutoRest](https://github.com/Azure/autorest)
* Liquid view engine based on [Scriban](https://github.com/lunet-io/scriban)
* [LibSassHost](https://github.com/Taritsyn/LibSassHost) for processing **scss** stylesheets in runtime


## List of changes
1. Changed settings, now we are using a [new approach](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration) recommended by ASP.NET Core, we are using the appsettings.json file and strongly type options for working with settings from code.
2. Authentication and authorization was completely rewritten according to using [ASP.NET Identity Core](https://docs.microsoft.com/en-us/aspnet/core/security/authentication/identity).
3. Default ASP.NET Core [in-memory caching](https://docs.microsoft.com/en-us/aspnet/core/performance/caching/memory) completely replaced the [CacheManager](http://cachemanager.michaco.net/) used before.
Expand All @@ -39,79 +108,44 @@ Key features:
9. Usage of [ASP.NET Core Response Caching Middleware](https://docs.microsoft.com/en-us/aspnet/core/performance/caching/middleware) for FPC (full page caching).
10. Use [Build-in ASP.NET Dependency Injection](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/dependency-injection) instead Unity DI and IoC container.

# Sample themes

## [Default theme](https://github.com/VirtoCommerce/vc-theme-default)
![electronics](https://user-images.githubusercontent.com/7566324/31821605-f36d17de-b5a5-11e7-9bb5-a71803285d8b.png)

## [Material theme](https://github.com/VirtoCommerce/vc-theme-material)
![clothing](https://user-images.githubusercontent.com/7566324/31821604-f341c444-b5a5-11e7-877a-eb919e01dee2.PNG)
## Continuous Integration Supported by Browserstack
Cross-browser compatibility of the storefront is generously provided by [Browserstack](https://www.browserstack.com/).

## [B2B theme](https://github.com/VirtoCommerce/vc-theme-b2b)
![img_20102017_174148_0](https://user-images.githubusercontent.com/7566324/31821606-f3974b26-b5a5-11e7-8b52-e3b80d6bdd74.png)
[![Browserstack](https://images.techhive.com/images/article/2014/12/browserstack-logo-100538202-medium.idge.png)](http://browserstack.com/)

# Live DEMO
http://demo.virtocommerce.com

# Cloud Private Demo
Setup your own private Microsoft Cloud environment and evaluate the latest version of Virto Commerce Storefront.
## Deploy Storefront

<a href="https://azuredeploy.net/" target="_blank">
<img alt="Deploy to Azure" src="http://azuredeploy.net/deploybutton.png"/>
</a>
> If Platform and Storefront are deployed in the same on-premises environment, Storefront should be deployed on different port then Platform. You can do it by `dotnet run CLI`
### Downloading the precomplied binaries

# Documentation
* Navigate to the [Releases section of Virto Commerce Storefront Kit in GitHub](https://github.com/VirtoCommerce/vc-storefront/releases).

## Source code getting started
* You will find **VirtoCommerce.Storefront.5.x.x.zip** file. In this file the site has already been built and can be run without additional compilation. The source code is not included.

### Prerequisites
[Prerequisites for .NET Core on Windows](https://docs.microsoft.com/en-us/dotnet/core/windows-prerequisites)
* Unpack this zip to a local directory **C:\vc-storefront**. After that you will have the directory with Storefront precompiled files.

[Microsoft Visual C++ 2015 Redistributable](https://www.microsoft.com/en-us/download/details.aspx?id=53840) (required for SCSS engine)
### Setup

### Downloading source code
#### Configure application strings

Fork your own copy of VirtoCommerce Storefront to your account on GitHub:
* Open the **appsettings.json** file in a text editor.
* In the **Endpoint** section change **Url**, **UserName**, **Password** with correct path and credentials for Virto Commerce Platform:

1. Open VirtoCommerce Storefront in GitHub and click Fork in the upper right corner.
If you are a member of an organization on GitHub, select the target for the fork.
2. Clone the forked repository to local machine:
```
git clone https://github.com/<<your GitHub user name>>/vc-storefront-core.git C:\vc-storefront-core
```json
...
"Endpoint": {
"Url": "https://localhost:5001",
"UserName": "admin",
"Password": "store",
```
3. Switch to the cloned directory:

```cd C:\vc-storefront-core```

4. Add a reference to the original repository:

```git remote add upstream https://github.com/VirtoCommerce/vc-storefront-core.git```

In result you should get the C:\vc-storefront-core folder which contains full storefront source code. To retrieve changes from original Virto Commerce Storefront repository, merge upstream/master branch.
#### Configure CMS Content storage

### Configuring VirtoCommerce Platform Endpoint
Set actual platform endpoint values in the C:\vc-storefront-core\VirtoCommerce.Storefront\appsettings.json.
Read more about how to generate API keys [here](https://virtocommerce.com/docs/vc2devguide/development-scenarios/working-with-platform-api)

```
...
"VirtoCommerce": {
"Endpoint": {
//Virto Commerce platform manager url
"Url": "http://localhost/admin",
//HMAC authentification user credentials on whose behalf the API calls will be made.
"AppId": "Enter your AppId here"
"SecretKey": "Enter your SecretKey here",
}
...
```
ASP.NET Core represents a new tools a **Secret Manager tool**, which allows in development to keep secrets out of your code.
You can find more about them [here](https://docs.microsoft.com/en-us/aspnet/core/security/app-secrets?tabs=visual-studio)

### Configure themes
Storefront **appsettings.json** file contains **ContentConnectionString** setting with pointed to the folder with actual themes and pages content
```
```json
...
"ConnectionStrings": {
//For themes stored in local file system
Expand All @@ -121,20 +155,51 @@ Storefront **appsettings.json** file contains **ContentConnectionString** setti
},
...
```

You can set this connection string in one of the following ways:

1. Build and Copy theme to `wwwroot\cms-content\{StoreName}\{ThemeName}`
1. If you have already have installed platform with sample data, your platform already contains `~/App_Data/cms-content` folder with themes for sample stores and you need only to make symbolic link to this folder by this command:
```console
mklink /d C:\vc-storefront\VirtoCommerce.Storefront\wwwroot\cms-content C:\vc-platform\VirtoCommerce.Platform.Web\App_Data\cms-content
```
On Mac OS and Linux:
```console
ln -s ~/vc-storefront/wwwroot/cms-content ~/vc-platform/wwwroot/cms-content
```
1. If you did not install sample data with your platform, you need to create new store in platform manager and download themes as it described in this article: [Theme development](../fundamentals/theme-development.md)

#### 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.

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

```console
dotnet dev-certs https --trust
```
mklink /d C:\vc-storefront-core\VirtoCommerce.Storefront\wwwroot\cms-content C:\vc-platform\VirtoCommerce.Platform.Web\App_Data\cms-content

Read more about [enforcing HTTPS in ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/security/enforcing-ssl?view=aspnetcore-3.0&tabs=visual-studio#trust)


```console
dotnet VirtoCommerce.Storefront.dll --urls=https://localhost:4302/
```
2. If you did not install sample data with your platform, you need to create new store in platform manager and download themes as it described in this article
[Theme development](https://virtocommerce.com/docs/vc2devguide/working-with-storefront/theme-development)

### Host on Windows with IIS
VirtoCommerce.Storefront project already include the **web.config** file with all necessary settings for runing in IIS.
How to configure IIS application to host ASP.NET Core site please learn more in the official Microsoft ASP.NET Core documentation
[Host ASP.NET Core on Windows with IIS](https://docs.microsoft.com/en-us/aspnet/core/publishing/iis)

# License
* Trust the .Net Core Development Self-Signed Certificate. More details on trusting the self-signed certificate can be found [here](https://blogs.msdn.microsoft.com/robert_mcmurray/2013/11/15/how-to-trust-the-iis-express-self-signed-certificate/)



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

Licensed under the Virto Commerce Open Software License (the "License"); you
Expand Down
Loading

0 comments on commit bfa81bf

Please sign in to comment.