-
Notifications
You must be signed in to change notification settings - Fork 6
Description
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"