Skip to content

Admin (operator)

The operator side lives inside the Shopware administration as Vue modules, backed by REST endpoints under /api/_action/marketplace/* (guarded by the normal Shopware admin token — no portal JWT here).

Where things appear

The modules nest into existing Shopware areas rather than adding a top-level menu:

Area Module What you do there
Customers (sw-customer) Sellers Create, edit, suspend sellers; set commission and contact.
Catalogues (sw-catalogue) Seller products · Offers Review seller-created products; approve / reject offers.
Product detail Offers tab · Commission tab See all offers on a product; set per-product commission.
Orders / Finance Purchase orders · Statements · Payouts The money: per-seller POs, statements, payout history.
Settings (sw-settings) Shipping · Marketplace config Global shipping service tiers; the marketplace settings card.

Sellers

The Sellers module is seller CRUD: account, status (active / inactive / suspended), commission, branding and contact. From here an operator can also link a Shopware admin user to an operator marketplace account (used for operator mail recipients).

Offer approval

Two grids drive the approval workflow:

  • Seller products — products sellers created, filterable to those pending approval. Bulk approve / reject.
  • Offers — every seller offer across the catalogue. Approve or reject offers sitting in pending_approval; only active offers reach the buy-box.

Approval is gated by the autoApproveProducts / autoApproveOffers settings — with those off (default), everything new or materially edited routes through these grids. See Domain model → Offer lifecycle.

The product-detail page also gains:

  • an Offers tab listing every seller's offer (plus the platform offer) for that product, and
  • a Commission tab to set that product's flyokaiCommissionPercent override.

Finance

The Finance views are read-mostly operator oversight:

View Shows
Purchase orders POs grouped by Shopware order, with seller, status, totals, commission.
Statements Per-seller statements per period — sales, commission, payout amount, status.
Payouts Payout history — amount, status, bank target.

Statement generation and payout execution are driven from the CLI (marketplace:statement:generate, marketplace:payout:execute); the admin surfaces the results. Mechanics in Statements & payouts.

Shipping

Operators define the global service tiers (e.g. Standard, Expedited) that sellers then map their carriers onto. Sellers never invent tiers — they choose from the operator's list and bind a Shopware shipping method + price to each. See Cart & checkout → Shipping.

Marketplace settings card

A settings card under Settings → Plugins → FlyokaiMarketplace holds every system-config key: enable/disable per channel, price display mode, commission and fee defaults, shipping mode, mail from/name and operator inbox recipients, and the seller-portal key path + CORS origin.

The operator REST surface

For integrators, the admin Vue talks to these (admin-token-guarded) endpoints:

Method Path Purpose
GET POST PATCH /api/_action/marketplace/sellers Seller CRUD.
GET PATCH /api/_action/marketplace/sellers/{id}/branding Seller branding.
POST /api/_action/marketplace/sellers/{id}/mail/compose Operator → seller mail.
GET /api/_action/marketplace/seller-products Seller-created products grid.
GET PATCH /api/_action/marketplace/offers Offer grid + approve/reject.
GET /api/_action/marketplace/products/{id}/offers Offers for one product.
GET /api/_action/marketplace/purchase-orders PO / statement / payout grids.
GET POST PATCH DELETE /api/_action/marketplace/shipping-services Global service tier CRUD.
GET /api/_action/marketplace/operators/candidates Users eligible for operator mail.

These call the same MarketplaceBackend as everything else, so they work identically on Base and Remote.