---
id: FAS-COM-ORD-01
title: Purchase preparation
feature: FEAT-COM-ORD-01
product_area: commerce
module: orders
revision: 1
status: proposed
product_intent: proposed
source_sha:
  services-commerce: c8b66a98e2490617aec38ba5c8165dd9bd0a8f9b
  macroservice-libraries: 54536a441935c6e09fdb7f96f0bec71c52ba4e03
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
capabilities:
  - CAP-COM-ORD-001
  - CAP-COM-ORD-002
  - CAP-COM-ORD-003
  - CAP-COM-ORD-004
scenarios:
  - id: FAS-COM-ORD-01-01
    title: Shopping reaches a saved review
    kind: behaviour
    exercises:
      - CAP-COM-ORD-001
      - CAP-COM-ORD-002
      - CAP-COM-ORD-003
    relies_on:
      - ATS-COM-ORD-001-06
      - ATS-COM-ORD-002-01
      - ATS-COM-ORD-003-01
    preconditions: A member has a sellable shirt and the store’s active policy.
    steps:
      - do: 'Open the cart, add a shirt, change its quantity and preview.'
        provenance: proposed
        source:
          - >-
            services-commerce:modules/checkout/tests/e2e/checkouts.e2e.spec.js#adds after the last,
            changes the intent and clears what was advised, removes, each bumping the version
          - >-
            services-commerce:modules/checkout/tests/e2e/checkouts.e2e.spec.js#stores the price snapshot
            on the checkout, with the totals, and leaves a previewed event
    expected: The cart retains its policy and a saved preview for the changed quantity.
    negative: false
    data_needs: 'An isolated workspace with the records, permissions and controlled outcomes named above.'
    bound_to: []
    provenance: proposed
    source:
      - >-
        services-commerce:modules/checkout/tests/e2e/checkouts.e2e.spec.js#adds after the last, changes
        the intent and clears what was advised, removes, each bumping the version
      - >-
        services-commerce:modules/checkout/tests/e2e/checkouts.e2e.spec.js#stores the price snapshot on
        the checkout, with the totals, and leaves a previewed event
    expected_provenance: proposed
    expected_source:
      - >-
        services-commerce:modules/checkout/tests/e2e/checkouts.e2e.spec.js#adds after the last, changes
        the intent and clears what was advised, removes, each bumping the version
      - >-
        services-commerce:modules/checkout/tests/e2e/checkouts.e2e.spec.js#stores the price snapshot on
        the checkout, with the totals, and leaves a previewed event
    candidate_bindings:
      - TST-COM-ORD-027
    binding_gap: FND-COM-ORD-079
  - id: FAS-COM-ORD-01-02
    title: A code changes the reviewed price without spending a use
    kind: interaction
    exercises:
      - CAP-COM-ORD-001
      - CAP-COM-ORD-003
      - CAP-COM-ORD-004
    relies_on:
      - ATS-COM-ORD-003-01
      - ATS-COM-ORD-004-06
    preconditions: An open cart qualifies for the fixture discount code.
    steps:
      - do: 'Apply the code, preview twice and inspect the counters.'
        provenance: proposed
        source:
          - ATS-COM-ORD-003-01
          - ATS-COM-ORD-004-06
    expected: Both previews show the discounted amount while the use counter remains unchanged.
    negative: false
    data_needs: 'An isolated workspace with the records, permissions and controlled outcomes named above.'
    bound_to: []
    provenance: proposed
    source:
      - ATS-COM-ORD-003-01
      - ATS-COM-ORD-004-06
    expected_provenance: proposed
    expected_source:
      - ATS-COM-ORD-003-01
      - ATS-COM-ORD-004-06
  - id: FAS-COM-ORD-01-03
    title: Abandonment ends shopping and returns a hold
    kind: lifecycle
    exercises:
      - CAP-COM-ORD-001
      - CAP-COM-ORD-003
    relies_on:
      - ATS-COM-ORD-001-08
      - ATS-COM-ORD-001-11
    preconditions: A buyer has a reserved booth in an open cart.
    steps:
      - do: 'Preview, abandon and attempt another item change.'
        provenance: proposed
        source:
          - ATS-COM-ORD-001-08
          - ATS-COM-ORD-001-11
    expected: The hold is returned and the abandoned cart refuses changes.
    negative: false
    data_needs: 'An isolated workspace with the records, permissions and controlled outcomes named above.'
    bound_to: []
    provenance: proposed
    source:
      - ATS-COM-ORD-001-08
      - ATS-COM-ORD-001-11
    expected_provenance: proposed
    expected_source:
      - ATS-COM-ORD-001-08
      - ATS-COM-ORD-001-11
  - id: FAS-COM-ORD-01-04
    title: Read access does not permit shopping changes
    kind: permission
    exercises:
      - CAP-COM-ORD-001
      - CAP-COM-ORD-002
      - CAP-COM-ORD-004
      - CAP-COM-ORD-011
    relies_on:
      - ATS-COM-ORD-011-02
      - ATS-COM-ORD-004-11
    preconditions: A reader and another member can address the cart’s workspace.
    steps:
      - do: 'Read as the reader, try an edit and try another member’s promotion entry.'
        provenance: proposed
        source:
          - ATS-COM-ORD-011-02
          - ATS-COM-ORD-004-11
    expected: Only the authorized read succeeds and the stored cart remains unchanged.
    negative: true
    data_needs: 'An isolated workspace with the records, permissions and controlled outcomes named above.'
    bound_to: []
    provenance: proposed
    source:
      - ATS-COM-ORD-011-02
      - ATS-COM-ORD-004-11
    expected_provenance: proposed
    expected_source:
      - ATS-COM-ORD-011-02
      - ATS-COM-ORD-004-11
  - id: FAS-COM-ORD-01-05
    title: A long process reference cannot break review
    kind: regression
    exercises:
      - CAP-COM-ORD-001
      - CAP-COM-ORD-003
      - CAP-COM-ORD-012
    relies_on:
      - ATS-COM-ORD-003-01
      - ATS-COM-ORD-001-13
    preconditions: An open cart uses a five-hundred-character process reference.
    steps:
      - do: Preview and capture the application envelope.
        provenance: proposed
        source:
          - ATS-COM-ORD-001-13
          - ATS-COM-ORD-003-01
    expected: The cart retains the reference and review succeeds without exceeding the application contract.
    negative: true
    data_needs: 'An isolated workspace with the records, permissions and controlled outcomes named above.'
    bound_to: []
    provenance: proposed
    source:
      - ATS-COM-ORD-001-13
      - ATS-COM-ORD-003-01
    expected_provenance: proposed
    expected_source:
      - ATS-COM-ORD-001-13
      - ATS-COM-ORD-003-01
