---
id: FAS-COM-CAT-02
title: 'Catalog Presentation: Feature Acceptance Suite'
feature: FEAT-COM-CAT-02
product_area: commerce
module: catalog
revision: 1
status: proposed
product_intent: proposed
source_sha:
  services-commerce: c8b66a98e2490617aec38ba5c8165dd9bd0a8f9b
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
capabilities:
  - CAP-COM-CAT-005
  - CAP-COM-CAT-006
  - CAP-COM-CAT-007
  - CAP-COM-CAT-008
  - CAP-COM-CAT-009
scenarios:
  - id: FAS-COM-CAT-02-01
    title: The merchandise screen presents the saved offering
    kind: behaviour
    exercises:
      - CAP-COM-CAT-006
      - CAP-COM-CAT-007
    relies_on:
      - ATS-COM-CAT-006-09
      - ATS-COM-CAT-007-01
    preconditions: A fresh mock workspace supports merchandise creation.
    steps:
      - do: 'Create an item with storefront fields, read its view, change its price and save.'
        provenance: test
        source:
          - 'react-console:e2e/mock/merchandise.mock.spec.ts'
    expected: The item view displays the saved storefront amount and updated price.
    negative: false
    data_needs: >-
      A run-owned workspace, named fixture products and independent caller grants; deterministic
      clock for dated cases.
    bound_to:
      - TST-COM-CAT-007
    provenance: test
    source:
      - 'react-console:e2e/mock/merchandise.mock.spec.ts'
    assertions:
      - expect: The item view displays the saved storefront amount and updated price.
        provenance: test
        source:
          - 'react-console:e2e/mock/merchandise.mock.spec.ts'
  - id: FAS-COM-CAT-02-02
    title: Shelf selection and publication determine the public offering
    kind: interaction
    exercises:
      - CAP-COM-CAT-005
      - CAP-COM-CAT-006
      - CAP-COM-CAT-007
      - CAP-COM-CAT-008
    relies_on:
      - ATS-COM-CAT-005-02
      - ATS-COM-CAT-006-02
      - ATS-COM-CAT-007-03
      - ATS-COM-CAT-008-01
    preconditions: An active store admits Books and Apparel; active merchandise has listings in both.
    steps:
      - do: >-
          Move an item between shelves, narrow the store assortment, switch its listing to unlisted
          and then draft, and retire another product.
        provenance: proposed
        source:
          - >-
            rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-005-arrange-products-onto-shelves.md#ATS-COM-CAT-005-02
          - >-
            rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-006-present-a-product-in-the-store-and-publish-it.md#ATS-COM-CAT-006-02
          - >-
            rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-007-describe-merchandise-its-variants-and-whether-it-can-be-sold.md#ATS-COM-CAT-007-03
          - >-
            rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-008-show-shoppers-what-a-store-sells.md#ATS-COM-CAT-008-01
    expected: >-
      Public lists and pages reflect the saved shelf, listing and product states without exposing
      excluded products.
    negative: false
    data_needs: >-
      A run-owned workspace, named fixture products and independent caller grants; deterministic
      clock for dated cases.
    bound_to: []
    provenance: proposed
    source:
      - >-
        rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-005-arrange-products-onto-shelves.md#ATS-COM-CAT-005-02
      - >-
        rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-006-present-a-product-in-the-store-and-publish-it.md#ATS-COM-CAT-006-02
      - >-
        rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-007-describe-merchandise-its-variants-and-whether-it-can-be-sold.md#ATS-COM-CAT-007-03
      - >-
        rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-008-show-shoppers-what-a-store-sells.md#ATS-COM-CAT-008-01
    assertions:
      - expect: >-
          Public lists and pages reflect the saved shelf, listing and product states without
          exposing excluded products.
        provenance: proposed
        source:
          - >-
            rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-005-arrange-products-onto-shelves.md#ATS-COM-CAT-005-02
          - >-
            rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-006-present-a-product-in-the-store-and-publish-it.md#ATS-COM-CAT-006-02
          - >-
            rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-007-describe-merchandise-its-variants-and-whether-it-can-be-sold.md#ATS-COM-CAT-007-03
          - >-
            rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-008-show-shoppers-what-a-store-sells.md#ATS-COM-CAT-008-01
  - id: FAS-COM-CAT-02-03
    title: Digital delivery follows the retained file and grant
    kind: lifecycle
    exercises:
      - CAP-COM-CAT-006
      - CAP-COM-CAT-007
      - CAP-COM-CAT-009
    relies_on:
      - ATS-COM-CAT-006-04
      - ATS-COM-CAT-007-01
      - ATS-COM-CAT-009-01
      - ATS-COM-CAT-009-02
    preconditions: Digital merchandise has a privately retained file and a finite grant belonging to a buyer.
    steps:
      - do: >-
          Publish the item, download and retry a key, replace its file, request the detached file
          and exhaust the remaining grant with new keys.
        provenance: proposed
        source:
          - >-
            rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-006-present-a-product-in-the-store-and-publish-it.md#ATS-COM-CAT-006-04
          - >-
            rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-007-describe-merchandise-its-variants-and-whether-it-can-be-sold.md#ATS-COM-CAT-007-01
          - >-
            rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-009-deliver-the-files-a-buyer-is-entitled-to.md#ATS-COM-CAT-009-01
          - >-
            rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-009-deliver-the-files-a-buyer-is-entitled-to.md#ATS-COM-CAT-009-02
    expected: >-
      The retained file is deliverable, retries preserve capacity, the detached file is absent and
      exhausted new requests refuse.
    negative: true
    data_needs: >-
      A run-owned workspace, named fixture products and independent caller grants; deterministic
      clock for dated cases.
    bound_to: []
    provenance: proposed
    source:
      - >-
        rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-006-present-a-product-in-the-store-and-publish-it.md#ATS-COM-CAT-006-04
      - >-
        rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-007-describe-merchandise-its-variants-and-whether-it-can-be-sold.md#ATS-COM-CAT-007-01
      - >-
        rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-009-deliver-the-files-a-buyer-is-entitled-to.md#ATS-COM-CAT-009-01
      - >-
        rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-009-deliver-the-files-a-buyer-is-entitled-to.md#ATS-COM-CAT-009-02
    assertions:
      - expect: >-
          The retained file is deliverable, retries preserve capacity, the detached file is absent
          and exhausted new requests refuse.
        provenance: proposed
        source:
          - >-
            rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-006-present-a-product-in-the-store-and-publish-it.md#ATS-COM-CAT-006-04
          - >-
            rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-007-describe-merchandise-its-variants-and-whether-it-can-be-sold.md#ATS-COM-CAT-007-01
          - >-
            rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-009-deliver-the-files-a-buyer-is-entitled-to.md#ATS-COM-CAT-009-01
          - >-
            rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-009-deliver-the-files-a-buyer-is-entitled-to.md#ATS-COM-CAT-009-02
  - id: FAS-COM-CAT-02-04
    title: Catalog inspection does not grant product preparation
    kind: permission
    exercises:
      - CAP-COM-CAT-005
      - CAP-COM-CAT-006
      - CAP-COM-CAT-007
      - CAP-COM-CAT-008
      - CAP-COM-CAT-009
    relies_on:
      - ATS-COM-CAT-005-06
      - ATS-COM-CAT-006-07
      - ATS-COM-CAT-007-08
      - ATS-COM-CAT-008-06
      - ATS-COM-CAT-009-01
    preconditions: 'A catalog reader, another member and an anonymous visitor use separate contexts.'
    steps:
      - do: >-
          Read the public offering, attempt protected writes as the reader and request another
          member’s download.
        provenance: proposed
        source:
          - >-
            rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-005-arrange-products-onto-shelves.md#ATS-COM-CAT-005-06
          - >-
            rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-006-present-a-product-in-the-store-and-publish-it.md#ATS-COM-CAT-006-07
          - >-
            rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-007-describe-merchandise-its-variants-and-whether-it-can-be-sold.md#ATS-COM-CAT-007-08
          - >-
            rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-008-show-shoppers-what-a-store-sells.md#ATS-COM-CAT-008-06
          - >-
            rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-009-deliver-the-files-a-buyer-is-entitled-to.md#ATS-COM-CAT-009-01
    expected: Public browsing remains available while preparation writes and foreign downloads refuse.
    negative: true
    data_needs: >-
      A run-owned workspace, named fixture products and independent caller grants; deterministic
      clock for dated cases.
    bound_to: []
    provenance: proposed
    source:
      - >-
        rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-005-arrange-products-onto-shelves.md#ATS-COM-CAT-005-06
      - >-
        rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-006-present-a-product-in-the-store-and-publish-it.md#ATS-COM-CAT-006-07
      - >-
        rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-007-describe-merchandise-its-variants-and-whether-it-can-be-sold.md#ATS-COM-CAT-007-08
      - >-
        rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-008-show-shoppers-what-a-store-sells.md#ATS-COM-CAT-008-06
      - >-
        rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-009-deliver-the-files-a-buyer-is-entitled-to.md#ATS-COM-CAT-009-01
    assertions:
      - expect: Public browsing remains available while preparation writes and foreign downloads refuse.
        provenance: proposed
        source:
          - >-
            rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-005-arrange-products-onto-shelves.md#ATS-COM-CAT-005-06
          - >-
            rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-006-present-a-product-in-the-store-and-publish-it.md#ATS-COM-CAT-006-07
          - >-
            rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-007-describe-merchandise-its-variants-and-whether-it-can-be-sold.md#ATS-COM-CAT-007-08
          - >-
            rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-008-show-shoppers-what-a-store-sells.md#ATS-COM-CAT-008-06
          - >-
            rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-009-deliver-the-files-a-buyer-is-entitled-to.md#ATS-COM-CAT-009-01
  - id: FAS-COM-CAT-02-05
    title: A replacement image keeps the retained gallery identity
    kind: regression
    exercises:
      - CAP-COM-CAT-006
      - CAP-COM-CAT-007
    relies_on:
      - ATS-COM-CAT-006-06
      - ATS-COM-CAT-006-09
      - ATS-COM-CAT-007-01
    preconditions: A merchandise item has a listing with two prepared gallery images.
    steps:
      - do: >-
          Replace one listing image without changing the other, read both identities and inspect the
          merchandise view.
        provenance: proposed
        source:
          - >-
            rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-006-present-a-product-in-the-store-and-publish-it.md#ATS-COM-CAT-006-06
          - >-
            rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-007-describe-merchandise-its-variants-and-whether-it-can-be-sold.md#ATS-COM-CAT-007-13
    expected: >-
      The retained image keeps its identity and the replaced image is detached; the item stays
      associated with the same listing.
    negative: false
    data_needs: >-
      A run-owned workspace, named fixture products and independent caller grants; deterministic
      clock for dated cases.
    bound_to: []
    provenance: proposed
    source:
      - >-
        rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-006-present-a-product-in-the-store-and-publish-it.md#ATS-COM-CAT-006-06
      - >-
        rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-007-describe-merchandise-its-variants-and-whether-it-can-be-sold.md#ATS-COM-CAT-007-13
    assertions:
      - expect: >-
          The retained image keeps its identity and the replaced image is detached; the item stays
          associated with the same listing.
        provenance: proposed
        source:
          - >-
            rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-006-present-a-product-in-the-store-and-publish-it.md#ATS-COM-CAT-006-06
          - >-
            rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-007-describe-merchandise-its-variants-and-whether-it-can-be-sold.md#ATS-COM-CAT-007-13
