Skip to main content

Marketplaces & Classifieds Guide

This guide walks you through monetizing multi-sided platforms, classified portals, and service marketplaces using SolydFlow.

[1. Configure Seller / Listing Packages] ➔ [2. Vendor Selects Tier or Boost] ➔ [3. Smart-Routed Checkout] ➔ [4. Enforce Entitlement (Badge / Promotion)]

The 3 Marketplace Monetization Models​

Marketplace businesses typically monetize the supply side (merchants, sellers, and service providers) using three primary models:

Monetization ModelProduct Type in SolydFlowEntitlement TargetBusiness Use Case
1. Pro Seller SubscriptionsRecurring Subscriptionverified_merchantVerified badge, unlimited inventory listings, lower commission rates.
2. Featured Listing BoostsNon-Renewing Pass (e.g. 7 Days)featured_listing_7dPushes a seller's item to the top of category search results for 7 days.
3. Lead Unlocking CreditsConsumable Pack (e.g. 20 Leads)lead_credits_20Allows contractors or service providers to reveal customer contact info.

Catalog Structure for Marketplaces​

📦 Product: "Verified Merchant Badge" ➔ Entitlement: "verified_merchant"
│
├── 🇳🇬 Package: merchant_pro_ngn ➔ ₦15,000 / month (Paystack / Monnify)
├── 🇰🇪 Package: merchant_pro_kes ➔ KSh 1,500 / month (M-Pesa STK Push)
└── 🌍 Package: merchant_pro_usd ➔ $14.99 / month (Stripe)

📦 Product: "7-Day Top Search Boost" ➔ Entitlement: "featured_boost"
│
├── 🇳🇬 Package: boost_7d_ngn ➔ ₦3,500 (One-time, 7-day duration)
└── 🇰🇪 Package: boost_7d_kes ➔ KSh 400 (One-time, 7-day duration)

Code Example: Seller Purchasing a Listing Boost​

When a merchant taps "Promote Listing" on their dashboard:

lib/screens/seller_listing_screen.dart
import 'package:flutter/material.dart';
import 'package:solydflow_flutter/solydflow_flutter.dart';

Future<void> promoteListing(BuildContext context, String listingId) async {
try {
// 1. Launch purchase for a 7-day search boost package
final CustomerInfo? info = await SolydFlow.purchasePackage(
context,
"boost_7d_ngn", // SolydFlow routes to local payment rail
);

if (info == null) return; // Dismissed

// 2. Confirm entitlement activated
if (info.activeEntitlements["featured_boost"] == true) {
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(content: Text("🚀 Listing boosted to top of search for 7 days!")),
);
// Refresh listing UI
}
} catch (e) {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text("Promotion failed: $e")),
);
}
}

Backend Fulfillment for Verified Badges​

When a merchant's monthly verification subscription renews or gets revoked:

src/webhookHandler.js (Node.js Express)
app.post('/webhook/solydflow', express.raw({ type: 'application/json' }), async (req, res) => {
// 1. Verify signature ...
const payload = JSON.parse(req.body.toString());

if (payload.event === "subscription_started" && payload.entitlement === "verified_merchant") {
// Activate verified badge on public seller profile
await db.merchants.update({
where: { userId: payload.user_id },
data: { isVerified: true, badgeExpiresAt: new Date(payload.expires_at) },
});
}

if (payload.event === "subscription_revoked" && payload.entitlement === "verified_merchant") {
// Strip verified badge on cancellation or chargeback
await db.merchants.update({
where: { userId: payload.user_id },
data: { isVerified: false },
});
}

return res.status(200).json({ received: true });
});

Platform Revenue vs. Peer-to-Peer Payouts​

Scope of SolydFlow
  • SolydFlow Manages: Platform fees, merchant subscriptions, listing upgrade fees, and seller verification tiers.
  • Underlying Gateways Manage: Automated split payments and escrow transfers between buyers and sellers via your gateway's native subaccount tools (e.g. Paystack Subaccounts or Stripe Connect).