What is GrandNode

GrandNode is an open-source e-commerce platform built on ASP.NET Core (.NET 10) and MongoDB. One installation runs a complete online store: the shop your customers see, the back office you run it from, and the extension points you use to connect payment providers, shipping carriers, tax engines and your own code. It supports B2C and B2B selling, several stores from one installation, marketplaces with independent vendors, and any number of languages and currencies. This article explains the parts you will meet, so the rest of the documentation makes sense.

The storefront

The storefront is the public website: home page, category and brand pages, product pages, search, cart, checkout, customer account, blog, news, knowledgebase and content pages. It is server-rendered by ASP.NET Core with Vue 3 and Bootstrap 5 for the interactive parts, so pages are fast and indexable. What it looks like is decided by the active theme. A fresh installation with sample data uses the Nordic theme; the other themes shipped in the repository are Default and Modern.

GrandNode storefront home page with the Nordic theme: top menu of categories, a hero slider and a welcome text
The storefront of a fresh installation with sample data (Nordic theme).

The Admin panel

The Admin panel at /admin is where administrators run the whole installation: catalog, orders, customers, marketing, content, reports, configuration of every store, settings, plugins and system tools. Only customers in the Administrators customer group (or a group you grant the admin permissions to) can sign in. The administrator account is created by the installation wizard. See A tour of the Admin panel.

The Store owner panel

The Store owner panel at /store is a reduced back office for a person who manages one store in a multi-store installation. A store manager is a customer in the Store manager customer group whose account is assigned to a store. They see the same kind of screens as an administrator — products, categories, orders, customers, discounts, landing pages, reports, payment, shipping and tax configuration, store-level settings — but only the data of their store, and nothing that affects the installation as a whole (plugins, permissions, system tools).

Store owner panel dashboard for the store GrandNode Demo, with visitors, carts, today's orders and charts
The Store owner panel shows the store it belongs to in the top bar and in the page header.

The Vendor panel

In a marketplace, products can belong to vendors — independent sellers who list their goods in your store. The Vendor panel at /vendor lets a vendor manage their own products, see and ship the orders that contain them, handle merchandise returns, read their vendor reviews and run reports. A vendor account is a customer in the Vendors customer group linked to a vendor record under Customers → Vendors.

Vendor panel dashboard for the vendor Nordic Craft Collective with latest orders and bestsellers
The Vendor panel is limited to Catalog, Sales, Customers (vendor reviews) and Reports.

Plugins

Plugins add providers to the platform without changing its code. The repository ships with plugins for:

  • Payments — Cash on delivery, Stripe Checkout, BrainTree;
  • Shipping — fixed rate, by weight, and shipping points (pickup);
  • Tax — fixed rate and country/state/zip based;
  • Discount rules — the standard set of conditions for discounts;
  • External authentication — Facebook and Google sign-in;
  • Widgets — Google Analytics, Facebook Pixel and the home page slider;
  • Exchange rates — a currency rate provider;
  • Themes — Nordic and Modern (the Default theme is built into the web project).

The installation wizard installs every plugin it finds, so they are ready to be configured. You manage them under Plugins → Local plugins.

Modules

Besides plugins, GrandNode has a few modules — parts of the application that can be switched on and off in App_Data/appsettings.json under FeatureManagement: the installer (Grand.Module.Installer), database migrations (Grand.Module.Migration), scheduled tasks (Grand.Module.ScheduledTasks) and the REST API (Grand.Module.Api, off by default).

How the pieces fit

PartAddressWho uses it
Storefront/Guests and registered customers
Admin panel/adminAdministrators
Store owner panel/storeStore managers of one store
Vendor panel/vendorMarketplace vendors
DatabaseMongoDB (or LiteDB for small setups)The application

Everything lives in one web application and one database, so there is nothing extra to deploy for the panels.

Question not answered here? Ask the community on GitHub Discussions ↗