---
id: SCR-COM-ORD-001
title: Orders list
route: '/console/{tenantId}/orders'
surface: console
product_area: commerce
module: orders
revision: 1
status: draft
design_intent: proposed
implementation_evidence: observed
inference: []
source_sha:
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
  services-commerce: c8b66a98e2490617aec38ba5c8165dd9bd0a8f9b
purpose: Help staff locate a workspace sale and inspect its progress and outstanding balance.
supports:
  - JNY-COM-ORD-003
  - CAP-COM-ORD-010
  - CAP-COM-ORD-011
permission: commerce.orders.read
entry_from:
  - 'Orders and Inventory navigation, Orders'
exits_to:
  - '/console/{tenantId}/orders/{orderId}'
displays:
  - field: Order number
    source: 'DOM-COM-ORD-002 number, from listOrders'
  - field: Customer
    source: buyer name joined from CRM by listOrders; Not Available when CRM has none
  - field: Placed date
    source: DOM-COM-ORD-002 placed instant
  - field: Status
    source: 'DOM-COM-ORD-002 status, in the service''s own words'
  - field: Total
    source: DOM-COM-ORD-002 total in the order's currency
  - field: Balance due
    source: DOM-COM-ORD-002 money mirror balance; a dash when Accounting has supplied none
actions:
  - label: Find a sale by its number or purchasing party
    operation_id: listOrders
    permission: commerce.orders.read
    confirm: false
  - label: 'Limit results by lifecycle, collection, sale kind and placement interval'
    operation_id: listOrders
    permission: commerce.orders.read
    confirm: false
  - label: Move between result pages
    operation_id: listOrders
    permission: commerce.orders.read
    confirm: false
  - label: View sale details
    operation_id: getOrder
    permission: commerce.orders.read
    confirm: false
states:
  - loading
  - empty
  - error
  - read-only
validation:
  - BR-CAP-COM-ORD-010-01
  - BR-CAP-COM-ORD-010-02
  - BR-CAP-COM-ORD-010-03
  - BR-CAP-COM-ORD-010-04
  - BR-CAP-COM-ORD-010-07
patterns:
  - 'design-system Table, Select, Input (date) and Empty components'
  - debounced search (three hundred milliseconds)
  - cursor paging through the service's continuation cursor
  - Standard layout
  - RequirePermission guard on the page
component: components/commerce/orders/orders-list-screen.tsx
evidence:
  - >-
    react-console at baf6dae3: app/(console)/console/[tenantId]/orders/page.tsx;
    components/commerce/orders/orders-list-screen.tsx; lib/commerce/orders-list/*.ts;
    components/commerce/orders/__tests__.
  - 'services-commerce at c8b66a98: modules/orders/aws/api/orders.routes.ts (listOrders).'
controls: [TC-IAM-001, TC-IAM-002, TC-IAM-004, TC-IAM-005, TC-AZ-001, TC-AZ-002, TC-AZ-003, TC-AZ-004, TC-AZ-005, TC-AZ-006, TC-TEN-001, TC-TEN-002, TC-TEN-003, TC-TEN-004, TC-CRY-001, TC-DAT-001, TC-DAT-002, TC-DAT-003, TC-LOG-001, TC-LOG-002, TC-LOG-003, TC-LOG-004, TC-LOG-005, TC-PI-001, TC-PI-003, TC-PRV-001, TC-PRV-002]
---

# Orders list

## What the Screen Is For

Staff use this list to find a previously placed sale. Number or buyer search combines with status, money, classification and date filters. Results are ordered newest first.

## What It Shows and Lets People Do

Rows show number, customer, placement date, processing status, total and the latest known balance. Missing names and money figures have explicit placeholders. Debounced search and cursor navigation load matching records; selecting a row opens purchase detail.

## States and Errors

Initial loading and later refresh have different indicators. Empty workspace and unmatched-filter results have different messages. Service errors offer retry, and the page requires order-read authority.

## Patterns It Must Respect

The existing Standard page uses table, selection, date-input and empty-state components with a page permission guard. Amounts retain their sale currency, and voided balances follow the service result.