evidence:
  - >-
    rhythm-v2-docs:specs/commerce/catalog/planning/capabilities/CAP-COM-CAT-005-arrange-products-onto-shelves.md#CAP-COM-CAT-005
  - >-
    rhythm-v2-docs:specs/commerce/catalog/planning/capabilities/CAP-COM-CAT-006-present-a-product-in-the-store-and-publish-it.md#CAP-COM-CAT-006
  - >-
    rhythm-v2-docs:specs/commerce/catalog/planning/capabilities/CAP-COM-CAT-007-describe-merchandise-its-variants-and-whether-it-can-be-sold.md#CAP-COM-CAT-007
  - >-
    rhythm-v2-docs:specs/commerce/catalog/planning/capabilities/CAP-COM-CAT-008-show-shoppers-what-a-store-sells.md#CAP-COM-CAT-008
  - >-
    rhythm-v2-docs:specs/commerce/catalog/planning/capabilities/CAP-COM-CAT-009-deliver-the-files-a-buyer-is-entitled-to.md#CAP-COM-CAT-009
---

# Catalog Presentation: Feature Acceptance Suite

## What the Feature Must Do as a Whole

The merchandise screen presents the saved offering. The suite follows changes through the feature’s saved configuration, assessments and retained outcomes. It combines the detailed capability scenarios into customer-visible checks and keeps unbound chains proposed.

## Interactions Between Capabilities

Shelf selection and publication determine the public offering. Each interaction checks both the changed input and the dependent outcome; an isolated capability result alone is insufficient. Lifecycle and permission cases revisit the same boundary after a state or authority change.

## Regression Record

| Revision | Change | Scenario | Why |
|---|---|---|---|
| 1 | initial | all | Establish cumulative coverage from the landed feature and capability contracts. |
