---
id: TST-COM-ORD-031
title: Member pricing through preview and placement
kind: api-lifecycle
product_area: commerce
module: orders
revision: 1
status: draft
source_sha:
  services-commerce: c8b66a98e2490617aec38ba5c8165dd9bd0a8f9b
repository: services-commerce
files:
  - modules/checkout/tests/e2e/member-pricing-placement.e2e.spec.js
implements:
  - ATS-COM-ORD-005-04
environment: local
implementation_state: implemented
latest_result: not-run
latest_run_at: null
latest_run_ref: null
conformance: not-verified
estimated_minutes: 2
isolation: The suite creates its own test workspace records and removes them using the fixture cleanup.
evidence:
  - provenance: test
    source: 'services-commerce:modules/checkout/tests/e2e/member-pricing-placement.e2e.spec.js'
    test_cases:
      - >-
        previews the T-shirt at the Student cell, the lowest of the Member and Student prices the student
        holds
      - places the order at the Student price with both audiences frozen on the line
      - >-
        previews the T-shirt at the Member cell of the Regular period, the audiences and the period in the
        explanation
      - 'places the order with the audience provenance frozen on the line, and stamps the period’s first sale'
      - >-
        places at the same Member price the preview showed, the audience bound to a fixture binding id that is
        not a uuid
      - >-
        15. keeps the placed line as it was when the rule changes afterwards, while the next preview moves; a
        second sale leaves the stamp
      - >-
        refuses the placement 409 placement_refused with audience_lapsed and the decision’s sentence, never
        repricing silently
      - 'leaves the checkout open with the refusal on its trail, and placed no order'
      - '14. leaves the order placed before the lapse as it was: no retroactive repricing'
scenario_coverage:
  - scenario: ATS-COM-ORD-005-04
    test_cases:
      - >-
        refuses the placement 409 placement_refused with audience_lapsed and the decision’s sentence, never
        repricing silently
      - 'leaves the checkout open with the refusal on its trail, and placed no order'
      - '14. leaves the order placed before the lapse as it was: no retroactive repricing'
    scope: >-
      The cited cases exercise the scenario’s listed fixture outcomes; this register makes no verified
      conformance claim.
dependency_evidence:
  provenance: test
  source: 'services-commerce:modules/checkout/tests/e2e/member-pricing-placement.e2e.spec.js'
  declared_by_test: >-
    the composed handler, the routes, the workflows, the stub participant, the engine, the settlement, the
    persistence services and PostgreSQL. Doubled: the signing key pair, the other services' tables and
    Platform's function (local stand-ins), the display evaluation and the Membership facts (the fixtures the
    running macroservice uses today).
---

# Member pricing through preview and placement

## Verification Boundary

The suite drives the composed local API dispatcher and its registered routes.

## What This Suite Proves

The registered cases check member pricing through preview and placement with their fixture records and assertions. Scenario bindings name only the examples those cases exercise.

## What It Does Not Prove

A registered file supplies no run result or verified conformance by itself. Local fixtures do not establish deployed cross-service behavior or complete browser journeys.

## Real Dependencies and Test Doubles

PostgreSQL and the exercised Commerce persistence or workflow code are real. Remote service records, clocks and transports follow the suite’s fixtures.

## Must Not Be Doubled

The database constraints, role restrictions, locks and transactions exercised by this suite must use PostgreSQL.
