membership application (civicrm)

38
CIVICRM Multi-level Membership and online payment CiviCon Amsterdam 2015

Upload: wouter-hechtermans

Post on 12-Apr-2017

265 views

Category:

Software


2 download

TRANSCRIPT

Page 1: Membership Application (CiviCRM)

CIVICRMMulti-level Membership and online paymentCiviCon Amsterdam

2015

Page 2: Membership Application (CiviCRM)

Description

Membership organizations are confronted with a lot of challenges. Not in the least that members want an accurate overview of their membership status, their interactions, … CiviCRM is a great tool for that. Anno 2015 it has to happen now. People are used to e-commerce.

A case from one of our clients, a Belgium Membership organization about the challenges we faced when implementing a complex membership matrix into CiviCRM and how we solved it from a technical point of view.

Page 3: Membership Application (CiviCRM)

2Mpact

About 2Mpact

2Mpact is the leading Belgian Association Management company

• Day-to-day administration and management of the association

• Membership retention, fulfillment and efficient use of member benefits and services

• Communication services: websites, print media, digital newsletters

• Event services: working groups, task forces, educational sessions, conferences

• Strategic advice concerning content, lobby and thought leadership

Page 4: Membership Application (CiviCRM)

Index

1. Multi-level MembershipA. IntroductionB. MatrixC. CiviCRM integration

2. Online paymentA. IntroductionB. OGMC. Online paymentD. Bank tranfer payment

3. Application/TechnicalA. IntroductionB. ChallengesC. Future/wishlist

Page 5: Membership Application (CiviCRM)

Multi-level Membership

A. Introduction

7 Membership organizations• 1 main organization• 6 sub organizations

4 Categories3 Languages3 Kinds of registrations

• Individual• Group• Student

2 Methods• New registration• Prefilled renewal

1 Application

Page 6: Membership Application (CiviCRM)

Multi-level Membership

B. Matrix

Our client has multi-level pricing

• Main organization• Mandatory membership• Cost A = different price based on professional status

• Employed, Self employed, Student, Retired, …• Sub organization

• 1 Mandatory, multiple possible• Cost B1,B2,B3, … = fixed price for each sub organization

Total for membership: A + B1 + B2 … And extra options (subscriptions based on choices)

Page 7: Membership Application (CiviCRM)

B. Matrix

Multi-level Membership

Leden Voorwaarden MAIN SUB1 SUB2 SUB3 SUB4 SUB5 SUB6Loontrekkenden Lic./master (in loondienst) 80 105 75 0 37 40 0Zelfstandigen Lic./master (in hoofd - of bijberoep) 80 105 95 0 37 40 0Studenten Student master 0 0 0 0 0 0 0Geassocieerden Geen 80 105 75 0 37 40 0Gepensioneerden Gepensioneerden 80 105 75 0 37 40 0

KortingWerkloos Werkloos zijn 25 25 75 0 37 40 0

Pas afgestudeerd Tot 3 jaar na afstuderen 15 105 75 0 37 40 0

Samenwonend Partner is lid 55 105 75 0 37 40 0

Groep Vanaf 5 inschrijvingen 55 105 75 0 37 40 0

Page 8: Membership Application (CiviCRM)

C. CiviCRM integrationCategory selection (sub organization)

Multi-level Membership

Page 9: Membership Application (CiviCRM)

C. CiviCRM integrationProfessional status (main organization)

Multi-level Membership

Page 10: Membership Application (CiviCRM)

C. CiviCRM integration

Created 7 Organizations

Multi-level Membership

Page 11: Membership Application (CiviCRM)

C. CiviCRM integration

Created 7 Organizations• Custom fields for “Sector” and “Language”

Multi-level Membership

Page 12: Membership Application (CiviCRM)

C. CiviCRM integration

Created 7 Membership types for every Organization• Main Organization: without price (priceset)• Sub Organizations: membership + price

Multi-level Membership

Page 13: Membership Application (CiviCRM)

C. CiviCRM integration

1 Priceset for Main Organization

Multi-level Membership

Page 14: Membership Application (CiviCRM)

C. CiviCRM integration

1 Priceset for Main Organization

Multi-level Membership

Page 15: Membership Application (CiviCRM)

C. CiviCRM integration

Created 7 Organizations• Custom fields

Created 7 Membership types for every Organization• Main Organization• Sub Organizations

1 Priceset for Main Organization

Multi-level Membership

Page 16: Membership Application (CiviCRM)

Index

1. Multi-level MembershipA. IntroductionB. MatrixC. CiviCRM integration

2. Online paymentA. IntroductionB. OGMC. Online paymentD. Bank tranfer payment

3. Application/TechnicalA. IntroductionB. ChallengesC. Future/wishlist

Page 17: Membership Application (CiviCRM)

Online payment

A. Introduction2 Payment methods

• Ogone online payment• Bank transfer

1 Reference code (OGM)

Page 18: Membership Application (CiviCRM)

Online payment

B. OGM

+++090/9337/55493+++

“Overschrijving met Gestructureerde Mededeling”

Used in Belgium for automated payments

First ten are reference number

Last 2 are checksum (restnumber euclidean division by 97)

(+++) or (***) placed before and after

Page 19: Membership Application (CiviCRM)

Online payment

C. Online payment

Integration with Ingenico services (Ogone)*

Parameters send to Ogone with an hidden html form

Callback from ogone (succes, fail, cancel)

