Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Proposal: eligibleCustomerType value and paymentFrequency property with enum #80

Open
nickevansuk opened this issue Apr 23, 2018 · 3 comments
Labels
proposal Proposed changes to the specification

Comments

@nickevansuk
Copy link
Contributor

nickevansuk commented Apr 23, 2018

Proposer

Originally proposed by Sportlabs @dolkensp (openactive/implementation-tracker#9 (comment)).

eligibleCustomerType is implemented in various guises by Classfinder (openactive/implementation-tracker#113), Athliit (openactive/implementation-tracker#112), Our Parks (openactive/implementation-tracker#111 (comment)), England Netball (openactive/implementation-tracker#109)

paymentFrequency has been proposed as part of GO Mammoth (gomammoth/opendata#2) and implemented by MakeSweat (openactive/implementation-tracker#86), as well as raised by Everyone Active

Use Case

"As a potential participant, I want to know if the price shown requires a membership, and if the class is available to non-members"

"As a potential participant, I want to know the cost of a membership to access the class"

Why is this not covered by existing properties?

eligibleCustomerType is featured in schema.org, but there is not vocab to cover the notion of a member.

Please provide a link to example data

eligibleCustomerType is implemented in various guises by Classfinder (openactive/implementation-tracker#113), Athliit (openactive/implementation-tracker#112), Our Parks (openactive/implementation-tracker#111 (comment)), England Netball (openactive/implementation-tracker#109)

paymentFrequency has been proposed as part of GO Mammoth (gomammoth/opendata#2) and implemented by MakeSweat (openactive/implementation-tracker#86), as well as raised by Everyone Active

Proposal

Describe member-only pricing using the existing schema.org property:

"eligibleCustomerType": "http://openactive.io/ns#Member"

Describe membership pricing using the new property:

"paymentFrequency": "http://openactive.io/ns#Monthly"

Describe multi-class passes using the existing schema.org property:

"eligibleQuantity": 10

Document that for an Event to be available for pay-and-play it must have at least one Offer without eligibleQuantity (or with eligibleQuantity = 1), without paymentFrequency and without eligibleCustomerType.

Example

"offer": [
  { /* price for pay-as-you-go */
    "type": "Offer",
    "price": "7.00", 
    "priceCurrency": "GDP",
  },
  { /* price for members */
    "type": "Offer",
    "name": "Free for members",
    "price": "0.00", /* note priceCurrency not required for free */
    "eligibleCustomerType": "http://openactive.io/Member"
  },
  { /* 10-class bundle */
    "type": "Offer",
    "name": "10 class pass", /* Booking/ticket type title */
    "description": "", /* Additional information */
    "price": "50.00", /* Price */
    "priceCurrency": "GDP",
    "eligibleQuantity": 10
  },
  { /* monthly subscription */
    "type": "Offer"
    "name": "Single Class Membership",
    "url": "https://www.gomammoth.co.uk/fitness-checkout-flexible/?classid=78",
    "price": "33.00",
    "priceCurrency": "GDP",
    "paymentFrequency": "http://openactive.io/Monthly" /* use the same enum as frequency within Schedule */
  },
]

Beta Enumeration Value

"eligibleCustomerType": "https://openactive.io/ns-beta#Member"

@nickevansuk nickevansuk added the proposal Proposed changes to the specification label Apr 23, 2018
@peter-dolkens
Copy link

peter-dolkens commented Apr 24, 2018

I think monthly subscription may need some more definition here, to clarify if it's meant to be used for regular membership fees (I suspect not) or only for long-running classes/courses.

Additionally, paymentFrequency references frequency within Schedule though that spec is no longer in sync with the revised schema.org proposal.

The new Schedule proposal has repeatFrequency which no longer uses an enum, but instead an ISO8601 Duration

@nickevansuk
Copy link
Contributor Author

Really good point @dolkensp! It was intended for regular membership fees, however @markthomasUprise has suggested a more explicit approach here: openactive/open-booking-api#45

I notice that frequency was updated too (ISO8601 Duration makes much more sense) so we probably need to rethink this.

@nickevansuk
Copy link
Contributor Author

Linking to #2 for reference

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
proposal Proposed changes to the specification
Projects
Development

No branches or pull requests

2 participants