evidence:
  - provenance: documented
    source: 'rhythm-v2-docs:specs/commerce/orders/planning/features/FEAT-COM-ORD-01-building-a-cart.md'
  - provenance: observed
    source:
      - >-
        rhythm-v2-docs:specs/commerce/orders/planning/capabilities/CAP-COM-ORD-001-open-a-cart-for-a-buyer-and-fill-it-with-what-they-want.md
      - >-
        rhythm-v2-docs:specs/commerce/orders/planning/capabilities/CAP-COM-ORD-002-decide-which-checkout-policy-governs-a-cart-and-keep-it-on.md
      - >-
        rhythm-v2-docs:specs/commerce/orders/planning/capabilities/CAP-COM-ORD-003-see-the-priced-order-and-everything-that-would-stop-it.md
      - >-
        rhythm-v2-docs:specs/commerce/orders/planning/capabilities/CAP-COM-ORD-004-redeem-promotion-codes-on-a-cart.md
---

# Purchase preparation: Feature Acceptance Suite

## What the Feature Must Do as a Whole

Purchase preparation joins cart contents, policy selection, pricing and promotion advice. The suite asks whether a buyer can reach a usable review and whether preparation leaves resources available for later placement.

## Interactions Between Capabilities

Cart edits feed the next price review, and policy selection constrains the choices shown there. Promotion advice and resource holds cross those boundaries. The combined edit-and-preview chain remains proposed because the registered cases use different carts.

## Regression Record

| Revision | Change | Scenario | Why |
|---|---|---|---|
| 1 | initial | all | Establish the feature’s combined outcomes from the pinned specification and executable evidence. |
