A modular, scalable and ultra-fast open-source all-in-one eCommerce platform built on ASP.NET Core 7.
Try Online ∙ Forum ∙ Marketplace ∙ Translations
Smartstore is a cross-platform, modular, scalable and ultra-fast open source all-in-one eCommerce platform based on ASP.NET Core 7, Entity Framework, Vue.js, Sass, Bootstrap and more.
Smartstore includes all the essential features to create multi-language, multi-store, multi-currency shops targeting desktop or mobile devices and enables SEO-optimised, rich product catalogs with support for unlimited number of products and categories, variants, bundles, datasheets, ESD, discounts, coupons and much more.
A comprehensive set of tools for CRM & CMS, Sales, Marketing, Payment & Shipping Handling etc. makes Smartstore a powerful all-in-one solution that meets all your needs.
Smartstore delivers a beautiful and configurable shop frontend out-of-the-box, built with a high level design approach, including components like Sass
, Bootstrap
and others. The included Flex theme is modern, clean and fully responsive, giving shoppers the best possible shopping experience on any device.
The state-of-the-art architecture of Smartstore - with ASP.NET Core 7
, Entity Framework Core 7
and Domain Driven Design approach - makes it easy to extend, extremely flexible and basically fun to work with ;-)
ASP.NET Core 7
, Entity Framework Core 7
and domain-driven designDocker
out of the box for easy deploymentVue.js
, Sass
, Bootstrap
& more in the front and back end.
Bootstrap
-based theme
Smartstore 5 is a port of Smartstore.NET 4 - based on the classic .NET Framework 4.7.2 – to the new ASP.NET Core 7
platform. Smartstore instances based on classic ASP.NET MVC
can be upgraded seamlessly. To upgrade, all you need to do is replace the application files on your server - except for the App_Data
directory - and all your data will automatically be transferred to the new system. See the documentation for detailed information on installing or upgrading your store.
:information_source: Upgrading from versions older than 4.2 is not possible. Therefore, you should migrate Smartstore.NET to version 4.2 first and then upgrade to Smartstore 5.
git clone https://github.com/smartstore/Smartstore.git
and checkout the main
branch.Smartstore.sln
and wait for Visual Studio to restore all NuGet packagesSmartstore.Web
is the startup project and run itSmartstore
contains common low-level application-agnostic stuff like bootstrapper, modularity engine, caching, pub/sub, imaging, type conversion, IO, templating, scheduling, various utilities, common extension methods etc.Smartstore.Data
contains database providersSmartstore.Core
contains application specific modules like catalog, checkout, identity, security, localization, logging, messaging, rules engine, search engine, theme engine, migrations etc.Smartstore.Web.Common
contains common web features like custom MVC infrastructure, bundling, TagHelpers, HtmlHelpers etc.Smartstore.Modules
contains all module/plugin projectsSmartstore.Web
is the entry host project that contains controllers, model classes, themes, static assets etc.
Run the build script corresponding to your target platform in the build directory: build.{Platform}.cmd
. The resulting build will be placed in the build/artifacts/Community.{Version}.{Platform}
directory. A zip archive in build/artifacts/ is created automatically.
By default, the build script produces a platform-specific, self-contained application that includes the ASP.NET runtime and libraries, the Smartstore application and its dependencies. You can run it on any machine that doesn't have the .NET runtime installed.
Smartstore uses Nuke (https://nuke.build/) as its build automation solution, which makes it easy to customize the build process by editing src/Smartstore.Build/Smartstore.Build/Build.cs
.
While building the solution, all modules in src/Smartstore.Modules/
are detected, compiled and placed in the src/Smartstore.Web/Modules/
directory. The application runtime uses this directory as a source from which modules are
loaded dynamically. During development, however, the "Modules" directory is irrelevant. You can safely delete it at any time.
To create a Docker image, run build/dockerize.{Platform}[.nobuild].sh
.
Creates a Debian Linux base image including the complete ASP.NET runtime, builds the solution and publishes a framework-dependent application inside the Linux container. It also installs the native wkhtmltopdf library needed to generate PDF files.
Much faster, but requires that the application has already been built and is located in build/artifacts/Community.{Version}.linux-x64
. Creates a Debian Linux base image with only the ASP.NET runtime dependencies and copies the build artifact. It also installs the native wkhtmltopdf library needed to generate PDF files.
Creates a Windows Nano Server base image with only the ASP.NET runtime dependencies and copies the build artifact. Requires that the application has already been built and is located in build/artifacts/Community.{Version}.win-x64
. It also requires that the Docker engine is running a Windows image.
To create a ready-to-run Docker container with a database server run compose.{DbSystem}.sh
.
Creates a composite Docker container containing the smartstore application image and the latest MySql image.
Creates a composite Docker container containing the smartstore application image and the latest MS SQL Server image.
We have set up a live online demo for you to test Smartstore without a local installation. Get a first impression and test all available features in the frontend and backend. Please note that the backend demo is shared and other testers can modify data at the same time.
Smartstore Community Edition is released under the AGPL license.
Add a star to our new repository to stay up-to-date, get involved or just watch how we're doing. Learn about the latest developments, actively participate and don't miss out on new releases.