Featured Products & Subscriptions
Source: pharmanet/lib/core/providers/featured_product_provider.dart + subscription_service.dart
Overview
PharmaNet offers two monetization features for pharmacies:
| Feature |
Purpose |
Pricing |
| Featured Products |
Boost individual products in search/category results |
Per-product, time-based |
| Pharmacy Subscriptions |
Enable visibility in nearby pharmacy discovery |
Monthly / Yearly |
Featured Products
Providers
Source: pharmanet/lib/core/providers/featured_product_provider.dart
| Provider |
Type |
Description |
subscriptionServiceProvider |
Provider<SubscriptionService> |
Singleton service |
subscriptionStatusProvider |
FutureProvider.family<String> |
Active subscription status |
isPharmacySubscribedProvider |
FutureProvider.family<String> |
Boolean check |
sellerFeaturedProductsProvider |
FutureProvider.family<String> |
Seller's featured products |
activeFeaturedCountProvider |
FutureProvider.family<String> |
Count of active featured |
featuredProductPricingProvider |
Provider<List<Map<String, dynamic>>> |
Pricing plans |
Pricing Plans
| Duration |
Price (ETB) |
| 30 days |
100 |
| 90 days |
300 |
| 180 days |
600 |
| 365 days |
1,200 |
Payment Flow
sequenceDiagram
participant S as Seller
participant FP as Boost Flow
participant CP as Chapa
participant DB as Supabase
S->>FP: Select product(s) + duration
FP->>DB: Create pending payment record
FP->>S: Show Chapa checkout
S->>CP: Complete payment
CP-->>FP: Callback (success)
FP->>DB: Activate featured status
DB-->>FP: Set start/end dates
FP->>S: Confirmation
Pharmacy Subscriptions
Service
Source: pharmanet/lib/core/services/subscription_service.dart
| Method |
Description |
getActiveSubscription(pharmacyId) |
Current active subscription |
getCurrentSubscription(pharmacyId) |
Most recent subscription |
createSubscription(pharmacyId, type, amount, txRef, autoRenew) |
Create new subscription |
activateSubscription(id, startDate, endDate) |
Activate after payment |
isPharmacySubscribed(pharmacyId) |
Boolean visibility check |
getSubscriptionHistory(pharmacyId) |
All past subscriptions |
cancelSubscription(id) |
Cancel auto-renew |
updateAutoRenew(id, autoRenew) |
Toggle auto-renew |
Plans
| Plan |
Price (ETB) |
Features |
| Monthly |
500 |
Full visibility in nearby/pharmacy search |
| Yearly |
5,000 |
Full visibility + featured placement |
Subscription Enforcement
- Nearby Pharmacies: Only subscribed pharmacies appear
- Pharmacy Catalog: Only subscribed pharmacies visible in search
- Product Visibility: Products from unsubscribed pharmacies hidden from customers