History | Log In     View a printable version of the current page.  
Issue Details (XML | Word | Printable)

Key: CRM-2971
Type: Improvement Improvement
Status: Resolved Resolved
Resolution: Fixed/Completed
Priority: Major Major
Assignee: Shailesh Lende
Reporter: David Greenberg
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
CiviCRM

Pass Existing Membership ID into Online Contribution Pages for Self-service Membership Renewals

Created: 10/Apr/08 01:03 AM   Updated: Tuesday 06:04 AM
Component/s: CiviMember
Affects Version/s: 2.0
Fix Version/s: 2.1

Time Tracking:
Not Specified

Issue Links:
Suplementation
 

Verified for 2.1: Yes
Verified for 2.0: No


 Description  « Hide
NOTE: This issue is related to http://issues.civicrm.org/jira/browse/CRM-2964 - and is required to handle the Renewal case for Organization memberships.

Rationale
=======
Currently, for self-service (online) membership renewals - an authenticated user goes to an Online Contribution page which includes a Membership Block. We automatically check to see if they have an existing membership matching one of the membership types included in the block. If true, we display status and expiration date of that membership next to it's radio button option. Then the post process function renews the membership. This approach is somewhat error prone, and will not work well for cases where an individual is renewing a membership "on behalf of" an organization. We need to pass in an explicit membership ID to ensure the correct membership is renewed. (NOTE: self-service renewal will continue to be available only for AUTHENTICATED USERS.)

Implementation
============
1. Modify preProcess for Online Contribution pages (civicrm/contribute/transact) to check for a membership id in the GET params (mid=xxx) IF we have an authenticated user session.
1.1 Verify that the passed membership ID belongs EITHER to the contact OR to a contact whom they have a permissioned relationship for (e.g. their "employer"). (Check http://issues.civicrm.org/jira/browse/CRM-2963 for info on permissioned relationships.) If it's not their membership, put up a status warning and ignore the mid value (handle it as a new membership signup if they proceed) - "Oops. The membership you're trying to renew appears to be invalid. Contact your site administrator if you need assistance. If you continue, you will issued a new membership."

1.2 Verify that the passed membership ID is for a membership type that is available in the membership block of the contribution page. If not, put up a status warning and ignore the mid value (handle it as a new membership signup if they proceed) - "Oops. The membership you're trying to renew appears to be invalid for this signup form. Contact your site administrator if you need assistance. If you continue, you will issued a new membership."

1.3 If mid is valid for the user/contact and the contribution page - load the "to be renewed" membership into the session, select the appropriate radio button in the membership block, show the current status of the membership. (This is what we currently do when we "discover" that the user/contact has an existing membership that matches one of the membership types in the membership block.)

1.4 For "on behalf of" membership - we'll need to "check" the "On behalf of" checkbox and load the related organization info. However, implementation of this logic s/b handled in CRM-2964.

2. Contact Dashboard Changes
=========================
The Contact Dashboard (civicrm/user?reset=1) includes a "Renew" action link in the Memberships selector. Modify this link to add the membership record ID to the query string - mid=x

 



 All   Comments   Work Log   Change History   FishEye      Sort Order:
Henry Bennett - 22/May/08 07:30 AM
Would it be possible to only show the option to renew the membership type that the membership ID is currently related to? For instance if I'm an "Ordinary Member" don't give me the option to renew on another plan?

David Greenberg - 22/May/08 04:23 PM
Henry - I think filtering renewal options (in potentially a variety of ways) is a larger issue which we can possibly get to in 2.2. Perhaps you can update the page you created on the wiki and add this with some description of how and when it should apply / configurability etc.. Would also be good to edit out the things on that page that have been implemented in 2.0 (or will be in 2.1) - like the Renew action...

http://wiki.civicrm.org/confluence/display/CRM/CiviContribute+++CiviMember+membership+renewal+payment+process+requirements

Deepak Srivastava - 24/May/08 03:05 PM
Assigning for QA

Henry Bennett - 26/May/08 02:20 PM
David,

Just looked at the wiki page and on reflection it might make more sense to think about the bigger picture of CiviMember. Recent new versions have concentrated heavily on other components and there has always been a view that CiviMember v2 will be addressed at some time in the future. It would be extremely good to get an overhaul in the next version as there are some real show stoppers for me in the current implementation. These changes will not only require new code but also some schema changes and I'd like to think about the whole thing.

Currently I don't know how others are handling membership renewals or the option of multiple memberships and uplifts. When I posted on the wiki it was aimed at getting discussion going but nothing really happened. I think I'll have another go on the forum and see what happens and then put together some thoughts about what needs addressing and how to go about it.

Hope this makes sense.

Henry

Shailesh Lende - 18/Aug/08 01:54 PM
Tested and verified for 2.1 rev-16699.