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-storeEvery 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 quotes or approvals workflow | 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.1.0: catalogue, cart, checkout and order lookup, not customer accounts or a search index.
Explore Svelte CommerceGoCommerce holds no templates. Any client can drive its 342 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.