Skip to content

JNY-COM-CAT-005A buyer receives a valid discount and staff account for its use

Markdown

JNY-COM-CAT-005

A buyer receives a valid discount and staff account for its use

Markdown
  • DocumentDraft
  • Product intentConfirmed
  • ImplementationObserved

KindJourneyProduct areaCommerceModuleCatalog and Selling ConfigurationRevision1End-to-endRequired

Read atservices-commerce c8b66a98

The Formal Contract

The narrative above explains; the sections below are authoritative — the rules, scenarios and tests this document binds.

Goal
Complete a priced sale with retained promotion usage and a deliberate release path.

Steps

#SurfaceActionCapabilityExpectedProvenance
1createPriceQuoteAdd the guide to the member’s cartCAP-COM-CAT-013The cart initially uses the eighty-dollar audience amountdocumented
services-commerce:docs/milestones/plans/COMM-M1-plan.md#D5. The order of the price calculation
2checkout preview (orders module)Enter the noncombinable quarter-off codeCAP-COM-CAT-016The seventy-five-dollar Standard-based alternative is selected and explainedtest
services-commerce:modules/promotions/tests/unit/pricing/alternatives.spec.js#2. combine = no, member: audience pricing $80.00 against $100.00 less 25 % = $75.00; the promotional price wins
3order placement (orders module)Complete placementCAP-COM-CAT-017The applied code and promotion gain usage and the promotion’s terms locktest
4releasePromotionRedemptionRelease the redemption under override authority with a reasonCAP-COM-CAT-017Usage is restored and the order retains the release eventtest
services-commerce:modules/promotions/tests/e2e/promotion-redemptions.e2e.spec.js#records order.promotion_released on the order, with the actor and the reason

Alternate and Failure Paths

PathFrom stepConditionPath takenOutcomeProvenance
alternate2Student qualification supplies a sixty-dollar audience alternativeAudience selection wins without applying the claimNo use is consumed and the purchaser is told whytest
services-commerce:modules/promotions/tests/unit/pricing/alternatives.spec.js#3. combine = no, student at $60.00: audience pricing wins, EARLY25 consumes no use, and the buyer is told why
alternate3Another code already retains the linesThe code is retained on the order as not appliedPlacement retains the unused claim without decrementing capacitydocumented
failure3The claim interval ends before placementThe placement fails validationNothing is persistedtest
failure3The selling area does not permit say which lines qualifyThe placement fails validation with a request to try againNothing is persistedtest
services-commerce:modules/promotions/tests/unit/pricing/parts.spec.js#refuses a code promotion_check_unavailable when a part is listed unavailable, and discounts nothing

Assertions

IdStatementProvenance
01The selected result respects both lowest-price comparison and prohibited combinations.test
services-commerce:modules/promotions/tests/unit/pricing/alternatives.spec.js#never applies a promotion that does not combine to a line left on its audience price
02An unapplied ineffective code does not consume capacity.test
services-commerce:modules/promotions/tests/unit/pricing/alternatives.spec.js#records as applied only the promotions that gave a discount; a code that gave nothing is rejected and not applied
03Release restores usage once and remains recorded in both histories.test

End-to-end policy: required: The journey crosses calculation, order placement and redemption records, making end-to-end financial proof necessary.

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.