Multi-vendor marketplace
- Vendor accounts
- Vendor offers
- Moderation states
- Commission recorded per vendor
core/vendors.go
Explore marketplaceA marketplace, a wholesale catalogue, a plain shop and a group of storefronts are not four products here. They are records you create in one GoCommerce database — vendors, price lists, channels — and a store that never creates them pays nothing for their existence.
core/vendors.go
Explore marketplacecore/pricing.go, core/api_keys.go
Explore B2Bcore/checkout.go, core/orders.go
Explore D2Ccore/channels.go
Explore multi-storeWritten for owners and sales heads: what the dealer portal does for each trade, and what it does not do yet.
For Indian manufacturers and distributors: dealers order online at their own prices, on credit within a limit, and see what they owe.
A dealer and distributor ordering portal on your own web address: orders, credit, statements, approvals and quotes.
For makers and distributors of wires, switches, fans, lighting and switchgear who sell through dealers on credit.
For makers and distributors of tiles, sanitaryware, plywood, laminates and pipes who sell through dealers on credit.
For parts brands and distributors whose retailers and workshops reorder by part number, on credit.
For agencies and freelancers who build stores for clients: your brand, many client stores from one install, MIT licensed.
Every row is a capability in the engine today, checkable in the file named. What is not there is named too.
| Aspect | Marketplace | B2B | Direct-to-consumer | Multi-store |
|---|---|---|---|---|
| Records you create | Vendors, offers | Customer groups, price lists | Products, nothing else | Channels |
| Who sets the price | Each vendor, per offer | A price list, per group and quantity | You, per variant | A price list, per channel |
| Who holds the stock | Each offer | Your locations | Your locations | Your locations, published per channel |
| Moderation | pending → approved → suspended | — | — | — |
| Machine buyers | — | Scoped API keys | — | — |
| Known edge | Commission recorded, not settled | No shipping or tax per company | Storefront is a separate project | Channels scope publishing and price, not orders |
| Source | core/vendors.go | core/pricing.go | core/checkout.go | core/channels.go |
A server-rendered SvelteKit storefront that runs against 26 commerce backends — arialshop.com is it in production, on one of them. Its GoCommerce connector is early, at 0.16.0: catalogue, cart, cash-on-delivery checkout and order lookup worked end to end in a test on 28 October 2026 with version 0.14.0; shopper sign-in, the address book and order history need GoCommerce’s identity module.
Explore Svelte CommerceGoCommerce holds no templates. Any client can drive its 550 operations — a Next.js site, a native app, a coding agent over MCP. The admin uses the same contract.
Headless, on the home pageThe one-command stack gives you the API and the admin on port 80. Load a catalogue, place a test order from the API docs, and choose a storefront after the backend has earned it.
Start on your own serverFAQ
No. They are four ways of configuring one engine. A marketplace, a B2B catalogue and a plain direct-to-consumer store run the same GoCommerce binary against the same PostgreSQL; what differs is which records you create — vendors, customer groups and price lists, or channels — and none of them costs anything to leave unused.
Yes. A B2B price list can be limited to one channel, a vendor can list offers on a store that also sells its own goods, and a direct-to-consumer store can add a second channel later. The primitives compose because they are rows in one database, not plugins with their own state.
Not yet, and each page says where the edge is. Marketplace commission is recorded per vendor but not settled; the storefront half of every solution depends on a client you choose. Read the page for the shape you need before committing.
The one matching the store you are building. If you do not know yet, direct-to-consumer is the default and the other three add to it rather than replace it.
Every solution above is a configuration of the same engine you can run in one command.