Skip to content

OrchardCMS/OrchardCore.Commerce

Repository files navigation

Orchard Core Commerce

Discord Read the Docs Latest version of 'OrchardCore.Commerce' on NuGet Latest version of 'OrchardCore.Commerce' on Cloudsmith

The commerce module for Orchard Core.

It's also available on all sites of DotNest, the Orchard SaaS.

Do you want to chat with other community members? Check out our channel on the Orchard discord server.

History, status, and planning

Orchard Core Commerce will be an Orchard Core port and partial rewrite of the open source Nwazet Commerce module that was built for Orchard CMS 1.x. Nwazet Commerce was initially built in 2012 by Bertrand Le Roy, loosely based on a commerce sample by Sipke Schoorstra. The initial goal of Nwazet Commerce was to power the web site of the hardware startup Nwazet. While Nwazet is no longer operating, the Nwazet Commerce project went on, and was further developed by a group of passionate contributors who are using the platform for their own, and their customer's web sites.

Like Orchard, Nwazet Commerce was built with extensibility in mind, and as such it has its own extensions (typical examples include local tax and shipping modules). It's also pure, idiomatic Orchard.

Orchard Core represents a major evolution of the Orchard design principles, and is sufficiently different that running Nwazet Commerce on it will necessitate significant work. As such, we've decided that starting from a blank slate was the best way to go, so we'll port Nwazet Commerce piece by piece, being careful to accurately apply Orchard Core's new design principles. We also decided to adopt a new name, that gets rid of the now obsolete origins, and establishes our ambition for the module to become the go-to commerce module for Orchard Core.

This work is in its initial design phases. There's a lot of work to do, and yes, we do welcome participation in any shape or form. The first stage of this was the minimum viable feature set which has now been released to NuGet here. Here you can watch a demo video about the MVP.

See the discussions page for the latest news and announcements.

Setting up your dev environment

Pre-requisites

This project uses Lombiq Node.js Extensions to compile and lint client-side assets. See its pre-requisites here.

If you want to include OrchardCore.Commerce as a git submodule instead of NuGet package, include the Lombiq Helpful Libraries and Lombiq Node.js Extensions submodules as well. In your solution directory create a Directory.Build.props file if one doesn't exist. This should contain the properties that configure the path to the Lombiq.HelpfulLibraries.OrchardCore.csproj file and the Lombiq.NodeJs.Extensions project directory. For example:

<Project>
  <PropertyGroup>
    <LombiqHelpfulLibrariesPath>$(MSBuildThisFileDirectory)/src/Libraries/Lombiq.HelpfulLibraries</LombiqHelpfulLibrariesPath>
    <LombiqNodeJsExtensionsPath>$(MSBuildThisFileDirectory)/src/Utilities/Lombiq.NodeJs.Extensions/Lombiq.NodeJs.Extensions</LombiqNodeJsExtensionsPath>
  </PropertyGroup>
</Project>

If you have Lombiq Analyzers included in your project as a submodule you should also add the following property to the Directory.Build.props file:

<Project>
  <PropertyGroup>
    <LombiqAnalyzersPath>$(MSBuildThisFileDirectory)/tools/Lombiq.Analyzers</LombiqAnalyzersPath>
  </PropertyGroup>
</Project>

Setup

  1. Clone this repository.
  2. Build and run the OrchardCore.Commerce.Web project.
  3. Thanks to Auto Setup, the site will be set up with the OrchardCore Commerce - Development recipe.
  4. Go to the dashboard, using the credentials admin and Password1!.
  5. If you want to test Stripe, go to ConfigurationCommerceStripe API. Set the keys to the test keys found here. If the keys are not set, the Stripe payment button won't appear during checkout.
  6. Go to ContentContent Items, and create your first Product.

Documentation

Check out the complete documentation portal here: https://commerce.orchardcore.net/

Demo video

Watch the video