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

One-time membership product #112

Open
16 tasks
brettski opened this issue Oct 31, 2022 · 0 comments
Open
16 tasks

One-time membership product #112

brettski opened this issue Oct 31, 2022 · 0 comments
Assignees
Labels
enhancement New feature or request wip Work In Progress

Comments

@brettski
Copy link
Member

brettski commented Oct 31, 2022

Adding one-time memberships which don't go through a Stripe Subscription. They don't renew, they are one-time.

Questions

  • Will one-time memberships receive a different type of thank you email as the subscription type does now? We may be able to reword to define or only include renewal information only on subscription-type memberships.
  • Should an error be returned if a ticket is transferred to someone currently with an active subscription-based membership?

Assumptions

  • Received benefits (ticket discount, store discount, etc. are the same as subscription memberships)
  • Adding ticket discounts in Stripe will work as written now.
  • Adding store discount code appears to be okay
  • The purchase of a one-time membership ticket appears straight forward within the current products api. There don't appear to be limitations on quantity of MEMBERSHIP type products

Considerations

  • A one-time membership product will not be allocated to the purchaser if they already have an active subscription-based membership. The product will be added to the order as unallocated.
  • Manual orders, memberships cannot be added to manual orders. This check needs to be expanded to MEMBERSHIP type ticket && checkout of SUBSCRIPTION cannot be added to manual order (manualOrderChecks.js).
  • One-time membership tickets can be purchased in bulk and transferred.
    • When transferred the target receives the membership benefits. If they transfer again, that person loses benefits and the next target receives them. This is complicated by discount codes which are set against the member.
    • When transferred, if the ticket is allocated to person transferring the ticket, a check needs to be made to determine if they have an active subscription-based membership prior to removing their benefits.
  • there is a subscription id set when subscription-based memberships are applied. This value and the current expiration date can be used for subscription membership status.
  • There is a considerable rewrite to applyMembershipAllocationsToMembers in Brinks as there are subscription assumptions there to refactor or rewritten explicitly for one-time memberships.
  • generateAllocationsFromOrder in Brinks will require refactoring for creating one-time membership allocations which will be different. E.g. enrollmentStatus would be created as 'COMPLETE'.
  • Subscription end date set needs to be driven off of the date of purchase, not when transferred.

Actions

  • Applying one-time membership
    • Adds membership expiration date based on date of purchase of product
    • Writes one-time in member.stripeSubscriptionId field
    • Adds new Store coupon
    • Adds new Stripe discount
    • Add membership merit badge
  • Transferring a one-time membership
    • Doesn't update subscription data if active subscription-based membership is in place.
    • Removes subscription expiration date
    • removes member.stripeSubscriptionId
@brettski brettski added enhancement New feature or request wip Work In Progress labels Oct 31, 2022
@brettski brettski self-assigned this Oct 31, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request wip Work In Progress
Projects
None yet
Development

No branches or pull requests

1 participant