Skip to content

ATS-COM-ORD-003Review the price and resolve purchase blockers: Capability Test Specification

Markdown

ATS-COM-ORD-003

Review the price and resolve purchase blockers: Capability Test Specification

Markdown
  • DocumentProposed

KindAcceptance test setProduct areaCommerceModuleCustomer purchases, purchased benefits and vendor stockRevision2

Read atservices-commerce c8b66a98macroservice-libraries 54536a44react-console baf6dae3

Coverage

  • Rule covered
  • Transition gap: FND-COM-ORD-060
  • Validation covered
  • Permission gap: FND-COM-ORD-060
  • Edge covered
  • Failure covered
  • Boundary covered
  • Concurrency gap: FND-COM-ORD-060
  • Invariant gap: FND-COM-ORD-060
  • Interaction covered

Test Scenarios

14 scenarios proving CAP-COM-ORD-003; 11 bound to an existing test.

01 Preview retains the calculated resultruleapitest
Proves
BR-CAP-COM-ORD-003-01
Preconditions
Fixture application items have Standard prices in USD.
Steps
[ { "do": "Request the cart preview and inspect its stored state.", "provenance": "test", "source": "services-commerce:modules/checkout/tests/e2e/checkouts.e2e.spec.js#answers 200 with every item advised by the stub and priced from its standard USD row, and no problem" } ]
Expected
Item advice, prices and totals appear with the saved snapshot and preview event.
Data
Use the controlled records and transports established by the cited tests.
Bound to
services-commerce:modules/checkout/tests/e2e/checkouts.e2e.spec.js#answers 200 with every item advised by the stub and priced from its standard USD row, and no problem
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
Source
services-commerce:modules/checkout/tests/e2e/checkouts.e2e.spec.js#answers 200 with every item advised by the stub and priced from its standard USD row, and no problem
02 Item problems remain visible in a returned previewvalidationapitest
Proves
BR-CAP-COM-ORD-003-02
Preconditions
One application refuses an item and other fixtures lack or prohibit a currency price.
Steps
[ { "do": "Preview the affected carts.", "provenance": "test", "source": "services-commerce:modules/checkout/tests/e2e/checkouts.e2e.spec.js#shows a participant’s refusal inline on the item rather than refusing the preview" } ]
Expected
The response contains the relevant item problems without permitting placement.
Data
Use the controlled records and transports established by the cited tests.
Bound to
services-commerce:modules/checkout/tests/e2e/checkouts.e2e.spec.js#shows a participant’s refusal inline on the item rather than refusing the preview
services-commerce:modules/checkout/tests/e2e/checkouts.e2e.spec.js#reports an item without a price in the currency, and one whose price row prohibits it
Source
services-commerce:modules/checkout/tests/e2e/checkouts.e2e.spec.js#shows a participant’s refusal inline on the item rather than refusing the preview
03 Unavailable advice allows the same cart to recoverfailureapinegativetest
Proves
BR-CAP-COM-ORD-003-03
Preconditions
The selected application is unavailable for the first calls.
Steps
[ { "do": "Attempt preview and placement, restore application responses and retry preview.", "provenance": "test", "source": "services-commerce:modules/checkout/tests/e2e/participant-unavailable.e2e.spec.js#refuses the preview 503 participant_unavailable, retryable" } ]
Expected
Unavailable responses leave an open cart with no order, and the recovered preview succeeds.
Data
Use the controlled records and transports established by the cited tests.
Bound to
services-commerce:modules/checkout/tests/e2e/participant-unavailable.e2e.spec.js#refuses the preview 503 participant_unavailable, retryable
services-commerce:modules/checkout/tests/e2e/participant-unavailable.e2e.spec.js#previews the same checkout once the participant answers again
Source
services-commerce:modules/checkout/tests/e2e/participant-unavailable.e2e.spec.js#refuses the preview 503 participant_unavailable, retryable
04 Product eligibility identifies only the blocked itemvalidationapitest
Proves
BR-CAP-COM-ORD-003-04
Preconditions
A restricted product is tested with eligible, ineligible and indeterminate subjects alongside an unbound product.
Steps
[ { "do": "Request the preview for each subject.", "provenance": "test", "source": "services-commerce:modules/checkout/tests/e2e/product-purchase-eligibility.e2e.spec.js#previews with no problem" } ]
Expected
Only blocked bound items report product_not_eligible and an unbound product requires no evaluation.
Data
Use the controlled records and transports established by the cited tests.
Bound to
services-commerce:modules/checkout/tests/e2e/product-purchase-eligibility.e2e.spec.js#previews with a product_not_eligible problem on the bound line alone, naming it and the engine's sentence
Source
services-commerce:modules/checkout/tests/e2e/product-purchase-eligibility.e2e.spec.js#previews with no problem
05 A missing tax address prevents the taxable purchasevalidationapinegativetest
Proves
BR-CAP-COM-ORD-003-05
Preconditions
A buyer lacks a preferred address while the fixture zone can tax the product.
Steps
[ { "do": "Request preview and then placement.", "provenance": "test", "source": "services-commerce:modules/checkout/tests/e2e/checkout-tax.e2e.spec.js#refuses a buyer with no preferred address while a zone could tax the line: a no_tax_address problem on the preview, a 409 on the placement" } ]
Expected
The item has no_tax_address, placement returns 409 and no order is found.
Data
Use the controlled records and transports established by the cited tests.
Bound to
services-commerce:modules/checkout/tests/e2e/checkout-tax.e2e.spec.js#refuses a buyer with no preferred address while a zone could tax the line: a no_tax_address problem on the preview, a 409 on the placement
Source
services-commerce:modules/checkout/tests/e2e/checkout-tax.e2e.spec.js#refuses a buyer with no preferred address while a zone could tax the line: a no_tax_address problem on the preview, a 409 on the placement
06 The selected tax zone supplies item componentsruleapitest
Proves
BR-CAP-COM-ORD-003-06
Preconditions
T-shirts and a membership are priced with Texas state and Austin city rates.
Steps
[ { "do": "Preview the cart and inspect item tax and the saved quotation.", "provenance": "test", "source": "services-commerce:modules/checkout/tests/e2e/checkout-tax.e2e.spec.js#taxes each line at the most specific zone: state and city on the T-shirts, state alone on the membership" } ]
Expected
The T-shirts carry city and state components, the membership carries its matching state component and the quote preserves the amounts.
Data
Use the controlled records and transports established by the cited tests.
Bound to
services-commerce:modules/checkout/tests/e2e/checkout-tax.e2e.spec.js#taxes each line at the most specific zone: state and city on the T-shirts, state alone on the membership
services-commerce:modules/checkout/tests/e2e/checkout-tax.e2e.spec.js#stores the snapshot with each item’s tax, the tax record and the totals with the tax in them
services-commerce:modules/checkout/tests/e2e/checkout-tax.e2e.spec.js#taxes nothing at an address no zone matches, and says so
Source
services-commerce:modules/checkout/tests/e2e/checkout-tax.e2e.spec.js#taxes each line at the most specific zone: state and city on the T-shirts, state alone on the membership
07 Deleted ship-to helper produces a blocking refusalvalidationunitnegativetest
Proves
BR-CAP-COM-ORD-003-07
Preconditions
The selected shipping contact is absent from the supplied party facts.
Steps
[ { "do": "Evaluate the party and pass its problems to the placement-refusal helper.", "provenance": "test", "source": "services-commerce:modules/checkout/tests/unit/checkout/ship-to-not-found.spec.js#is a blocking problem with the code and the message Andrew decided" } ]
Expected
The helpers report ship_to_not_found with 409 details and preserve selection rather than using buyer fallback.
Data
Use the controlled records and transports established by the cited tests.
Bound to
services-commerce:modules/checkout/tests/unit/checkout/ship-to-not-found.spec.js#is a blocking problem with the code and the message Andrew decided
services-commerce:modules/checkout/tests/unit/checkout/ship-to-not-found.spec.js#is refused ship_to_not_found with the problems in the details
services-commerce:modules/checkout/tests/unit/checkout/ship-to-not-found.spec.js#is the ship-to party when one was chosen, never the buyer
Source
services-commerce:modules/checkout/tests/unit/checkout/ship-to-not-found.spec.js#is a blocking problem with the code and the message Andrew decided
08 Addressless ship-to blocks shipping onlyedgeunitnegativetest
Proves
BR-CAP-COM-ORD-003-08
Preconditions
The selected contact has no preferred address.
Steps
[ { "do": "Evaluate the helper once with shipping required and once without.", "provenance": "test", "source": "services-commerce:modules/checkout/tests/unit/checkout/ship-to-no-address.spec.js#is a blocking problem with the code and the message Andrew decided" } ]
Expected
Only the shipping case returns ship_to_no_address.
Data
Use the controlled records and transports established by the cited tests.
Bound to
services-commerce:modules/checkout/tests/unit/checkout/ship-to-no-address.spec.js#is a blocking problem with the code and the message Andrew decided
services-commerce:modules/checkout/tests/unit/checkout/ship-to-no-address.spec.js#is no problem, so a membership-only order to the recipient places
Source
services-commerce:modules/checkout/tests/unit/checkout/ship-to-no-address.spec.js#is a blocking problem with the code and the message Andrew decided
09 Fee pricing excludes discounts and needs its productboundaryapitest
Proves
BR-CAP-COM-ORD-003-09
Preconditions
A pricing extension contributes a three-dollar fee and the fee product has an eight-percent tax rate.
Steps
[ { "do": "Preview with the fee product and promotion, then without the product.", "provenance": "test", "source": "services-commerce:modules/orders/tests/e2e/extension-line-adjustments.e2e.spec.js#previews the fee in the totals: $3.00 fee beside the line, nothing refused" } ]
Expected
The fee remains three dollars with twenty-four cents tax; missing configuration produces order_fee_unsupported.
Data
Use the controlled records and transports established by the cited tests.
Bound to
services-commerce:modules/orders/tests/e2e/extension-line-adjustments.e2e.spec.js#previews the fee in the totals: $3.00 fee beside the line, nothing refused
services-commerce:modules/orders/tests/e2e/extension-line-adjustments.e2e.spec.js#taxes the fee by the product’s class: 8 % of $3.00 is $0.24, in the order’s tax and total
services-commerce:modules/orders/tests/e2e/extension-line-adjustments.e2e.spec.js#never discounts the fee: TEN takes $10.00 from the item and nothing from the fee line
services-commerce:modules/orders/tests/e2e/extension-line-adjustments.e2e.spec.js#refuses the preview 409 order_fee_unsupported, with the sentence
Source
services-commerce:modules/orders/tests/e2e/extension-line-adjustments.e2e.spec.js#previews the fee in the totals: $3.00 fee beside the line, nothing refused
10 Required preprocessing failures prevent salefailureapitest
Proves
BR-CAP-COM-ORD-003-10
Preconditions
Bundling, required-failure and optional-failure stores are configured.
Steps
[ { "do": "Preview and place through each preprocessing arrangement.", "provenance": "test", "source": "services-commerce:modules/checkout/tests/e2e/checkout-preprocessing.e2e.spec.js#previews the checkout as the extension answered it: two t-shirts, the dropped mug gone, a bundled mug added" } ]
Expected
Bundling changes the items, required failure stops the request and optional failure records a skip.
Data
Use the controlled records and transports established by the cited tests.
Bound to
services-commerce:modules/checkout/tests/e2e/checkout-preprocessing.e2e.spec.js#previews the checkout as the extension answered it: two t-shirts, the dropped mug gone, a bundled mug added
services-commerce:modules/checkout/tests/e2e/checkout-preprocessing.e2e.spec.js#refuses the preview and the placement with EXTENSION_UNAVAILABLE (503) when the required extension answers outside its contract, placing nothing
services-commerce:modules/checkout/tests/e2e/checkout-preprocessing.e2e.spec.js#skips an optional extension that fails, prices the checkout as it is, and tells the trail
Source
services-commerce:modules/checkout/tests/e2e/checkout-preprocessing.e2e.spec.js#previews the checkout as the extension answered it: two t-shirts, the dropped mug gone, a bundled mug added
11 Composer rendering follows the returned previewruleunittest
Proves
BR-CAP-COM-ORD-003-12
Preconditions
The composer uses a controlled preview adapter and a selected customer fixture.
Steps
[ { "do": "Render before and after customer selection and inspect purchase-type choices.", "provenance": "test", "source": "react-console:components/order-composer/__tests__/live-composer.test.tsx#shows exactly the figures Commerce's preview answered" } ]
Expected
The displayed figures follow the adapter and only the supported store-product choice appears.
Data
Use the controlled records and transports established by the cited tests.
Bound to
react-console:components/order-composer/__tests__/live-composer.test.tsx#shows exactly the figures Commerce's preview answered
react-console:components/order-composer/__tests__/live-composer.test.tsx#has nothing to price, and says so, before there is a customer
react-console:components/order-composer/__tests__/live-composer.test.tsx#offers store products only (Andrew 2026-10-22), with no Prototype menu
Source
react-console:components/order-composer/__tests__/live-composer.test.tsx#shows exactly the figures Commerce's preview answered
12 Preview discounts do not spend the promotion allowanceinteractionapiproposed
Proves
BR-CAP-COM-ORD-003-01 BR-CAP-COM-ORD-004-06
Preconditions
A cart qualifies for a limited-use code.
Steps
[ { "do": "Enter the code, preview twice, inspect counters and place once.", "provenance": "proposed", "source": [ "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", "services-commerce:modules/checkout/tests/e2e/promotions.e2e.spec.js#takes one use of the code and of the promotion" ] } ]
Expected
Both previews show the saving without spending a use; placement records one use.
Data
Use an isolated workspace with the records and responses named in the preconditions.
Source
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,services-commerce:modules/checkout/tests/e2e/promotions.e2e.spec.js#takes one use of the code and of the promotion
13 Repricing requires another review before purchaseinteractionapiproposed
Proves
BR-CAP-COM-ORD-003-01 BR-CAP-COM-ORD-005-03
Preconditions
A saved preview shows the fixture shirt price.
Steps
[ { "do": "Raise the price and place, then preview again and place.", "provenance": "proposed", "source": [ "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", "services-commerce:modules/checkout/tests/e2e/placement.e2e.spec.js#refuses PRICE_CHANGED with both prices when the price rose since a preview of a moment ago, the checkout left open" ] } ]
Expected
The first placement reports the difference without an order; the reviewed retry uses the revised amount.
Data
Use an isolated workspace with the records and responses named in the preconditions.
Source
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,services-commerce:modules/checkout/tests/e2e/placement.e2e.spec.js#refuses PRICE_CHANGED with both prices when the price rose since a preview of a moment ago, the checkout left open
14 Unavailable application advice leaves shopping recoverableinteractionapiproposed
Proves
BR-CAP-COM-ORD-003-03 BR-CAP-COM-ORD-012-05
Preconditions
The owning application stops answering advice.
Steps
[ { "do": "Preview and place, restore the application and preview again.", "provenance": "proposed", "source": [ "services-commerce:modules/checkout/tests/e2e/participant-unavailable.e2e.spec.js#refuses the preview 503 participant_unavailable, retryable", "services-commerce:modules/participants/tests/unit/client/lambda-participant-client.spec.js#times out by the contract’s timeout for the operation, aborting the call: advise 5 s, prepare 10 s" ] } ]
Expected
The unavailable calls produce no sale, and the same cart receives advice after recovery.
Data
Use an isolated workspace with the records and responses named in the preconditions.
Source
services-commerce:modules/checkout/tests/e2e/participant-unavailable.e2e.spec.js#refuses the preview 503 participant_unavailable, retryable,services-commerce:modules/participants/tests/unit/client/lambda-participant-client.spec.js#times out by the contract’s timeout for the operation, aborting the call: advise 5 s, prepare 10 s

The Markdown files under specs/ in rhythmsoftware/rhythm-v2-docs are the canonical source of truth. This reader is a generated, read-only projection of them.