Skip to content

Subscriptions

Source: pharmanet-web/src/pages/Dashboard/

Pages

Page Route Description
SellerSubscription /subscription Current subscription status
NewSubscription /subscription/new Choose and purchase a plan
SubscriptionCallback /subscription/payment-callback Payment verification

Plans

Plan Price (ETB) Benefits
Monthly 500 Full visibility in nearby pharmacy search
Yearly 5,000 Full visibility + priority placement

Without an active subscription, the pharmacy is hidden from customer discovery.

Flow

sequenceDiagram
    participant S as Seller
    participant SUB as Subscription Flow
    participant CP as Chapa
    participant DB as Supabase

    S->>SUB: View current subscription
    SUB-->>S: Status, expiry, auto-renew
    S->>SUB: Choose plan (monthly/yearly)
    SUB->>DB: Create pending subscription
    SUB->>CP: Initialize Chapa payment
    CP-->>S: Hosted checkout
    S->>CP: Complete payment
    CP-->>SUB: Callback URL
    SUB->>DB: Verify + activate subscription
    DB-->>SUB: Set start/end dates
    SUB->>S: Confirmation

Services

Source: pharmanet-web/src/services/pharmacySubscription.js

Function Description
getActiveSubscription(pharmacyId) Current active sub
getMySubscription(pharmacyId) Most recent sub
createSubscription(payload) Create pending
activateSubscription(id, start, end) Activate after payment
renewSubscription(pharmacyId) Renew
cancelSubscription(pharmacyId) Cancel auto-renew
updateAutoRenew(pharmacyId, autoRenew) Toggle auto-renew

Auto-Renew

Subscriptions support auto-renew toggle. When enabled, the system attempts to renew via Chapa before expiry.