Orders
List, retrieve, and cancel orders for the current session.
TS
// List orders, get details, check status
const orders = await client.orders.list()
if (!orders.ok) throw orders.error
const latest = orders.value[0]
const detail = await client.orders.get(latest.id)
if (detail.ok) {
console.log(detail.value.status) // 'pending' | 'confirmed' | ...
console.log(detail.value.total_price)
console.log(detail.value.items.length)
}list
Returns all orders for the current session or authenticated user.
TS
const all = await client.orders.list() // Result<Order[]>
const pending = await client.orders.list({ status: 'pending' }) // filtered by statusget
TS
const order = await client.orders.get('ord_xxxxx') // Result<Order>cancel
TS
const cancelled = await client.orders.cancel('ord_xxxxx')
if (!cancelled.ok) {
console.error(cancelled.error.code, cancelled.error.message)
}Order Status Values
| Status | Description |
|---|---|
pending | Order created, awaiting confirmation |
confirmed | Accepted by the business |
preparing | Being prepared or assembled |
ready | Ready for pickup or delivery |
completed | Successfully fulfilled |
cancelled | Cancelled by customer or business |
refunded | Payment refunded |
Example: Poll for Status Changes
TS
async function pollOrderStatus(orderId: string) {
const result = await client.orders.get(orderId)
if (!result.ok) return null
const order = result.value
if (order.status === 'completed' || order.status === 'cancelled') {
return order // terminal state
}
// Poll again after delay
await new Promise(r => setTimeout(r, 5000))
return pollOrderStatus(orderId)
}All Methods
| Method | Returns |
|---|---|
list(opts?) | Result<Order[]> |
get(orderId) | Result<Order> |
cancel(orderId) | Result<Order> |