Orders
See what customers bought and whether they paid
Every checkout creates an order, so you can see who bought which plan, at what price and through which provider — without digging into the payment provider's dashboard.
Where to find orders
Open Admin → Orders (/admin/orders). The list shows 20 orders per page,
newest first, with Previous/Next controls and a total count.
| Column | Meaning |
|---|---|
| Date | When the checkout was started |
| Customer | The account's email address |
| Plan | Plan id and the provider price id |
| Amount | Price shown in the site config, in the smallest currency unit |
| Provider | stripe, creem or waffo |
| Status | pending, paid, failed, refunded or expired |
Status meaning
- pending — checkout was created but the payment is not confirmed yet.
- paid — the provider confirmed the payment. This can take a few seconds after the customer finishes checkout, because it waits for the webhook.
- failed — the provider reported a failed or expired checkout.
- refunded — the payment was refunded.
- expired — the checkout was never paid and the pending window passed (24 hours by default). Expired orders grant nothing.
A paid order is never stuck at pending: the page checks the provider receipt, so a late webhook still shows the correct state.
Refunds and disputes
Refunds are not triggered from the admin panel. Open the provider's dashboard (Stripe, Creem or Waffo), refund the payment there, and treat the order as closed. Credits are not clawed back automatically today.
Abandoned checkouts
A checkout that is never paid stays visible as pending for 24 hours, then shows as expired. Nothing is granted until a payment is confirmed, so an abandoned checkout costs the customer nothing. If the provider reports the payment later, the order switches to paid automatically.
Limitations
- The page is paginated; use Previous/Next to browse older orders.
- Subscription renewals do not create a new order row; they are recorded in the provider's payment history.
- Amounts come from the price table in
src/config/website.ts, so keep it in sync with the provider's prices.