---
id: FAS-COM-FUL-05
title: 'Historical Commerce Imports: Feature Acceptance Suite'
feature: FEAT-COM-FUL-05
product_area: commerce
module: fulfillment
revision: 1
status: proposed
product_intent: proposed
source_sha:
  services-commerce: c8b66a98e2490617aec38ba5c8165dd9bd0a8f9b
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
capabilities:
  - CAP-COM-FUL-020
scenarios:
  - title: 'Validation, application and source-key reconciliation form one import'
    kind: behaviour
    exercises:
      - CAP-COM-FUL-020
    relies_on:
      - ATS-COM-FUL-020-02
      - ATS-COM-FUL-020-07
    preconditions: Prepared store records have producer source keys and an authorized implementation identity.
    steps: >-
      Validate without writes, inspect impact, echo the digest to apply, run the batch and read back
      its source keys.
    expected: The reviewed job applies and the same source identities reconcile to the loaded records.
    negative: false
    data_needs: >-
      An isolated workspace with the records and identities specified by the case; each independent
      branch uses fresh records.
    provenance: test
    source:
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/design/tests/ATS-COM-FUL-020-load-a-workspace-s-rhythm-1-0-commerce-records-and-check.md#ATS-COM-FUL-020-02
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/design/tests/ATS-COM-FUL-020-load-a-workspace-s-rhythm-1-0-commerce-records-and-check.md#ATS-COM-FUL-020-07
      - >-
        services-commerce:modules/data-operations/tests/integration/services/jobs/data-jobs.integration.spec.js
    id: FAS-COM-FUL-05-01
    bound_to:
      - TST-COM-FUL-004
  - title: Imported stock uses the ordinary movement accounting
    kind: interaction
    exercises:
      - CAP-COM-FUL-020
      - CAP-COM-FUL-017
    relies_on:
      - ATS-COM-FUL-020-09
      - ATS-COM-FUL-017-02
    preconditions: 'Prepared warehouse, location and stock records identify a migrated SKU.'
    steps: >-
      Import twelve units with two damaged, read its original source key and inspect live movements
      and balances.
    expected: >-
      The opening stock has count and damage entries and ten available units; the ordinary ledger
      explains the imported balance.
    negative: false
    data_needs: >-
      An isolated workspace with the records and identities specified by the case; each independent
      branch uses fresh records.
    provenance: test
    source:
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/design/tests/ATS-COM-FUL-020-load-a-workspace-s-rhythm-1-0-commerce-records-and-check.md#ATS-COM-FUL-020-09
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/design/tests/ATS-COM-FUL-017-record-stock-that-comes-in-moves-and-goes-out.md#ATS-COM-FUL-017-02
      - >-
        services-commerce:modules/data-operations/tests/integration/services/operations/inventory-import.integration.spec.js
    id: FAS-COM-FUL-05-02
    bound_to:
      - TST-COM-FUL-007
  - title: Cancellation between batches retains the committed part of a load
    kind: lifecycle
    exercises:
      - CAP-COM-FUL-020
    relies_on:
      - ATS-COM-FUL-020-02
      - ATS-COM-FUL-020-05
    preconditions: An applied job has multiple batches and one batch has already committed.
    steps: >-
      Pause before the next batch, resume, cancel at a later batch boundary and inspect the job and
      source-key results.
    expected: >-
      Cancellation reports already committed records and prevents further uncommitted work without
      deleting history.
    negative: false
    data_needs: >-
      An isolated workspace with the records and identities specified by the case; each independent
      branch uses fresh records.
    provenance: proposed
    source:
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/design/tests/ATS-COM-FUL-020-load-a-workspace-s-rhythm-1-0-commerce-records-and-check.md#ATS-COM-FUL-020-02
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/design/tests/ATS-COM-FUL-020-load-a-workspace-s-rhythm-1-0-commerce-records-and-check.md#ATS-COM-FUL-020-05
    id: FAS-COM-FUL-05-03
    bound_to: []
  - title: Revoked submitter authority stops queued import work
    kind: permission
    exercises:
      - CAP-COM-FUL-020
    relies_on:
      - ATS-COM-FUL-020-01
      - ATS-COM-FUL-020-05
    preconditions: >-
      A submitted batch is queued and the submitting administrator subsequently loses record-write
      authority.
    steps: 'Deliver the batch after revocation, inspect the job, and separately try a portal submission.'
    expected: >-
      The job fails for revoked authority without applying the item; the portal identity cannot
      submit.
    negative: true
    data_needs: >-
      An isolated workspace with the records and identities specified by the case; each independent
      branch uses fresh records.
    provenance: proposed
    source:
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/design/tests/ATS-COM-FUL-020-load-a-workspace-s-rhythm-1-0-commerce-records-and-check.md#ATS-COM-FUL-020-01
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/design/tests/ATS-COM-FUL-020-load-a-workspace-s-rhythm-1-0-commerce-records-and-check.md#ATS-COM-FUL-020-05
    id: FAS-COM-FUL-05-04
    bound_to: []
  - title: Redelivery retains batch identity and rejects unreadable work
    kind: regression
    exercises:
      - CAP-COM-FUL-020
    relies_on:
      - ATS-COM-FUL-020-05
    preconditions: A queued authorized batch and an unreadable queue message are available.
    steps: 'Dispatch and deliver the valid batch twice, then deliver the unreadable message.'
    expected: >-
      The valid item applies once and is acknowledged on replay; unreadable work is left for
      dead-letter handling.
    negative: true
    data_needs: >-
      An isolated workspace with the records and identities specified by the case; each independent
      branch uses fresh records.
    provenance: test
    source:
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/design/tests/ATS-COM-FUL-020-load-a-workspace-s-rhythm-1-0-commerce-records-and-check.md#ATS-COM-FUL-020-05
      - >-
        services-commerce:modules/data-operations/tests/integration/services/queue/data-job-worker.integration.spec.js
    id: FAS-COM-FUL-05-05
    bound_to:
      - TST-COM-FUL-011
evidence:
  - repository: services-commerce
    paths:
      - modules/data-operations/tests/integration/services/jobs/data-jobs.integration.spec.js
      - >-
        modules/data-operations/tests/integration/services/operations/inventory-import.integration.spec.js
      - modules/data-operations/tests/integration/services/queue/data-job-worker.integration.spec.js
  - repository: rhythm-v2-docs
    paths:
      - >-
        specs/commerce/fulfillment/design/tests/ATS-COM-FUL-020-load-a-workspace-s-rhythm-1-0-commerce-records-and-check.md
---

# Historical Commerce Imports: Feature Acceptance Suite

## What the Feature Must Do as a Whole

Implementation staff validate an import, apply its reviewed impact and reconcile the retained source identities. The feature cases connect batch authority, partial progress, historical opening stock and replay handling.

## Interactions Between Capabilities

Historical stock opening calls the movement accounting used by ordinary stock work. Batch cancellation and revoked authority affect future application while preserving already committed records.

## Regression Record

| Revision | Change | Scenarios | Why |
|---|---|---|---|
| 1 | initial | All five cases | Establish cumulative feature acceptance from the landed capability and design corpus. |
