Platform admin
Service orders ledger
The Service orders page at /admin/orders is the
platform-admin view of every WorkspaceAddonPurchase
ledger row โ every one-time addon (Professional AI Setup, etc.)
that any workspace has bought, across every workspace on the
install. Read-only.
What you see
- Paid this month + Paid all time
โ sum of
paid+deliveredrows in the respective windows. - Per-row: workspace name, buyer email + display name, addon name, amount + currency, status pill, purchased-at timestamp, first available Stripe id (invoice โ payment intent โ checkout session).
- Filter by status:
pending,paid,delivered,failed,cancelled,refunded. - Search across workspace name, buyer email/name, addon name, and any Stripe id field.
Access
Super-admin only. Same gate as the other
platform admin pages โ handled by
the super_admin route-group middleware, no per-route
policy needed.
How orders land here
Every successful checkout writes a row via
AddonPurchaseController โ either inline through
invoiceFor() (saved-card path) or after Stripe
Checkout completes (no-card path). The
invoice.payment_succeeded webhook is the safety net
that flips any pending rows missed by the success URL
redirect.
Other places you can see purchases
- Email โ every paid purchase fires
NotifyTeamOfAddonPurchaseJobwhich mailsconfig('mail.team_notify_email')(setBLENGI_TEAM_NOTIFY_EMAILin .env). - Stripe Dashboard โ ground truth. Filter
Payments by
metadata.kind = 'addon_purchase'to see only addon orders. - Customer's workspace โ each workspace's own
/app/billing/addonspage shows their own purchase history.
What's NOT on this page (yet)
Read-only. Refund, re-deliver, and mark-delivered actions are planned but not shipped. For now, use the Stripe Dashboard to refund and the operator's own internal process to mark services delivered.