Git Product home page Git Product logo

quicksilver's Introduction

Quicksilver (Commerce 13, .NET Framework 4.x)

GitHub version License

This repository is the starter site for the EPiServer Commerce reference implementation, aka "Quicksilver".

We also offer "Foundation", a starting point that is intuitive, well-structured and modular allowing developers to select Episerver products as projects to include or exclude from their solution. Including as of now projects for CMS, Commerce, Personalization, Find and Social, with the rest to follow. You can refer to the Foundation project here: https://github.com/episerver/Foundation

Installation

  1. Configure Visual Studio to add this package source: http://nuget.episerver.com/feed/packages.svc/. This allows missing packages to be downloaded, when the solution is built.
  2. Open solution and build to download nuget package dependencies.
  3. Search the solution for "ChangeThis" and review/update as described.
  4. Run Setup\SetupDatabases.cmd to create the databases *. In the unlucky event of errors please check the logs.
  5. Start the site (Debug-Start from Visual studio) and browse to http://localhost:50244 to finish installation. Login with [email protected]/store.

*By default SetupDatabases.cmd use the default SQL Server instance. Change this line set sql=sqlcmd -S . -E by replacing . with the instance name to use different instance.

Note: SQL scripts are executed using Windows authentication so make sure your user has sufficient permissions.

Styling

The styling of the site is done in less. In order to be able to recompile the less files to css you will need to install nodejs. If you have nodejs the less files will be recompiled into css on every build. From the command line you can also execute the following command in folder "Sources\EPiServer.Reference.Commerce.Site":

msbuild -t:BuildLessFiles

Compiling the razor views

If you want to build the views to validate their correctness you can set the MvcBuildViews parameter to true.

msbuild -p:MvcBuildViews=true

SQL Server authentication

If you don't have mixed mode authentication enabled you can edit this line in SetupDatabases.cmd and provide username and password.

set sql=sqlcmd -S . -U username -P password

quicksilver's People

Contributors

bjuris avatar eddielidfeldtepi avatar erik-skagerlind avatar giangtl avatar gonzalo-g avatar johanhedberg avatar longbien avatar mrahl avatar pergunsarfs avatar quanmaiepi avatar tuan-doan avatar vinhluongepi avatar vucuongkg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

quicksilver's Issues

First run error: There is no contentType registered for: EPiServer.Commerce.Marketing.SalesCampaignFolder

I followed the steps to setup the project

  • Clone
  • Add the nuget feed
  • Restore packages
  • Build
  • Create the database.

When running from Visual Studio I get the following error message on a 500 page with stack traces:
There is no contentType registered for: EPiServer.Commerce.Marketing.SalesCampaignFolder.

the error occurrs in

EPiServer.Commerce.Initialization.InitializationModule.RegisterContentRoots(InitializationEngine context)

Stopping the site and restarting it seems to fix the problem.

PaymentmethodId doesn't change

If you haven't noticed it yet the id for the payment always is the first selected and cannot be changed with the current setup. Since the form is serialized and sent in before the new selected payment has had the chance to render it's specific id, the information sent in paymentViewModel to the Update method of the Checkout Controller is always the first one. This results in that the new payment is created with wrong payment method id and this causes issues if you later want to get hold of the correct payment based on the method Id.

Change in ServiceInstanceScope for PromotionService/EntryService/HelperFacade throws error when sessionstate is enabled

After the change of the ServiceInstanceScope from Singleton to HybridHttpSession on PromotionService/EntryService/HelperFacade (in the development branche), Redis throws an error that these are not marked Serializable.

When marking them Serializable:
PromotionHelper in Facade must be marked NonSerialized, as is it not serializable.
ReferenceConverter in PromotionService must be marked NonSerialized, as is it not serializable.

Build project and having Login failed issue

Hi there,
I have cloned codes and followed all steps in Readme, but when building the project, I got login failed issue which is described in the attached image below.
image
Please help me fix that issue.
Thank you so much

Installation instruction

Hi

I follow the readme instruction to build styling and find out the BuildLessFiles target no longer exist in the Site project. I then trace back to the history and confirm it's been removed from 12.3.0.

Does Episerver intentionally remove this from the project? If yes, can you please update the readme so it won't confuse other in the future?

Thanks

Search indexing logic expects products to be in Categories

Hi,

