Skip to content

Waitlist bookings #121

@nickevansuk

Description

@nickevansuk

Proposer

MCRactive, Westminster City Council, and others from #120.

Use Case

As a Customer of Everyone Active, I want to use a Broker such as MCRactive to book onto a waitlist, either as a guest or via my membership (if authenticated via #120).

Why is this needed?

The current specification does not include any provision for waitlists, except for an example extension that suggests using a separate booking mechanism.

Proposal

This proposal recommends that waiting list booking make use of the Approval flow, with only minor additions required to facilitate this.

If waitlistAvailable: true and remainingAttendeeCapacity is 0 on an Event the Broker must follow Approval flow as per the existing specification.

As OrderProposals are atomic and are approved in an all-or-nothing fashion, a Broker would need to split multiple waitlist OrderItem's into multiple Orders if they desire for them to be approved independently. For example if 2 friends want to be waitlisted together, they submit a single OrderProposal, and only get notified if 2 spaces become available. If non-waitlisted items are bundled with waitlisted OrderItems, no long-term lease is applied, and the OrderProposal is only successful if there is still space in the other non-waitlisted OrderItems when the Customer confirms their waitlist space.

This puts the Booking System in control of the waitlist process, which allows implementation of a range of different waitlist strategies (allocate next in list, first-to-respond, etc). It also allows a Broker to "auto-accept" a waitlist place, assuming they have already authorised the payment.

As will all Open Booking API features, use of this feature will require contractual agreement between the Seller and the Broker, so the Seller always remains in complete control of this.

Additional specification updates required:

  • A property waitlistAvailable of type Boolean added to schema:Event.
  • An additional SellerAcceptedPendingCustomerConfirmation state is required, that does not affect the status flow https://www.openactive.io/open-booking-api/#orderproposal-statuses, but requires confirmation of customer at that SellerAccepted stage.
  • An additional arrow on 5.5.5 OrderProposal statuses from SellerAccepted back to AwaitingSellerConfirmation so that the leasing invariant still holds (i.e. anything approved must always be bookable).
  • Clarify the use of orderSellerNote to be updated at each stage of the waitlist (including the very beginning of the flow), for example:
    1. orderSellerNote at AwaitingSellerConfirmation: "You are currently on the waiting list. We’ll notify you if a space becomes available." initially
    2. orderSellerNote at SellerAcceptedPendingCustomerConfirmation: “A space is available first-come-first-served, please approve your space soon”.
    3. orderSellerNote at AwaitingSellerConfirmation: "You are currently on the waiting list. We’ll notify you if a space becomes available." if the space got taken.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions