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.

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.

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.

Chat on WhatsApp