New customer purchase subscription with discount using unique promo code
This guide details the journey for a new customer subscribing to Sky using a unique promo code discount. You'll find both the customer-facing flow and system-level sequence, complete with API endpoint paths and CRM/contract event mappings. Use it to align the UX journey with backend specifications — and contact us if you’d like enhanced Postman or Swagger definitions for integration testing.
Customer perspective
%%{init: {
"theme": "neutral",
"look": "classic"
}}%%
flowchart TB
A(["Start"]) --> B{"queryIfUserNameExists"}
B -- Yes --> C["Route to existing customer login"]
B -- No --> D["registerCustomer"]
D --> E["Validate VCN<br>Ensure first line of address, postcode, and viewing card number captured for Sky validation"]
E --> F["getCatalogue<br>View product catalogue filtered by country and itemType"]
F --> G["getAvailableDiscounts<br>Present discounts linked to salesItem"]
G --> H["createPaymentMethod"]
H --> I["addItemsToCart<br>VCN must be provided if required by sales item"]
I --> J["setCartDiscountCode"]
J --> K["checkoutCart"]
K --> L(["End"])
System perspective
%%{init: {
"theme": "neutral",
"look": "classic"
}}%%
sequenceDiagram
participant C as Customer
participant W as Web
participant CRS as CustomerRegistrationService
participant CAS as ConditionalAccessService
participant Cat as CatalogueService
participant Pay as PaymentService
participant Cart as CartService
C->>W: Start
W->>CRS: queryIfUserNameExists
alt Username exists
W-->>C: Route to existing customer log in
else Username not found
W->>CRS: registerCustomer
CRS-->>W: success
W->>CAS: Validate VCN
Note right of CAS: Capture first line of address,<br/>postcode and viewing card number<br/>for Sky validation
CAS-->>W: VCN validated
W->>Cat: getCatalogue
Cat-->>W: catalogue items (filtered by country and itemType)
W->>Cat: getDiscounts
Cat-->>W: available discounts (filtered by salesItem)
W->>Pay: createPaymentMethod
Pay-->>W: Direct Debit payment method created
W->>Cart: addItemsToCart
Note right of Cart: VCN must be provided if required<br/>by the sales item details
Cart-->>W: items added
W->>Cart: setCartDiscountCode
Cart-->>W: discount applied
W->>Cart: checkoutCart
Cart-->>W: checkout complete
end
W-->>C: EndUpdated about 2 months ago
