• Review UI of UberCart's auto-renew support with Authorize.net (and later Ogone for Euro). We need to make sure members are informed about billing and able to cancel.
  • When the renewal is charged, make sure CiviCRM is updated, this happens with association_drupalorg_update_membership() right now.
  • Make sure our live Authorize.net account (and later Ogone) is ready for recurring billing.
  • Make any UI improvement to cross-selling, like with DrupalCon and shirts. We don't want want someone with an auto-renewing membership to buy another one. We may want to offer auto-renewing membership.

Comments

twardnw’s picture

Assigned: Unassigned » twardnw
twardnw’s picture

Options for recurring payment systems are:

  • Authorize.net - The DA already has an account, to which we can add CIM or ARB.
  • Paypal
  • Recurly
  • Chargify

I know Paypal and Authorize.net both integrate with the uc_recurring module, so I am going to start by researching those methods.

Test/dev site is at : http://renew-association.redesign.devdrupal.org

twardnw’s picture

are we going to be selling memberships recurring-only, or have it present an option to be recurring?

twardnw’s picture

From an email and conversation around the DA office, we will offer both options, on both types of membership (org/individual), as separate products. 4 products altogether:

  1. Individual 1 time
  2. Individual recurring
  3. Org 1 time
  4. Org recurring
webchick’s picture

That sounds good to me! I've had better luck with Authorize.net recurring billing than PayPal, but not sure about Ubercart integration.

twardnw’s picture

Ubercart is going to be the easy part I think. The Authorize.net UC module supports ARB. I think the trickier part is going to be getting success\fail info back to CiviCRM.

webchick’s picture

deviantintegral is someone from Lullabot who's done some work with ARB and CiviCRM before (and has also worked on the DA site before). I'll see if I can ping him.

rgarand’s picture

Just getting set up now so I can contribute to this as well. There was some discussion of using the civicrm recurring subscriptions option earlier; just to catch up on everything, is ubercart integration the preferred way to go now?

twardnw’s picture

We're not set on any method yet. Still considering options. Let us know your thoughts.

twardnw’s picture

Currently, we use Ubercart to bill memberships (all products actually) and CiviCRM is recording the information. To me, it would make sense to keep it that way. Ubercart + uc_recurring and adding ARB to our Authorize.net account.

One other consideration is cost:

  • Authorize.net - working to find out the cost of using ARB.
  • Chargify - $999/month, no transaction fees
  • Recurly - $69/mo, 1.25% + $0.30 per transaction
  • Paypal - No monthly, 2.2% + $0.30 per transaction
drumm’s picture

(A big motivation for moving the front-end to UberCart, and likely Drupal Commerce with Drupal 7, is that we gain more control over it. We have a lot more community knowledge around Drupal than CiviCRM. And we have more lines of products like shirts and DrupalCon registration. A single store for everything is good to have.)

twardnw’s picture

Are Ubercart conditional actions triggered when a recurring order is charged?

twardnw’s picture

Update, Authorize.net would only cost an additional $10/mo to use.

Anonymous’s picture

I wrote an integration module that attaches CiviCRM components to Ubercart products. http://drupal.org/project/uc_civicrm_product

It could get you started... I use it so that I can use Ubercart instead of CiviCRM to manage transactions, and I get to use all the Ubercart features like coupons and recurring purchases. The customer-user is completely unaware of CiviCRM behind the scenes, yet CiviCRM still has complete data on memberships, contributions and event participation.

I am supposed to write a blog post about this soon, actually. You'll see it at civicactions.com next weekish.

rickmanelius’s picture

I currently operate a website with D7 + UC_recurring + Authorize.net CIM. I'm off for tonight but feel free to find me in IRC tomorrow (rickmanelius) if you want to ask any questions from my experience with setting up and operating.

twardnw’s picture

Thanks for the offer rickmanelius. When using CIM, how does it relay back to UC if a CC payment fails?

rickmanelius’s picture

It tries to charge up to 3 failed attempts. And depending on how you have your configuration setup, it will allow the user to update their cc information and push it back to their profile on your authorize.net CIM account.

You can also login directly and update cc information on authorize.net. But that's way more tedious.

If a person experiences three failed attempts, the recurring payment is then canceled. If you wanted, you could potentially fire off an email through rules to let them know of the failure.

deviantintegral’s picture