The following line:
https://github.com/episerver/Quicksilver/blob/master/Sources/EPiServer.Reference.Commerce.Site/Infrastructure/Indexing/SearchDocumentController.cs#L95 Fails with an InvalidCastException when there are products (WebProduct) which are directly placed in a Catalog instead of a Category.
The code recursively finds the Catalog and returns the given parameter as a NodeContent type, but in the forementioned case this will be a WebProduct. I think it would be safer to replace the code with:
return nodeContent as NodeContent

And replace https://github.com/episerver/Quicksilver/blob/master/Sources/EPiServer.Reference.Commerce.Site/Infrastructure/Indexing/SearchDocumentController.cs#L86 with:
NodeContent topCategory = GetTopCategory(productContent); document.Fields.Add(!string.IsNullOrWhiteSpace(topCategory?.DisplayName) ? new RestSearchField("top_category_name", topCategory.DisplayName) : new RestSearchField("top_category_name", null));

Implement FindSearchProvider for QuickSilver

Hi Commerce Team,

I notice that the QuickSilver B2B solution already utilized FindSearchProvider. Could you also update QuickSilver solution to allow using FindSearchProvider instead of LuceneSearchProvider?

Dzung Le - EPiServer Application Support Team

Hover on admin list item

Hi!
Could you possibly add hover on active admin list item? Even with adding "epi-navigation-selected" class to li it looks much better(and informative, that important when you have a lot of items in a list). example

New Authentication Framework

Is there any documentation around the interaction between the authentication frameworks being used?

It seems to be a mix of Identity and Membership but the interaction between the two is unclear. Roles created in the Commerce Manager are not synchronized within EPiServer and therefore are unable to be used with personalization of content in the CMS. Logging out through the CMS doesn't clear the new Identity sessions, rendering it useless.

Is there an ETA for when Identity is fully supported between CMS/Commerce?

Change Admin Password

I attempted to change the admin password in CMS->Admin.

When I logged out and logged back in, the password was still 'store'.

Unable To Add EPiServer.ServiceApi

When you try to add the nuget package EPiServer.ServiceApi you get the following nuget error:

Attempting to resolve dependency 'EPiServer.Cms.Core (≥ 8.1.0 && < 9.0)'.Attempting to resolve dependency 'EPiServer.Framework (= 8.9.0)'.Attempting to resolve dependency 'Newtonsoft.Json (≥ 5.0.8 && < 7.0)'.Attempting to resolve dependency 'Microsoft.AspNet.Mvc (≥ 4.0.20710.0 && < 6.0)'.Attempting to resolve dependency 'Microsoft.AspNet.WebPages (≥ 3.2.3 && < 3.3.0)'.Attempting to resolve dependency 'Microsoft.Web.Infrastructure (≥ 1.0.0.0)'.Attempting to resolve dependency 'Microsoft.AspNet.Razor (≥ 3.2.3 && < 3.3.0)'.Attempting to resolve dependency 'structuremap (≥ 2.6.4.1 && < 3.0)'.Attempting to resolve dependency 'EPiServer.Logging.Log4Net (≥ 1.0 && < 2.0)'.Attempting to resolve dependency 'log4net (= 1.2.10)'.Attempting to resolve dependency 'Castle.Windsor (≥ 3.2 && < 4.0)'.Attempting to resolve dependency 'Castle.Core (≥ 3.3.0)'.Attempting to resolve dependency 'Owin (≥ 1.0 && < 2.0)'.Attempting to resolve dependency 'System.IdentityModel.Tokens.Jwt (≥ 3.0 && < 5.0)'.Attempting to resolve dependency 'Microsoft.AspNet.WebApi (≥ 5.1.2 && < 6.0)'.Attempting to resolve dependency 'Microsoft.AspNet.WebApi.WebHost (≥ 5.2.3 && < 5.3.0)'.Attempting to resolve dependency 'Microsoft.AspNet.WebApi.Core (≥ 5.2.3 && < 5.3.0)'.Attempting to resolve dependency 'Microsoft.AspNet.WebApi.Client (≥ 5.2.3)'.Attempting to resolve dependency 'Microsoft.AspNet.WebApi.Owin (≥ 5.1.2 && < 6.0)'.Attempting to resolve dependency 'Microsoft.AspNet.WebApi.Core (≥ 5.1.2 && < 5.2.0)'.Updating 'Microsoft.AspNet.WebApi.Core 5.2.3' to 'Microsoft.AspNet.WebApi.Core 5.1.2' failed. Unable to find a version of 'Microsoft.AspNet.WebApi.WebHost' that is compatible with 'Microsoft.AspNet.WebApi.Core 5.1.2'.

