---
id: CAP-COM-CAT-018
title: Preview a promotion against a sample cart
feature: FEAT-COM-CAT-04
product_area: commerce
module: catalog
revision: 1
status: draft
product_intent: proposed
implementation_evidence: partially-observed
source_sha:
  services-commerce: c8b66a98e2490617aec38ba5c8165dd9bd0a8f9b
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
intent_sources:
  - >-
    services-commerce:docs/milestones/COMM-M1-set-up-what-you-sell.md#D-REC-3
    (to confirm)
purpose: >-
  Staff evaluate sample discount outcomes without creating a sale or consuming
  promotion capacity.
outcomes:
  - Customer customer staff see an identical outcome a purchaser would see.
  - Trying a promotion does not consumes a use or leaves data behind.
concepts:
  - CON-COM-CAT-005
actors:
  - ACT-COM-002
  - ACT-COM-001
  - ACT-COM-004
surfaces:
  - console
  - api
permissions:
  - key: commerce.promotions.read
    where_checked: api
    scope: tenant
rules:
  - id: BR-CAP-COM-CAT-018-01
    proved_by: [ATS-COM-CAT-016-14, ATS-COM-CAT-018-01, TST-COM-CAT-093]
    statement: >-
      For tested sample carts, staff preview shares checkout assessment and
      returns matching line amounts, discounts and explanations.
    kind: calculation
    enforced_at:
      - service
    must_prove: true
    provenance: test
    source: >-
      services-commerce:modules/promotions/tests/e2e/promotion-previews.e2e.spec.js#is,
      line for line and total for total, what the real checkout preview answers
    origin: none
  - id: BR-CAP-COM-CAT-018-02
    proved_by: [ATS-COM-CAT-018-02]
    statement: >-
      Preview reads parts and criteria through shared candidate resolution,
      including selected automatic drafts, but provides no rated shipping
      charge.
    kind: policy
    enforced_at:
      - service
    must_prove: true
    provenance: observed
    source: >-
      services-commerce:modules/promotions/services/previews/promotion-previews.ts:includingPromotions
    origin: none
  - id: BR-CAP-COM-CAT-018-03
    proved_by: [ATS-COM-CAT-016-14, ATS-COM-CAT-018-03, TST-COM-CAT-093, TST-COM-CAT-116]
    statement: >-
      Staff preview creates no checkout, item, event, evaluation, redemption or
      reservation and consumes no promotion usage.
    kind: invariant
    enforced_at:
      - service
    must_prove: true
    provenance: test
    source: >-
      services-commerce:modules/promotions/tests/e2e/promotion-previews.e2e.spec.js#opens
      no checkout and writes no item, event, evaluation, redemption, reservation
      or order
    origin: none
  - id: BR-CAP-COM-CAT-018-04
    proved_by: [ATS-COM-CAT-018-04, TST-COM-CAT-116]
    statement: >-
      An explicitly included draft or paused promotion is assessed as active
      during preview.
    kind: policy
    enforced_at:
      - service
    must_prove: true
    provenance: test
    source: >-
      services-commerce:modules/promotions/tests/integration/services/previews/promotion-previews.integration.spec.js#judges
      a draft as if active only when it is named: $80.00 without, $72.00 with
    origin: none
  - id: BR-CAP-COM-CAT-018-05
    proved_by: []
    statement: >-
      Preview without a buyer uses anonymous Standard pricing, accepts an
      assessment instant and reports totals before shipping and tax.
    kind: policy
    enforced_at:
      - service
    must_prove: false
    provenance: test
    source: >-
      services-commerce:modules/promotions/tests/integration/services/previews/promotion-previews.integration.spec.js#judges
      at the instant asked: a promotion not yet open applies to nothing before
      it opens and takes 10 % after (the member’s standing, read as of then, has
      lapsed, so the Standard price)
    origin: none
  - id: BR-CAP-COM-CAT-018-06
    proved_by: [ATS-COM-CAT-018-05, TST-COM-CAT-093]
    statement: >-
      Only console callers with promotion-read permission may preview, and empty
      carts or unsupported fields, policies and included promotions are refused.
    kind: permission
    enforced_at:
      - api
    must_prove: true
    provenance: test
    source: >-
      services-commerce:modules/promotions/tests/e2e/promotion-previews.e2e.spec.js#refuses
      a portal member, 403
    origin: none
scenarios:
  - id: SC-CAP-COM-CAT-018-01
    given: >-
      The guide has an eighty-dollar Member price and a combinable quarter-off
      code
    when: Preview its sample cart as that member
    then: The pre-tax result is sixty dollars with twenty dollars discounted
    provenance: test
    source: >-
      services-commerce:modules/promotions/tests/e2e/promotion-previews.e2e.spec.js#takes
      25 % off the Member price: $80.00 less $20.00 is $60.00
depends_on:
  - CAP-COM-CAT-016
related:
  - CAP-COM-CAT-014
journeys:
  - JNY-COM-CAT-004
evidence:
  - >-
    Pinned service inputs:
    modules/promotions/aws/api/promotion-previews.routes.ts;
    services/previews/**; tests (previews e2e, integration, mapper)
  - >-
    Pinned console inputs: components/commerce/promotions/test-panel.tsx,
    lib/commerce/promotions/__tests__/{preview-selling,test-panel-subjects}.test.ts
controls: [TC-AZ-001, TC-AZ-002, TC-AZ-003, TC-AZ-004, TC-AZ-006, TC-TEN-001, TC-TEN-002, TC-TEN-003, TC-CRY-001, TC-CRY-004, TC-DAT-001, TC-DAT-002, TC-DAT-003, TC-LOG-004, TC-LOG-005, TC-AVL-005, TC-PI-001, TC-PI-005, TC-PRV-001, TC-PRV-002]
exercised_by: [FAS-COM-CAT-04-01, FAS-COM-CAT-04-02, FAS-COM-CAT-04-04, FAS-COM-CAT-04-05]
suites: [TST-COM-CAT-093, TST-COM-CAT-116]
---

# Preview a promotion against a sample cart

## Purpose

Staff evaluate sample discount outcomes without creating a sale or consuming promotion capacity.

## How It Works

A console reader opens Try It and supplies sample products, codes and buyer context. Commerce builds an in-memory cart and invokes the shared checkout assessment. Selected draft or paused promotions can participate as active for this assessment alone. The response presents line amounts, discounts and explanations for review. The request does not create the sale records a real checkout would use. Parts now reach the shared assessment, but no rated shipping charge is supplied. The product should add dedicated parts and shipping-parity proof before extending the preview’s assurance.

## Relationships

The choose the best permitted promotional result capability supplies related configuration or assessment used in this work.

The prepare and control a promotion’s lifecycle capability supplies related configuration or assessment used in this work.