Unfortunately, I don't have much experience with ARB and CiviCRM directly. However, I have done quite a bit of work with Authorize.NET ARB and CIM for other projects. If there's anything specific with Authorize.NET I could help with, feel free to ping me (and I'll watch this issue as well).

eojthebrave’s picture

I've also done a ton of work with uc_recurring (d6) and related modules though more of it is using the CIM/Card on File method instead of ARB.

To answer the question in #12, Yes. There are CA actions triggered when a new recurring billing transaction happens. Off the top of my head the triggers are something like "Recurring order renewal expired/failed/succeeded" and you can do quite a bit of fun stuff with them.

I'll echo the, "If you have specific questions feel free to ping me and I'll also follow this issue."

steve.colson’s picture

We work with civicrm every day (and have contributed patches back to their core), and have also done work with both Ubercart and Drupal Commerce.

@webchick: I gave you my card at DrupalCon regarding helping with the d.o D7 upgrade sprint in April. Perhaps some of these tasks could be rolled in to that week? (and LMK if you still think I can help offline)

twardnw’s picture

Wow, lots of help here! Love it!

So which is the better option then? Have CiviCRM handle the membership billing (via Authorize.net CIM or ARB) or have Ubercart handle the billings (again, Authorize.net CIM or ARB), and then trigger our custom CA that updates the user info in CiviCRM?

twardnw’s picture

Would anyone be interested in having an 'office hours' meeting in IRC for this?

rgarand’s picture

The reasoning for using Ubercart sounds good. Though both ways have their merits, a single store/payment system could make things easier to manage. Something like bangpound suggests could link it into the civicrm data, which sounds similar to the association_drupalorg_update_membership() function.

I'm just getting set up but after taking a quick look that function seems like it would do the necessary work if it's set up to be called on each recurring payment.

One downside of working with Ubercart is a bit more work and testing for a D7 upgrade. Uc_recurring-7.x doesn't seem to have many issues reported so far, hopefully not just due to underuse :) That may not outweigh the benefits and the development could be used to improve us_recurring if needed. I don't know yet if uc_recurring offers features such as sending email notices before the payment is charged which would likely require reading in the civicrm data somehow.

I'm up for a chat to cover the various options!

twardnw’s picture

Hmm, looks like something isn't happening with the dev site. I set up a daily recurring 'membership' to test some things. But, the order did not recur :\ Will dig and see why not.

I'm in IRC all day, I am usually in #drupal #drupal-infrastructure #drupal-watercooler, let's set something up so we can discuss in real-time.

twardnw’s picture

ok, cron doesn't run on the dev sites. And, once I triggered it via drush, association_drupalorg_update_membership() appears to be running. I can see it trying to update the contact in Civi, and failing (no civi in the dev site).

longwave’s picture

Willing to help out here where I can, especially if this requires any known or previously undiscovered bugs in Ubercart core to be fixed.

twardnw’s picture

Ok, a fair amount happened last week. A few of us at the DA had a meeting, and we are now re-evaluating Civi as the solution for tracking memberships. I am setting up a server w/ D6 and D7, with Civi 4.1 on both (thinking of the soon-to-happen upgrade to D7). There are many things that currently don't work in our Civi install, so we are looking to see if they are fixed in the newer releases, and also looking to see how Civi itself deals with recurring billings.

twardnw’s picture

So to take some small steps forward, we are setting up a second set of Civi contribution pages which use Authorize.net for payment processing. This will allow us to bill members in USD and EUR with Authorize.net and Paypal respectively, and also add the option of making the membership recur yearly.

Of note, there is a mih (Make It Happen) on civicrm.org to 'Offer Donors a Choice of Payment Processors'. Once that happens, we can then move back to a single page for each membership type (still offering set your own price and recurring).

twardnw’s picture

Oh, I also enabled the option of yearly recurring membership for the current EUR pages (IND and ORG) :)

twardnw’s picture

Status: Active » Fixed

Using CiviCRM, Authorize.net ARB (for USD), and Paypal Subscriptions (for Euro) the DA now offers recurring memberships.

CiviCRM links payment processors to a membership type, rather than the contribution page, so we currently have 4 membership types, each with it's own contribution page:

  • Individual Euro
  • Individual USD
  • Org Euro
  • Org USD

Since now have recurring memberships in USD and Euro, the needs of this issue have been addressed, marking as fixed.

webchick’s picture

YEAAAHHHH!! Awesome work, Tyler!!

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for 2 weeks with no activity.

tvn’s picture

Component: User interface » Site organization