Skip to content

URD: Campaign

ModuleEXT-03Versionv0.2
StatusPlannedDate2026-06-04

Business documentation. This URD is Campaign's feature list - each feature below is one Functional Area (<AREA>). The same <AREA> keys the feature's PRDs (PRD-<AREA>-NNN) and tests (TC-<AREA>-NNN), and each feature is listed in the Delivery feature catalog. See the Feature Spine convention.

1. Purpose

Let merchants drive sales with targeted promotions - discounts, bundles and BuyGet offers - that apply automatically or via coupon, scoped by customer, product, and date.

2. Scope

IncludedExcluded
Promotion setup, rules, lifecycleLoyalty points (Loyalty module)
BuyGet, bundles, couponsMessage delivery (Marketing module)
Discount application at checkoutTax calculation (Pricing tax engine)

3. Definitions

TermDefinition
PromotionA campaign with eligibility rules and a discount method
MethodHow the discount works (percentage/fixed, target, allocation)
RuleA condition controlling who/what qualifies
BuyGetConditional "buy X, get Y" offer

4. Conceptual Model

Conceptual only - full schema lives in the developer promotion docs.

5. Feature Catalog

The feature list of this module. Each row is one feature (a Functional Area). Detail in §6. Mirrored in the Delivery feature catalog.

Feature IDFeaturePhaseStatusPriority
PRMPromotion Setup & LifecycleP1BuiltHigh
APPDiscount ApplicationP2PlannedHigh

Status: live from Plane where mapped, otherwise registry-declared. Vocabulary mirrors Plane (state-group / phase).

6. Features

One sub-section per feature, in catalog order. Each feature keeps its description, requirements, and acceptance together. Priority = MoSCoW (Must / Should / Could / Won't).

PRM - Promotion Setup & Lifecycle Planned

Feature ID: campaign/PRM · Phase: P1 · PRDs: - · Dev: @nx/pricing

What it does for users: merchants set up a promotion - its discount method (percentage/fixed) and eligibility, source and target rules - in one step, then move it through its lifecycle from draft to active to archived, with usage limits enforced.

Requirements

IDPRequirement
URD-PRM-001MCreate a promotion with method and rules atomically
URD-PRM-002MMove a promotion through DRAFT → ACTIVATED → DEACTIVATED/EXPIRED/ARCHIVED
URD-PRM-003SDefine eligibility, source, and target rules
URD-PRM-004SEnforce usage limits per promotion

Acceptance

AC-PRM-01: Atomic promotion creation
GivenWhenThen
A promotion, method, and rules payloadThe aggregate create is submittedAll entities are created together, or none on error

APP - Discount Application Planned

Feature ID: campaign/APP · Phase: P2 · PRDs: - · Dev: @nx/pricing

What it does for users: at checkout, eligible promotions apply automatically - and shoppers can enter a manual coupon code - so discounts land on the order without manual intervention, with usage and ROI reportable.

Requirements

IDPRequirement
URD-APP-001MAuto-apply eligible promotions during checkout
URD-APP-002SApply a manual coupon code at checkout
URD-APP-003CReport promotion usage and ROI

Acceptance

AC-APP-01: Auto-apply at checkout
GivenWhenThen
An active promotion whose rules match the cartCheckout is computedThe eligible promotion is applied automatically to the order

7. Constraints & Non-Goals

Constraints

IDConstraint
C-01A promotion must have a valid method before it can activate
C-02Deleting a promotion cascades to its method and rules

Non-Goals

  • Loyalty point earning/redemption (owned by Loyalty)
  • Sending promotional messages (owned by Marketing)

8. Version History

DateAuthorDescriptionVer
2026-05-30PMInitial stub; setup/lifecycle live, application plannedv0.1
2026-06-04Claude (AI pair)Reorganize by feature (Feature Spine)v0.2

Proprietary and Confidential. Unauthorized copying, distribution, or use of this software is strictly prohibited.