View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
1356 | Composr | ecommerce | public | 2013-08-18 11:32 | 2014-01-25 16:01 |
Reporter | Chris Graham | Assigned To | Chris Graham | ||
Priority | normal | Severity | feature | ||
Status | resolved | Resolution | fixed | ||
Summary | 1356: Non-recurring subscriptions / Gauges and alerts for subscription renewal | ||||
Description | 1) Non-recurring subscriptions Add support for usergroup subscriptions that are set to not auto-renew; i.e. one-off payments, with Composr automatically removing members at the end of the period, or a member being able to bump the period forward with further payment. These would be implemented as normal purchases on PayPal, avoiding PayPal's subscription features entirely. For these kind of subscriptions, remove the PayPal term limits that the UI enforces (e.g. let someone set up a 50 month non-recurring subscription if they so wish). 2) Gauges and alerts for subscription renewal Create a new Composr API for working out subscription lifetime positions for a member's usergroup subscription a) Seconds since start b) Seconds since term (re)start (i.e. first term start, or the first renewal) c) Seconds before term restart (i.e. term renewal/end) d) Seconds since expiry Add the ability to set up to 5 e-mails to send at your choice of subscription lifetime positions, within the configured Composr usergroup subscription. Measured in days. For example, 5 days since expiry of the subscription. Include the 4 subscription lifetime positions within the member download CSV (sets of 4, for each usergroup subscription configured in Composr). Show subscription lifetime positions on member profiles ------ These two things are linked because subscription lifetime positions would be interpreted differently based upon whether it was a recurring or non-recurring subscription. a) "Seconds since start" works the same for both recurring and non-recurring subscriptions. b) There would be no "since term restarts" for non-recurring subscriptions, so this would be the same as "seconds since start". c) "before term restart" would be interpreted as "before term end" for a non-recurring subscription (as they do not automatically restart). d) For a recurring subscription, expiry is the end-of-term date that happens due either to a failed payment at the time of renewal, or a cancellation earlier in the term. It is the last term date of a subscription that will not be renewed. For a non-recurring subscription, expiry is simply when the first and only term naturally ends. | ||||
Additional Information | The algorithm (technical readers only)... For all rows in the subscriptions table that are marked as 'active': find the s_member_id (who we will e-mail) find the first transaction in the transactions table, so we can find the first payment, so we can extrapolate forward from that cross-reference to the f_usergroup_subs table row for the associated usergroup-subscription to find the recurrence unit and length, so that we can calculate the next renewal date if a time window, 6 days before renewal, until renewal, has been entered in this scheduler run, and not the previous scheduler run, send the notification | ||||
Tags | No tags attached. | ||||
Attach Tags | |||||
Time estimation (hours) | 9 | ||||
Sponsorship open | |||||
related to | 1528 | Resolved | Chris Graham | Group member timeout editing interface |
related to | 1529 | Not Assigned | Guest | Implement subscription free trial support [and other assorted subscription ideas] |
|
API implemented... TODO... Unit test the API. Add the ability to set up to 5 e-mails to send at your choice of subscription lifetime positions, within the configured Composr usergroup subscription. Measured in days. For example, 5 days since expiry of the subscription. Include the 4 subscription lifetime positions within the member download CSV (sets of 4, for each usergroup subscription configured in Composr). Show subscription lifetime positions on member profiles. Implement "Non-recurring subscriptions". |