Phase 2 Registration Design

1. Overview

Phase 2 introduces a unified registration flow shared between Event and Membership registration. While implementation details differ between these registration types, the high-level flow is now common and includes several new capabilities.

Key Enhancements:

  • Optional OIDC authentication with anonymous fallback

  • Unified person management across registration types

  • Configurable question workflows via ProcessDefinition

  • Flexible payment options (online and manual)

  • Comprehensive notification system with scheduled communications

2. Registration Flow

The registration flow consists of seven main steps:

Step Purpose

Identity Selection

Optional authentication via OIDC or anonymous access

Registration Overview

Central screen displaying registration context and linked persons

Link Person

Sub-process for searching, matching, and linking persons to the user’s profile

Registration Details

Sequential question phase driven by ProcessDefinition configuration

Order Creation

Commit registration and create order with line items (pending payment)

Payment

Payment selection and processing (online or manual)

Confirmation & Notifications

Transaction confirmation and scheduled notifications

2.1. High-Level Activity Diagram

phase2-high-level-flow

3. Step Details

3.1. Identity Selection

When the site is configured for authentication (typically via OIDC with a remote Identity Provider), users are presented with a choice:

  • Authenticate - Sign in via the configured OIDC provider to access their existing profile and linked persons

  • Continue Anonymously - Proceed without authentication; an anonymous profile is created for the session

If authentication is not configured for the tenant, users automatically proceed with an anonymous profile.

3.2. Registration Overview

The Registration Overview is the central screen of the registration flow, displaying:

Header Section:

  • Event or membership type being registered for

  • Relevant details (event date, membership period, pricing overview)

Persons List:

  • All persons currently linked to the user’s profile

  • Registration status for each person:

    • For Events: Whether already registered for this event

    • For Membership: Whether an active member for this membership type

Available Actions:

  • Add/link additional persons

  • Select persons for registration

  • View order, payment, and invoice details (if the current user was the original payer)

  • Cancel existing event registrations (subject to refund rules)

The Link Person step enables users to add persons to their profile for registration. This is a sub-process of Registration Overview.

Step 1: Identity Search

Users enter identifying data to search for existing persons:

  • South African ID Number (preferred unique identifier)

  • Date of Birth (alternative search method)

Step 2: Person Resolution

  • Match Found - User selects an existing person from search results

  • No Match - User creates a new person with personal details

Step 3: Profile Linking

  • Existing Person - Linked with read-only permission

  • New Person - Created and linked with read/write permission

Users can repeat this process to link multiple persons before proceeding with registration.

3.4. Registration Details

The Registration Details step presents a sequence of questions configured via the ProcessDefinition system:

Question Presentation:

  • Questions are presented in configured order

  • Each question is answered for all selected persons

  • All selected persons are listed together for each question

Question Categories:

  1. Personal Information - Capturing or updating person details

    • Emergency contact number

    • Medical conditions

    • T-shirt size

  2. Registration-Specific - Details specific to the event or membership

    • Event category selection

    • Family membership eligibility and member selection

Completion:

The question sequence typically concludes with terms, conditions, and indemnity acceptance.

3.5. Order Creation

After completing the Registration Details, the system commits the registration and creates the associated order before proceeding to payment.

Registration Commitment:

The following entities are created and persisted to the admin-service:

  • Event Participant or Membership records (status: Pending Payment)

  • Order record (status: Unpaid)

  • Order Line Items:

    • Event entry fee (for event registration)

    • Membership fee based on membership type (for membership registration)

    • Additional fees (insurance, processing fees, etc.)

Order Details:

The order captures all financial details required for payment:

  • Total amount calculated from all line items

  • Reference number generated for the transaction

  • Buyer information linked to the registering user

  • Organisation context

State After Order Creation:

Entity Status

Event Participant / Membership

Pending Payment

Order

Unpaid

Order Line Items

Created with calculated amounts

Payment Flow Integration:

The order details determine the next step:

  • Online Payment: The order reference and total are used to create a corresponding WooCommerce order with matching line items. The user is redirected to the payment gateway.

  • Manual Payment: The order reference number is displayed with a QR code for staff to process payment at the registration desk or club house.

Backend Payment Callbacks:

When payment state changes occur (via WooCommerce webhook or backend completion):

  1. WooCommerce plugin calls back to admin-service with payment status

  2. Order status updated (Paid, Failed, Cancelled)

  3. Associated registrations transition accordingly:

    • Paid → Event Participant/Membership becomes Active

    • Failed/Cancelled → Remains Pending Payment (allows retry)

Similarly, if an order is completed directly on the backend (e.g., manual payment captured by staff), the same state transitions occur.

3.6. Payment

After completing the Registration Details, users proceed to payment:

Online Payment:

  • Processed via WooCommerce integration

  • Standard payment gateway flow

  • Immediate confirmation upon success

Manual Payment:

Available for specific tenants or scenarios (e.g., registration desk at events, club house for memberships):

  1. System generates a reference number with QR code

  2. User presents QR code to staff on their device

  3. Staff scans/enters reference on the registration system

  4. Staff captures: amount, payment method, and outcome (paid, declined, or cancelled)

3.7. Confirmation & Notifications

Upon successful payment, the system initiates notifications:

Immediate:

  • Transaction confirmation (email/SMS)

  • Registration summary

  • Receipt/invoice

Scheduled:

Long-running processes execute based on events and schedules:

  • Membership: Welcome message, membership card, expiry reminders, renewal prompts

  • Events: Event details, location/directions, program updates, pre-event reminders, post-event results

4. Registration Types

4.1. Event Registration

Event registration follows the common flow with these specifics:

  • Entry point: Event registration route

  • Registration Overview shows event details and participant status

  • Registration Details may include category selection

  • Cancellation available with refund rules applied

4.2. Membership Registration

Membership registration follows the common flow with these specifics:

  • Entry point: Membership registration route

  • Registration Overview shows membership period and member status

  • Registration Details may include family membership configuration

  • Active memberships prevent duplicate registration