Today's Orders
—
loading…
Today's Sales
—
loading…
Online Drivers
—
loading…
Open Stores
—
loading…
🚨 Pending Actions
Recent Orders
Today, latest first
| # | Store | Status | Total |
|---|---|---|---|
0 active orders
to
Driver Fleet
| Driver | Status | Active Order | Gross Delivery Fees | Platform Fee | Net Payout | Deliveries | Actions |
|---|---|---|---|---|---|---|---|
Loading…
palette
You control the product catalog
Store owners can edit prices & toggle stock. Only you can add new products.
| Product | Store | Price | Stock | Actions |
|---|---|---|---|---|
All Categories
Tree of catalog categories — drag sort_order on edit. Disable categories to hide them from the user app.
| Name | Slug | Kind | Parent | Sort | Active | Actions | |
|---|---|---|---|---|---|---|---|
All Verticals
Top-level marketplace verticals — each drives a home rail and its own fulfillment flow. Disable to hide from the user app.
| Name | Slug | Fulfillment | Weight | Home | Active | Actions |
|---|---|---|---|---|---|---|
Needs attention
Attention
Loading…
| Severity | Order | Status | Issue | Driver | Action |
|---|---|---|---|---|---|
Status:
Pharmacy
Loading…
| When | Customer | Status | Items | Order | Actions |
|---|---|---|---|---|---|
Notifications
Broadcast a push to an audience — each recipient gets their own language.
Provide at least one language; recipients in the other language get whichever you filled. Deeplinks only open for customers (catalog screens live in the customer app).
Sent broadcasts
History of pushes sent — audience, reach & deeplink.
| When | By | Audience | Message | Reach | Opens |
|---|---|---|---|---|---|
Rating:
Visibility:
Customer Reviews
Loading…
| When | Target | Rating | Comment / Reply | Visible | Actions |
|---|---|---|---|---|---|
Status:
Wallet Top-ups
Loading…
| When | Customer | Amount | Method | Reference | Sender / Txn ref | Actions |
|---|---|---|---|---|---|---|
Last 200 attempts and offers
Dispatch Attempts
When orders entered the dispatch funnel and which tier they reached.
| Created | Order | Tier | Tier Times | Assigned Driver | Completed |
|---|---|---|---|---|---|
Job Offers
Per-driver offers within each dispatch attempt: pending / accepted / declined / expired.
| Created | Order | Driver | Tier | Status | Responded | Expires |
|---|---|---|---|---|---|---|
Pricing map:
Pricing knobs
Global values read live by
calc_delivery_fee. The gap rate sets EGP/km added or deducted for points between town circles (further from Qaha = more). Saving writes a new active delivery_fee_config row.Town pricing zones
Fixed sheet fee per town (nearest active circle wins).
| Town | Fee | Radius | Center (lat, lng) | Active | Actions |
|---|---|---|---|---|---|
Service zone polygons
The Qaha-core Zone 1 / Zone 2 PostGIS shapes (flat in-town fees). At least one order endpoint must fall inside these or the order is out of area. Click a zone to edit, redraw with the polygon tool, then Save Shape.
| Code | Description | Updated | Actions |
|---|---|---|---|
Range:
Settlement Trend
Gross sales, platform share, and net owed for the selected settlement window.
Admin Share
Platform share split across store and driver settlements, with payout-ready totals.
Range:
Orders by Status
Top Stores by Order Volume
Orders — Last 30 Days
Customers
Loading…
| Name | Phone | Address | Joined | Orders |
|---|---|---|---|---|
Action:
Audit Log
Loading…
| When | Admin | Action | Target | Details |
|---|---|---|---|---|
Connection
Supabase project info
Project URL
Realtime Status
Panel Version
v2.2 — Akhdemny Admin
Quick Actions
System controls
Force Reload All Data
Re-fetches everything from Supabase
Toggle All Stores Open
Bulk open/close all stores
Export All Orders (CSV)
Downloads today's orders as CSV
Delivery Fee
Live values read by the
calc_delivery_fee RPC — the server is the source of truth and this is exactly what customers are charged. Saving writes a new active row in delivery_fee_config. Still used: Zone 1 / Zone 2 flat fees, extra-stop fee, round-up step, max km from base, and the new Gap Rate (EGP/km). Legacy / inert (v5): Base Fare, Tier 1/Tier 2 rate & cap, and Remote-pickup surcharge — out-of-town pricing now comes from the town zones (manage them visually in the Zones tab) plus the gap rate, and both-outside trips are blocked so there's no deadhead surcharge. Leave the legacy fields as-is; they have no effect.Delivery Fee Overrides · town zones
The primary out-of-town pricing model (v5). Each town is a circle (center + radius_m) with a fixed sheet fee; a trip whose non-Qaha endpoint falls inside one is priced at that fee — nearest active center wins (ties → higher priority). Between circles, the nearest town's fee is adjusted by the gap rate per km from Qaha. Checked after the Qaha-core zone check. Easiest to manage on the map in the Zones tab.
| Name | Center (lat, lng) | Radius (m) | Fee (EGP) | Priority | Active | Actions |
|---|---|---|---|---|---|---|
| Loading… | ||||||
Driver Commission Tiers
Percent platform takes from driver gross, by orders/day. Lower min_orders = more lenient tier.
| Min Orders | Max Orders | Commission % | Active | Actions |
|---|---|---|---|---|
| Loading… | ||||
Driver Quests
Per-driver daily challenge: hit the target job count on that Cairo day and the WHOLE day's commission % becomes the reward % (overrides the tier ladder). Read live from
driver_special_quests by the earnings calc.| Driver | Date | Target jobs | Reward % | Status | Actions |
|---|---|---|---|---|---|
| Loading… | |||||
Platform Config
Raw key/value flags that drive the apps. Edit inline; values are stored as TEXT.
| Key | Value | Description | Actions |
|---|---|---|---|
| Loading… | |||
Appearance
Theme and language preferences
Theme
Toggle between dark and light mode
Language
Switch display language
Shifts
Driver coverage, slot configuration, and reliability management
Today
YYYY-MM-DD
Profile:
Total Driver-Slots
0/0
Under Minimum
0
Viable but not Full
0
On Waitlists
0
Loading coverage…
| Code | Type | Value | Min Order | Applies To | Uses | Expires | Status | Actions |
|---|---|---|---|---|---|---|---|---|