---
id: SCR-COM-ORD-002
title: Order 360
route: '/console/{tenantId}/orders/{orderId}'
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: Present the complete purchase and the next actions available for its state and caller authority.
supports:
  - JNY-COM-ORD-001
  - JNY-COM-ORD-002
  - JNY-COM-ORD-003
  - JNY-COM-ORD-004
  - JNY-COM-ORD-005
  - CAP-COM-ORD-007
  - CAP-COM-ORD-008
  - CAP-COM-ORD-010
  - CAP-COM-ORD-013
  - CAP-COM-ORD-014
  - CAP-COM-ORD-015
  - CAP-COM-ORD-016
permission: commerce.orders.read
entry_from:
  - '/console/{tenantId}/orders'
  - '/console/{tenantId}/crm/contacts/{id}/orders/{orderId} (the same screen in the contact context)'
  - '/console/{tenantId}/crm/contacts/{id}/orders/new (after placement)'
  - Contact 360 Orders tab
exits_to:
  - Take payment dialog
  - Void order dialog
  - Cancel lines dialog
  - Return items dialog
  - Accounting invoice settlement (Receive Payment)
  - Contact 360 of the buyer
displays:
  - field: Summary and processing state
    source: 'getOrder (status, billing state, payment window, totals)'
  - field: Parties and status timeline
    source: 'getOrder (buyer, bill-to, ship-to, events); buyer name from CRM'
  - field: 'Items with discounts, promotion names, tax and delivery errors'
    source: getOrder lines and pricing snapshot
  - field: 'Transactions (invoices, payments, memos, refunds) and money'
    source: getOrder invoices and attempts; money mirror; a message when Accounting has not supplied figures yet
  - field: Entitlements
    source: none in live mode (the live read supplies no grants)
  - field: Fulfilment obligations and reservations
    source: obligations of the order (fulfilment module) and the hold and claim ledger
  - field: 'Changes (cancellations, amendments, returns)'
    source: 'listCancellations, listAmendments, listReturns'
  - field: 'Shipments, offers and audit'
    source: 'shipments (fulfilment module), promotion redemptions (catalog module), order events'
actions:
  - label: Take Payment
    operation_id: tenderOrder
    permission: commerce.orders.tender
    confirm: true
  - label: 'Receive Payment (terms invoice, in Accounting)'
    operation_id: 'none: links to Accounting invoice settlement'
    permission: accounting payments receive
    confirm: false
  - label: Void Order
    operation_id: voidOrder
    permission: commerce.orders.void
    confirm: true
  - label: Cancel Lines
    operation_id: requestCancellation
    permission: commerce.cancellations.create
    confirm: true
  - label: Return Items
    operation_id: requestReturn
    permission: commerce.returns.create
    confirm: true
  - label: Amend (hidden live)
    operation_id: requestAmendment
    permission: commerce.amendments.create
    confirm: true
  - label: Approve the cancellation shown on its card
    operation_id: approveCancellation
    permission: commerce.cancellations.approve
    confirm: false
  - label: Approve the amendment shown on its card
    operation_id: approveAmendment
    permission: commerce.amendments.approve
    confirm: false
  - label: Approve the return shown on its card
    operation_id: approveReturn
    permission: commerce.returns.approve
    confirm: false
states:
  - loading
  - error
  - read-only
  - inactive
validation:
  - BR-CAP-COM-ORD-007-14
  - BR-CAP-COM-ORD-008-10
  - BR-CAP-COM-ORD-010-05
  - BR-CAP-COM-ORD-010-08
  - BR-CAP-COM-ORD-010-09
  - BR-CAP-COM-ORD-013-13
patterns:
  - 'record view engine with the Order 360 view definition (summary, header actions, tabs)'
  - 'design-system Dialog, Button and RecordScreenProblem states'
  - 'Accounting''s settle-invoices screen linked, never copied'
  - 'purpose-built screen, no configurable layout (no custom fields)'
component: components/console/order/order-360-live.tsx
evidence:
  - >-
    react-console at baf6dae3: app/(console)/console/[tenantId]/orders/[orderId]/page.tsx,
    crm/contacts/[id]/orders/[orderId]/page.tsx; components/console/order/*.tsx;
    components/record-views/cards/order/*.tsx; lib/record-views/views/order-360.json;
    lib/commerce/order-flows/live.ts, live-order.ts, payment-rules.ts.
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-PI-005, TC-PRV-001, TC-PRV-002]
---

# Order 360

## What the Screen Is For

Staff inspect purchased items, financial position, delivery and later changes here. The same record view is hosted directly under Orders and within a contact's context.

## What It Shows and Lets People Do

Header actions follow service facts and permissions. Payment is offered for an eligible outstanding pay-now sale; placed orders can be voided, and terms invoices link to Accounting settlement. Accepted purchases can offer cancellation and return. Tabs expose items, transactions, work, changes, shipping, offers and history, but live entitlements are empty and amendment is hidden. Baseline sample actions do not establish live writes.

## States and Errors

Loading, missing records, denied access, unconfigured service, missing view definition and failed reads have distinct feedback. Completed payment removes payment actions. Approvals from change cards submit a fixed explanation rather than collecting a person's reason.

## Patterns It Must Respect

The record view engine renders the purpose-built order definition. Accounting supplies card entry and invoice settlement. Neither detail page applies a page permission guard; the backend read determines access and the screen displays refusal.
