---
id: SCR-COM-FUL-001
title: Operations
route: '/console/{tenantId}/orders/operations'
surface: console
product_area: commerce
module: fulfillment
revision: 1
status: draft
design_intent: proposed
implementation_evidence: observed
inference: []
source_sha:
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
  services-commerce: c8b66a98e2490617aec38ba5c8165dd9bd0a8f9b
purpose: >-
  Help staff investigate grouped order problems and perform permitted
  interventions with a retained reason.
supports:
  - JNY-COM-FUL-002
  - JNY-COM-FUL-005
  - CAP-COM-FUL-008
  - CAP-COM-FUL-005
  - CAP-COM-FUL-006
  - CAP-COM-FUL-007
permission: orders.operations.view (commerce.exceptions.read)
entry_from:
  - The Orders area of the console navigation.
exits_to:
  - 'The order of the finding''s subject, through the contact''s order view.'
displays:
  - field: >-
      Kind tiles including the open and acknowledged count of each console kind,
      and All Exceptions.
    source: summarizeOperationalExceptions
  - field: >-
      Subject, kind, since, customer, amount, participant, reason and age bucket
      per finding.
    source: 'listOperationalExceptions, completed from the order read'
  - field: An empty state once nothing is open.
    source: summarizeOperationalExceptions
actions:
  - label: Acknowledge
    operation_id: acknowledgeOperationalException
    permission: orders.operations.acknowledge (commerce.exceptions.acknowledge)
    confirm: true
  - label: Resolve
    operation_id: resolveOperationalException
    permission: orders.operations.resolve (commerce.exceptions.resolve)
    confirm: true
  - label: Review Enforcement
    operation_id: resolveEnforcement
    permission: orders.enforcements.resolve (commerce.enforcements.resolve)
    confirm: true
  - label: Retry Billing (a failed adjustment)
    operation_id: retryFinancialAdjustment
    permission: orders.adjustments.retry (commerce.adjustments.retry)
    confirm: true
  - label: Re-Authorize
    operation_id: reauthorizeObligation
    permission: orders.obligations.reauthorize (commerce.obligations.reauthorize)
    confirm: true
  - label: Override Gate
    operation_id: overrideObligationGate
    permission: orders.operations.override (commerce.obligations.override)
    confirm: true
  - label: Release Hold
    operation_id: releaseObligationHold
    permission: orders.obligations.hold (commerce.obligations.hold)
    confirm: true
  - label: 'Retry Tender, Reconcile Mirror, Void Label, Mark Return Received'
    operation_id: >-
      none: no service route; the action says it is unavailable and sends
      nothing
    permission: orders.operations.intervene
    confirm: false
states:
  - empty
  - loading
  - error
  - read-only
validation:
  - BR-CAP-COM-FUL-008-03
  - BR-CAP-COM-FUL-008-04
  - BR-CAP-COM-FUL-008-06
  - BR-CAP-COM-FUL-008-07
  - BR-CAP-COM-FUL-008-08
  - BR-CAP-COM-FUL-008-09
  - BR-CAP-COM-FUL-008-10
  - BR-CAP-COM-FUL-005-02
patterns:
  - Full layout (PageLayout width full)
  - 'Record Explorer with views, columns, row actions and export'
  - Kind tiles as view switches
  - Empty state (design-system Empty)
  - One intervention dialog with a required reason or evidence
  - Toasts for unavailable actions
component: components/commerce/operations/operations-screen.tsx
evidence:
  - >-
    react-console at baf6dae3:
    app/(console)/console/[tenantId]/orders/operations/page.tsx;
    components/commerce/operations/*.tsx; lib/commerce/operations/*.ts;
    lib/authz/backend-aliases.ts.
  - >-
    react-console at baf6dae382d6f41dce976c7f848667ccc37e076f:
    lib/api/commerce.ts:COMMERCE_LIVE; lib/config/mock-mode.ts:resolveMockMode;
    app/(console)/console/[tenantId]/orders/[orderId]/page.tsx.
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-CRY-001, TC-LOG-001, TC-LOG-002, TC-LOG-003, TC-LOG-004, TC-PI-001, TC-PI-003]
---

# Operations

## What the Screen Is For

Help staff investigate grouped order problems and perform permitted interventions with a retained reason.

## What It Shows and Lets People Do

Tiles combine open and acknowledged counts. The explorer reads findings, enriches their order facts and offers actions by kind, subject and permission. Resolve sends the entered evidence as both reason and resolution. The browser searches and sorts a collection capped at 1,000 findings.

## States and Errors

Live mode uses the Commerce service by default. Explicit mock or preview mode uses sample adapters where deployment settings permit it; customer production deployments refuse mock mode.

Loading and failed reads use the built screen states. Missing action authority prevents intervention, while unsupported actions explain their unavailability and send no request. A reload after action can remove a finding that changed elsewhere.

## Patterns It Must Respect

Keep the full-width PageLayout, RecordExplorer, kind selectors, Empty component and shared intervention dialog used by the current component. There is no bulk intervention flow.
