Allow upgrade/downgrade of membership level #57674

Open
opened 2018-11-07 11:18:32 +01:00 by Sybren A. Stüvel · 1 comment

Users should be able to upgrade & downgrade their membership level whenever they want.

Requirements:

  • The minimum amount of time you can buy is still one month. This means that if you haven't paid enough yet to allow for a month of the new membership level, you have to pay extra.
  • Switching between membership levels should be lossless w.r.t. costs.

Approach:

  • Assume that a membership level represents a fixed amount of money per time (MPT).
  • Use the MPT of the current membership level to convert the time between now and the subscription's next payment date into money.
  • Use the MPT of the desired membership level to convert that money back to a new time period.
  • If that time is less than a month, the user has to pay the difference.
  • If that time is a month or more, the next payment date is extended accordingly.

Changing the membership level implies:

  • Change existing membership.level to point to the new level
  • Change subscription.plan to point to the payment plan that belongs to that membership level.
  • Change subscription.price so that it matches the payment plan.
  • Send a confirmation email to the user.
Users should be able to upgrade & downgrade their membership level whenever they want. Requirements: - The minimum amount of time you can buy is still one month. This means that if you haven't paid enough yet to allow for a month of the new membership level, you have to pay extra. - Switching between membership levels should be lossless w.r.t. costs. Approach: - Assume that a membership level represents a fixed amount of money per time (MPT). - Use the MPT of the current membership level to convert the time between now and the subscription's next payment date into money. - Use the MPT of the desired membership level to convert that money back to a new time period. - If that time is less than a month, the user has to pay the difference. - If that time is a month or more, the next payment date is extended accordingly. Changing the membership level implies: - Change existing `membership.level` to point to the new level - Change `subscription.plan` to point to the payment plan that belongs to that membership level. - Change `subscription.price` so that it matches the payment plan. - Send a confirmation email to the user.
Author
Owner

Added subscriber: @dr.sybren

Added subscriber: @dr.sybren
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: infrastructure/devfund-website#57674
No description provided.