* More about Ogone/Ingenico services: http://payment-services.ingenico.com/be/nl

Page 20: Membership Application (CiviCRM)

Online payment

D. Bank transfer payment

Send member payment information (OGM)

Integration with civiBanking extension*

3 matchers• OGM matcher• Membership number matcher• Name matcher

* Thanks to Björn Endres, more information about civiBanking:https://london2014.civicrm.org/sessions/civibanking-processing-bank-statements-made-easyhttps://amsterdam2015.civicrm.org/sessions/civibanking-processing-bank-statements-made-easy

Page 21: Membership Application (CiviCRM)

Index

1. Multi-level MembershipA. IntroductionB. MatrixC. CiviCRM integration

2. Online paymentA. IntroductionB. OGMC. Online paymentD. Bank tranfer payment

3. Application/TechnicalA. IntroductionB. ChallengesC. Future/wishlist

Page 22: Membership Application (CiviCRM)

Application/Technical

A. Introduction

Application step 1:

Page 23: Membership Application (CiviCRM)

Application/Technical

A. Introduction

Application step 2:

Page 24: Membership Application (CiviCRM)

Application/Technical

A. Introduction

Application step 3:

Page 25: Membership Application (CiviCRM)

Application/Technical

A. Introduction

Application step 4:

Page 26: Membership Application (CiviCRM)

Application/Technical

A. Introduction

Application step 5:

Page 27: Membership Application (CiviCRM)

Application/Technical

A. Introduction

Application step 6:

Page 28: Membership Application (CiviCRM)

Application/Technical

B. Challenges

There were quite a few technical challenges to get the application running:

• Challenge 1: Glue

• Challenge 2: Membership & contribution via CiviCRM API

• Challenge 3: Registration vs Renewal

• Challenge 4: Multistep Form > Temporary Saves

• Challenge 5: OGM code

• Challenge 6: Activities

Page 29: Membership Application (CiviCRM)

Application/Technical

B. Challenge 1: Glue

Angular JS: inspired by CiviCon London 2014 session*• MVC model• Write less code• Flexible• API integration• Translation integration module: https://angular-gettext.rocketeer.be

• Multistep tutorial: https://scotch.io/tutorials/angularjs-multi-step-form-using-ui-router

* More about Robin Mitra’s session: https://london2014.civicrm.org/sessions/using-angularjs-enhance-user-experience

Page 30: Membership Application (CiviCRM)

Application/Technical

B. Challenge 2: Membership & contribution via CiviCRM API

1. Link cid to membership type

$mt = civicrm_api3('Membership', 'create', array('membership_type_id' => "X",'contact_id' =>"Y",));

2. Link cid to contribution & amount

$ct = civicrm_api3('Contribution', 'create', array('sequential' => 1, 'financial_type_id' => 2, 'total_amount' => $$, 'contact_id' => “Y", 'contribution_status_id' => 2,));

3. Link membership to payment

$ok = civicrm_api3('MembershipPayment', 'create', array('membership_id' => $mt,'contribution_id' => $ct, ));

Page 31: Membership Application (CiviCRM)

Application/Technical

B. Challenge 3: Registration vs Renewal

For renewal applications

We provide a url with the civicrm hash append to it:

https://demo.be/registration/#form/step1?hash=dd51b44ba4808a9651a9ef068acb81f3

Then the data gets loaded from the CiviCRM API

Page 32: Membership Application (CiviCRM)

Application/Technical

B. Challenge 4: Multistep Form > Temporary Saves

Because it was a multistep form we wanted to save data regulary within the application

These saves were easily done with the CiviCRM API

Page 33: Membership Application (CiviCRM)

Application/Technical

B. Challenge 5: OGM code

cid_zerod mod_cid current_date MOD_date OGM_EX_MOD OGM_PART_1 (3) OGM_PART_2 (4) OGM000001 01 20141127160001 56 0000010156 000 0010 000/0010/15668901234 88 20141127160014 69 9012348869 901 2348 901/2348/86908234568 49 20141127160015 70 2345684970 234 5684 234/5684/97027123457 73 20141127160016 71 1234577371 123 4577 123/4577/37174456789 55 20141127160017 72 4567895572 456 7895 456/7895/57290567890 00 20141127160018 73 5678900073 567 8900 567/8900/07356

last 6 cid mod 97 current date mod 97 concat 6 + 2 + 2

Page 34: Membership Application (CiviCRM)

Application/Technical

B. Challenge 6: Activities

• We created different activities to log different steps within the application

Page 35: Membership Application (CiviCRM)

Application/Technical

C. Future/wishlist

Integration with CiviRules*

Universal registration process as CiviCRM extension

* More about CiviRules: https://civicrm.org/blogs/erikhommel/civirules-basic-engine-result-our-first-sprint

Page 36: Membership Application (CiviCRM)

Index

1. Multi-level MembershipA. IntroductionB. MatrixC. CiviCRM integration

2. Online paymentA. IntroductionB. OGMC. Online paymentD. Bank tranfer payment

3. Application/TechnicalA. IntroductionB. ChallengesC. Future/wishlist

4. Demo

Page 37: Membership Application (CiviCRM)

Contact information

2Mpact nv

Wouter Hechtermans [email protected]

Kortrijksesteenweg 10079000 Gent Belgium

Tel. 09 233 48 66Fax 09 233 51 19

Page 38: Membership Application (CiviCRM)

That’s all folks