# Multi-Vendor Marketplace on GoCommerce — Vendors, Offers

> Vendor moderation, offers with their own price and stock, scoped vendor logins. Commission is recorded, not settled; order lines do not carry the seller yet.

- Canonical: https://kitcommerce.store/solutions/marketplace/
- Last updated: 2026-09-25

---

Multi-vendor marketplace

## Launch a marketplace where sellers are first-class

Vendors are sellers on your store, not brands on a product. A new seller arrives *pending* and is approved or suspended by you — because a marketplace that lists whoever signs up is not moderating, it is hosting whatever turns up.

- **core/vendors.go** vendors, offers, states
- **core/vendor_accounts.go** a seller's own login
- **3** vendor states, **2** offer states

### A seller's path through the engine

- **Pending** is a seller who has arrived and not been let in. Nothing of theirs shows.
- **Approved** is a seller the storefront will show. Their offers can go active.
- **Suspended** keeps the row, the history and the offers, and stops the storefront showing them.
- **An offer** is one vendor's price and stock for one variant, *active* or *paused*, one per vendor per variant.
- **Stock** on an offer is on-hand and reserved, so two shoppers cannot both buy the last one.

VendorStatus: pending · approved · suspended — OfferStatus: active · paused

From sign-up to a listing

#### Seller signs up

state: pending

you review

#### Approved

may list offers — or suspended, reversibly

publishes

#### Vendor offer

own price, own stock, on your catalogue entry

customer buys

#### Order

priced and stocked from the offer

### What a vendor is

The record, the login and the rate — each a real field, none a placeholder.

- **A record** — Slug, name, legal name, email, phone, website, about, a logo, an address for the invoice and for tax, a tax id.
- **A login of their own** — Same table, hashing, sessions and rights as every operator. What differs is a scope: role vendor, pointing at their vendor.
- **A commission rate** — In basis points on the vendor — 250 is 2.5%. Recorded on the record, not settled by the engine.
- **Offers, one per variant** — Their price and their stock against your catalogue entry, with their own active or paused state.
- **Moderation in the engine** — A state machine in core, enforced on write — not a checkbox in a theme.
- **Admin screens** — Vendors and their offers are managed on the same admin, on the same API, with the same 52 rights.

### Where the edge is

Two gaps a marketplace will meet early. Both are named so nobody discovers them in production.

#### Commission is recorded, not settled

The rate lives on the vendor. There is no payout ledger, no settlement run and no statement. Paying sellers means computing it from orders yourself.

#### The order line does not yet carry the seller

A line is priced and stocked from an offer, but the vendor is not written onto the order. Per-seller fulfillment and payout reports need that, and it is not there.

#### No seller-facing storefront

A vendor's login is to the admin, scoped to their records. A separate seller portal is a client you would build on the same API.

FAQ

### Questions about marketplaces

**How does a seller get onto the marketplace?**

A vendor record is created — by you, or by their own sign-up — and starts pending. Nothing of theirs is shown until you approve it. Suspending keeps the row, the history and the offers, and stops the storefront showing them; it is reversible in a way that deleting is not.

**What does a vendor actually own?**

A vendor record with a slug, legal name, contact details, an address for the invoice and for tax, a tax id and a commission rate; a login of their own; and offers. An offer is one vendor’s price and stock for one variant of your catalogue, with its own active or paused state and its own reserved-versus-on-hand stock.

**Can several sellers sell the same product?**

Yes. That is what an offer is: several vendors, one catalogue entry, each with their own price and stock. The unique constraint is one offer per vendor per variant, so a seller cannot list the same thing twice.

**What does a vendor see when they log in?**

Only what is theirs. A vendor account uses the same login table, password hashing, sessions and rights machinery as every other operator — a second identity system would be a second place for a login bug to live — and what makes it a vendor account is a scope, not a right: the role is vendor and the row points at their vendor.

**Is commission paid out automatically?**

No. Each vendor carries a commission rate in basis points — 250 is 2.5% — and it is recorded, not settled. There is no payout ledger and no settlement run. A marketplace that pays its sellers needs to compute that from orders itself, today.

**Does an order know which seller it belongs to?**

Not yet. Offers carry the seller, and a line bought from an offer is priced and stocked from that offer, but the order line does not yet record the vendor. This is the most visible gap for a marketplace and it is named here rather than left for you to find.

### Sellers are rows. Moderation is a state.

Run the stack, create a vendor from the admin, approve it, and list an offer against a variant from the API docs.

[Deploy in minutes](https://kitcommerce.store/#one-command) · [B2B pricing](https://kitcommerce.store/solutions/b2b/) · [Multi-store](https://kitcommerce.store/solutions/multi-store/) · [All solutions](https://kitcommerce.store/solutions/)
