Skip to content

Cancellation Flow

Tom Richards edited this page Jun 23, 2020 · 20 revisions

Entering the flow

Following members-data-api/pull/459 we now get a new top level object with key selfServiceCancellation on our ProductDetail type, for example...

image

... which we use to drive...

  • CancellationCTA component (part of manageProduct.tsx) which, depending on what we get from the API, shows either...

image

...OR...

image

...OR nothing if the sub is already cancelled.

Step 1 : cancellationFlow.tsx
/cancel/{urlPart of product}

The above CTAs both link to cancellation flow regardless and then depending on selfServiceCancellation and whether cancellation is configured for the given ProductType in productTypes.tsx, it will EITHER show...

  • a ContactUsToCancel component which displays contact details (filtered by the properties in the new selfServiceCancellation from the API) - see manage-frontend/pull/444. User cannot progress from this point, they can only return to account overview.

  • OR step '1 of 3' of the self-service cancellation flow, containing...

    • the component specified in cancellation.startPageBody of the given ProductType (e.g. membershipCancellationFlowStart.tsx for PRODUCT_TYPES.membership)
    • the available 'reasons' (as a radio group) with the options specified via cancellation.reasons of the given ProductType (e.g. membershipCancellationReasons.tsx for PRODUCT_TYPES.membership)
    • and optionally (based cancellation.startPageOfferEffectiveDateOptions and whether a chargedThroughDate is available) a choice of effective dates for the cancellation ('today' or 'end of billing period'[chargedThroughDate]). This choice is conveyed to the subsequent steps via CancellationPolicyContext and currently if the customer chooses 'today' they will be put into 'escalated' state, which means they won't be able to actually complete the cancellation online, but instead a high priority case will be created in Salesforce (see more about that below).

Step 1 : genericSaveAttempt.tsx
/cancel/{product urlPart}/{reason code}

IMPORTANTLY once the user proceeds

Clone this wiki locally