Nuget Package Upgrade - '404 Not Found'

I am facing build issue. Below is the step what I have done.

  1. I downloaded the latest code from master branch.
  2. Build successfully.
  3. I try to Install EPIServer.Mail.

Need help please. I tried too many alternate way nut all in vain.

Attempting to gather dependency information for package 'EPiServer.Mail.8.0.0.33' with respect to project 'EPiServer.Reference.Commerce.Site', targeting '.NETFramework,Version=v4.5.2'
Gathering dependency information took 1.41 min
Attempting to resolve dependencies for package 'EPiServer.Mail.8.0.0.33' with DependencyBehavior 'Lowest'
Unable to find a version of 'EPiServer.CMS.Core' that is compatible with 'EPiServer.Mail 8.0.0.33 constraint: EPiServer.CMS.Core (>= 9.0.0 && < 10.0.0)'.

I tried to upgrade the other package then I got below issue
Resolved actions to install package 'EPiServer.CMS.Core.10.1.0'
The V2 feed at 'https://nuget.episerver.com/FindPackagesById()?id='EPiServer.CMS.Core'' returned an unexpected status code '404 Not Found'.

Episerver.Tracking.Core 1.8.0 is not available

Seems like the Tracking.commerce and Personalization.commerce are both dependent on it being 1.8 which is not available. Downgrading to 1.7.2 then causes those dependencies to break and if I downgrade those as well then the site still won't build. Any suggestions?

Exchange rates reversed

In CurrencySetup.cs the rate is added reversed to the CurrencyRateRow: var rate = (double)(from.Factor / to.Factor);

Create new CMS and Commerece User

When I create a user in the CMS Admin and assign them to all the appropriate roles, they are unable to log into the CMS and Commerce Manager.

GetMockOrder in ConfirmationService not returning PurchaseOrder correctly

When looking at the order confirmation page in edit-mode, a purchase order is not correctly retrieved from the function GetMockOrder if there exists a shopping cart with a higher Total than the Total of all the purchase orders. The line of code causing this error seems to be this one:

SqlMetaWhereClause = "[ObjectId] = (SELECT TOP 1 OrderGroupId FROM OrderGroup order by Total desc)"

Feature request: Switch to another testing framework

It seems like the tests are using MsTest. I would guess this was used to make the visual studio experience better for EPiServer developers which are very likely to use visual studio, so they can easily run the tests directly from visual studio.

But consider using more modern testing frameworks like xUnit and NUnit. MsTest seems legacy at the moment and is bound to specific visual studio versions, especially considering that pretty much all Microsofts open source software, like the entire .net platform, roslyn and so on is using xUnit for example. Both xUnit and NUnit have visual studio runners so you can run the tests directly from visual studio.

This could be handled through a pull request.

Getting Type mismatch exception

getting error:
An exception of type 'EPiServer.Core.TypeMismatchException' occurred in EPiServer.dll but was not handled in user code

Additional information: Content with id '5' is of type 'EPiServer.Core.PageData' which does not inherit required type 'EPiServer.Reference.Commerce.Site.Features.Start.Pages.StartPage'

in LoginController.cs file , line #66:
StartPage startPage = _contentLoader.Get(ContentReference.StartPage);

Wrong .gitignore file

Line containing "Sources/EPiServer.Reference.Commerce.Manager/App_GlobalResources/*" should be removed from .gitignore file as referenced folder contains important source files thet needs to be tracked

Solution uses EPiServer.CMS version 11.5.1, which is not available via NuGet

I happened to pull this down today and noticed that the 11.5.1 package versions are not available on NuGet. So, when you attempt to build the solution, you get a NuGet package restore error. I was able to get around this by first running SetupDatabases.cmd and then manually updating each project's package.config. But the repo should probably be updated to use 11.5.4 (latest stable as of this writing). Just a heads up. Thanks!

TwoLetterISOLanguageName or Name

Hi Team

I recently encountered an issue while set up payment gateway and shipping method on different English language country - New Zealand. After digging through the code, I found the following places use TwoLetterISOLanguageName instead of Name.

I'm seeking an advice what's the best practice for handling multiple language

var currentLanguage = _languageService.GetCurrentLanguage().TwoLetterISOLanguageName;

var currentLanguage = _languageService.GetCurrentLanguage().TwoLetterISOLanguageName;

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.