Order Detail
Returns the complete order-view payload for a single order — the data behind the admin Sales → Orders → View screen.
Endpoint
| Endpoint | Method |
|---|---|
/api/admin/orders/{id} | GET |
What's embedded
Unlike the listing, the detail embeds every relation inline — one request returns the whole screen:
- Flat order fields + totals (grand / sub / tax / discount / shipping, invoiced and refunded variants, total due, with
formatted*strings) pluspaymentMethod/paymentTitle. customer(withgroup),billingAddress,shippingAddress(each address includesvatId).items— each withtype(simple,configurable,bundle,downloadable,grouped,virtual) and type-specific data inadditional,child,children,downloadableLinks. Switch ontypeto render.invoices,shipments,refunds— the order's documents.comments— the order's comment thread, newest first, each withcomment,customerNotified,createdAt. (Add a comment withPOST /api/admin/orders/{id}/comments.)
Eager-loading everything for one order is bounded (~constant query count, measured ~20 ms), so no sub-resource round trips are needed.
Product-type-aware items
The frontend reads item.type and renders accordingly:
type | Type-specific data |
|---|---|
simple, virtual | — |
configurable | child — the chosen variant; additional.super_attribute |
bundle | children — bundle selections; additional.bundle_options |
grouped | children — grouped sub-items |
downloadable | downloadableLinks — purchased links |
Every /api/admin/* request requires an admin Bearer token.

