At a glance
Holds what the customer is buying, keeps prices valid and hands a clean order to order capture.
Key data
Receives from
- Web portal / app / POS
- Product catalog
- CPQ
Sends to
- Order capture
- Promotions
Cart Lifecycle — Status Flow
Cart states from creation through order placement or cancellation
Core Capabilities
What Cart Management provides across cart creation, validation, pricing and handoff
Cart Creation
- Creates a new cart (quote) for a subscriber with one or more product lines
- Supports anonymous cart (browse mode, no subscriber account required)
- Accepts sales channel identifier: web, direct/agent, in-store, partner
- Attaches shop code and KYC type to cart for downstream order processing
- Validates whether an open cart already exists before creating a new one
- Prevents duplicate cart creation while a previous session is active
CPQ Integration
- Calls CPQ to resolve the full set of applicable offers for the cart
- Derives cart-level events (New Purchase, Plan Change, MNP, First Purchase etc.) before and after CPQ call
- If events change after CPQ response, re-calls CPQ with updated event context (maximum one re-call)
- CPQ validates offer compatibility and returns allowedActions per offer
- Validates that the requested action (ADD/DELETE/MODIFY) is in each offer's allowedActions list
- Applies default offer inclusions (bundle components marked as include by default)
Coupon Support
- Accepts coupon code (ID + serial number) at cart creation or update
- Passes coupon details to CPQ for discount resolution and offer configuration
- Marks coupon as consumed in the coupon management system on cart creation
- Releases coupon reservation if the cart is cancelled or expires
- Validates that the coupon scope matches the product types in the cart
- Coupon status visible in cart response: VALID, INVALID, with missing offer details
Cart Validation
- Validates that at most one open/active cart exists per subscriber (open cart check)
- Validates KYC status: blocks cart if subscriber's KYC is in progress
- Validates maximum active product instances: prevents exceeding plan limit per subscriber
- Validates carrier email eligibility: checks existing active plans before adding carrier email service
- Validates offer action against each offer's allowed action list before persisting
- Returns structured 422 validation error codes for each violation scenario
Price Calculation
- Calculates total price per quote line including recurring, one-time and installment components
- Applies discount price: recurring and one-time discount amounts
- Calculates tax amounts per charge component
- Separates pay-now vs next-bill one-time charges
- Computes installment amounts for device finance purchases
- Returns full price breakdown: gross, discount, tax, net, installment per offer and per line
Change Orders
- Supports adding and removing offer items from an existing DRAFT cart
- Processes plan change quotes: subscriber moves to a different plan
- Handles multi-line carts: each line can have independent offer selections
- Re-derives events and re-calls CPQ when offers are added or removed
- Generates event labels per offer update: PURCHASE, DELETE, MODIFY with action type
- Validates change order eligibility before updating cart
Auto-cancellation Scheduler
- Automatically cancels stale DRAFT carts that were never confirmed by the subscriber
- Anonymous carts (browse sessions): cancelled after a configurable short window
- Subscriber carts (agent/direct channel): cancelled after a configurable longer window
- Runs on a scheduled basis — batch processing with configurable batch size
- Retries failed cancellations up to a configurable retry count with delay between attempts
- Releases any coupon reservation on cancellation
Cart Review
- Returns full cart summary for subscriber or agent review before confirming the order
- Displays all selected offers per line with product name, characteristics and action
- Shows full price breakdown per line: recurring fee, one-time charge, installment amount, applied discounts and tax
- Highlights applied coupon: discount name, type, scope and validation status
- Surfaces KYC requirements: indicates whether identity verification is needed before the order proceeds
- Displays allowed actions per offer — subscriber or agent can still modify or remove items at this stage
- Shows total cart price summary: gross, discount, tax and net across all lines combined
Order Handoff
- Once subscriber confirms, cart transitions from DRAFT to APPROVED to CUSTOMER ACCEPTED
- Confirmed cart passed to Order Capture to create the formal order
- Cart data (offers, prices, KYC type, sales channel, coupon) drives Order Capture payload
- Cart remains read-only after handoff — preserved for order audit trail
- Order type (NEW, CHANGE) derived from cart context and offer actions
Storage & Persistence
How and where Cart Management stores its data
Document Data Store
- Quote/cart documents: header, lines, offers, prices, coupon info
- Cart status and version history
- Open cart index per subscriber for duplicate check
- Scheduler job state and last-run records
Event Bus
- Cart created event to downstream consumers
- Cart cancelled event — triggers coupon release
- Cart confirmed event to Order Capture
- Cart expiry events for cleanup monitoring
Downstream Integrations
- CPQ: offer configuration per cart session
- Product Inventory: max instances validation
- Coupon Management: coupon consume/release
- Party Management: subscriber KYC and account status
Design Principles
Key architectural decisions behind Cart Management
CPQ as Single Source of Offer Truth
Cart Management never independently resolves which offers are available or compatible. Every cart creation and update calls CPQ for offer configuration. This guarantees that eligibility rules, bundle composition and pricing are always applied consistently — the same result whether the subscriber is on web, mobile or assisted ordering.
Validate-before-Persist
All business validations — open cart, KYC status, product instance limits, coupon scope, offer action eligibility — are evaluated before the cart document is written to the data store. A cart that fails validation is never persisted, preventing invalid state from propagating to downstream order processing.
Automatic Stale Cart Cleanup
Cart Management runs scheduled background jobs to cancel abandoned DRAFT carts. This prevents long-lived stale carts from blocking new cart creation (the open cart validation), releases coupon reservations back to the available pool, and keeps the active cart data store clean and performant.
Suggest add-ons and devices that fit what is already in the cart.
Spot carts likely to be abandoned and trigger helpful nudges.
More in 30 AI & ML use cases and AIOps for BSS.