cimplify

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 status

get

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

StatusDescription
pendingOrder created, awaiting confirmation
confirmedAccepted by the business
preparingBeing prepared or assembled
readyReady for pickup or delivery
completedSuccessfully fulfilled
cancelledCancelled by customer or business
refundedPayment 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

MethodReturns
list(opts?)Result<Order[]>
get(orderId)Result<Order>
cancel(orderId)Result<Order>