M14

Vendor Marketplace

Vendor ecosystem controls, service monetization, and payment rails.

Marketplace primitives spanning vendor typing and call-log telemetry, account-level marketplace visibility flags, and Stripe-backed subscription/payment workflows for supply-demand ecosystems.

VendorCatalog.jsxtsx
import { useState } from 'react';
import { DataGrid, CardIcon, CardMedia, Carousel, PillBadge, Modal, ReviewModal, CreditCardInput, StarRating } from '@cleen/cleen-components';
import { useVendors, useSubscribe } from '@/hooks/useVendorCatalog';

export function VendorCatalog() {
  const { vendors, loading } = useVendors();
  const subscribe = useSubscribe();
  const [reviewing, setReviewing]   = useState(null);
  const [purchasing, setPurchasing] = useState(null);

  return (
    <div className="vendor-catalog">
      <DataGrid
        loading={loading}
        rows={vendors}
        columns={[
          { key: 'logo',   label: '',         render: (v) => <CardMedia src={v.logoUrl} /> },
          { key: 'name',   label: 'Vendor',   render: (v) => <CardIcon icon={v.icon} title={v.name} description={v.tagline} /> },
          { key: 'rating', label: 'Rating',   render: (v) => <StarRating value={v.rating} readonly /> },
          { key: 'tier',   label: 'Tier',     render: (v) => <PillBadge>{v.tier}</PillBadge> },
          { key: 'price',  label: 'Price',    align: 'right' },
        ]}
        onRowClick={setPurchasing}
      />
      <Carousel items={vendors.filter((v) => v.featured)} render={(v) => <CardMedia src={v.heroUrl} title={v.name} />} />
      <ReviewModal isOpen={!!reviewing} vendor={reviewing} onClose={() => setReviewing(null)} />
      <Modal isOpen={!!purchasing} onClose={() => setPurchasing(null)} title={`Subscribe to ${purchasing?.name}`}>
        <CreditCardInput onSubmit={(card) => subscribe({ vendorId: purchasing.id, card })} />
      </Modal>
    </div>
  );
}

Capabilities

  • Vendor type filtering
  • Vendor call-log filtering
  • Marketplace visibility/vetting indicators
  • Stripe subscription creation
  • Stripe webhook processing

Benefits

  • Accelerates marketplace launch
  • Improves vendor oversight
  • Supports scalable demand/supply operations

Flow of work

  1. 01Define vendor types and visibility rules
  2. 02Onboard and classify vendors
  3. 03Enable billing/subscription pathways
  4. 04Monitor vendor call and service activity
  5. 05Optimize marketplace conversion and quality

Subfeatures

  • Vendor type filter
  • Vendor call log filter
  • Marketplace visibility/vetting flags
  • Stripe subscription create
  • Stripe webhook processing
  • Integration connect/disconnect
Source surfaces (technical reference)

Internal code areas in the licensed Full-Stack codebase that back this module.

  • ApiAdmin vendor endpoints
  • ApiPayment
  • ApiAccount marketplace flags
  • ApiIntegration lifecycle endpoints
In the stack

Where it lives. What it exposes.

A quick visual of how Vendor Marketplace participates across the CleenUI stack, alongside the named operations it adds to the API surface.

M14 · architecture
Frontend
React · TailwindCSS · 60+ components
Vendor browseVisibility settingsSubscription panelStripe checkout
API
C# Web API · production-ready · role-aware
Vendor typesCall logsStripe subscriptionWebhook handlerIntegration
Database
AzureSQL · 300+ tables · 700+ procedures
VendorsSubscriptionsVendorCallLogsIntegrationTokens
Async Services and Batch Jobs
WebJobs & Functions · queue-backed
Stripe webhook handlerVendor activity tracker
All four layers ship together as the Full-Stack license. M14 blocks are highlighted.
API operations

Named operations on this surface

6
Try these in Postman
  • POSTVendor type filter/admin/vendor/type-filter
  • POSTVendor call log filter/admin/vendor/call-log-filter
  • POSTMarketplace visibility/vetting flags/admin/vendor/marketplace-visibility-vetting-flags
  • POSTStripe subscription create/admin/vendor/stripe-subscription-create
  • POSTStripe webhook processing/admin/vendor/stripe-webhook-processing
  • POSTIntegration connect/disconnect/admin/vendor/integration-connect-disconnect

Each operation maps to an endpoint in the licensed C# Web API surface.