Migrating existing customers

's Avatar

gander

18 May, 2011 08:55 PM

Current details:
All current subscriptions are in my data, they subscribed via non-recurring paypal business transactions. I simply have an expiration date and have them re-up every time their subscription expires. I'm going to start off with the CG paypal hosted solution for the time being.

So, I'm working on the code to migrate my billing to Cheddar Getter. I currently have about 200 paying subscribers and my initial thought was to create their CG customer records on next login. However, that kind of throws me for a loop on handling their current subscriptions which could be as much as a year out. So. . .

1) Is there a way I can replicate their current subscriptions in CG (and if so, any pointers?). This would definitely be the optimal solution from my side then just have CG take over when their subscription is up (realizing of course they'll have to go through the PayPal approval process, etc - not that different than what they have to do now).

or

2) Should I just keep them away from CG until their current subscription expires then pass them to CG for new subscription?

or

3) Any other alternative/additional suggestions?

Thanks!
Gerald

  1. Support Staff 1 Posted by Marc Guyer on 19 May, 2011 04:37 PM

    Marc Guyer's Avatar

    Hi there -- It sounds like option (1) is the way to go. It's pretty simple. The key is to change the initial bill date to whatever their existing next bill date is when you put them in CG. Also, use the Bill Reminder email template to send a reminder to the customer to head to your site to update their billing info before their bill is due. If they do not update their billing info prior to the billingDatetime, their account will be auto-canceled.

  2. 2 Posted by Anderson, Geral... on 20 May, 2011 09:19 PM

    Anderson, Gerald's Avatar

    Got it, however if you create a paypal user with an initialBillDate in the
    future it creates the user as cancelled. I'm guessing this is accurate, I
    haven't actually gone through to paypal yet. Please see attached screenshot
    (see current status, and bill dates)

    Gerald

    P.S. You're a busy guy Marc, and doing outstanding work keeping up with
    everything.

    On Thu, May 19, 2011 at 11:37 AM, Marc Guyer <
    [email blocked]> wrote:

  3. Support Staff 3 Posted by Marc Guyer on 22 May, 2011 02:40 PM

    Marc Guyer's Avatar

    Hi Gerald -- That's expected behavior. When setting up a customer with a paypal payment method, the customer must be redirected to paypal to approve the preapproval. Have you seen this article?

    http://support.cheddargetter.com/kb/api-8/using-paypal-with-the-api

    I suggest setting up the customers without payment methods, then use the Bill Reminder email to remind customers to come to your site to update their payment method. When they visit your site, then update their subscription to pay by PayPal to do the redirect process.

  4. 4 Posted by Anderson, Geral... on 22 May, 2011 04:44 PM

    Anderson, Gerald's Avatar

    Hrm, Yeah, I've read the article, but still don't seem to be grasping what
    you're saying.

    As I understand it there are only two possible options for method: :paypal
    and :cc. The system defaults to :cc so there's no way I know of to specify
    no billing method.

    If I specify paypal I get the problem we're already talking about and if I
    specify anything else I'm expected to have valid cc details. Which can be
    easily faked but then it expects a valid cc gateway to be configured which
    of course is a whole other problem.

    I would be perfectly happy to be able to specify that I'm JUST creating a
    customer with plan X with a billing date on Y and since Y > today just
    pretty much ignore it all. But I can't seem to figure out how to get it to
    do that.

    I'll keep plugging away and will post again if I come up with something
    different.

    Thanks again Marc!
    Gerald

    On Sun, May 22, 2011 at 9:40 AM, Marc Guyer <
    [email blocked]> wrote:

  5. 5 Posted by Anderson, Geral... on 22 May, 2011 05:07 PM

    Anderson, Gerald's Avatar

    Ok, I think I may have found it. I needed to create free legacy plans that
    mirror the real subscription plans then when those come due they get sent
    through the paypal machine.

    Is that the current way of thinking? A little kludgy, but seems at the
    moment as if it'll work.

    Thanks!
    Gerald

  6. Support Staff 6 Posted by Marc Guyer on 22 May, 2011 10:30 PM

    Marc Guyer's Avatar

    No need to use free plans. Just don't pass in a payment method at all. Sorry if the documentation isn't especially clear on that. Payment method used to be required on paid plans but hasn't been for several months.

    I would be perfectly happy to be able to specify that I'm JUST creating a customer with plan X with a billing date on Y and since Y > today just
    pretty much ignore it all. But I can't seem to figure out how to get it to
    do that.

    Strange. Are you getting an error message? The only required bit of the subscription post is planCode.

  7. 7 Posted by Anderson, Geral... on 23 May, 2011 01:19 PM

    Anderson, Gerald's Avatar

    Hrm, if I don't specify paypal as method it's requiring firstName, lastName,
    CC#, and Expiration date. If I do submit that information I get an error
    that there's no gateway configured.

    All of that's from the top of my head but pretty sure it's accurate. You
    know what it might be? The ExpectedBehavior Gem may be enforcing those
    requirements when you no longer are. That's a 3rd party gem that you guys
    just advocate, right? Or is it in-house work?

    Thanks!
    Gerald

    On Sun, May 22, 2011 at 5:31 PM, Marc Guyer <
    [email blocked]> wrote:

  8. 8 Posted by Anderson, Geral... on 23 May, 2011 01:31 PM

    Anderson, Gerald's Avatar

    Curiouser and curiouser just took a quick (very) look at the EB Gem and
    don't see anything enforcing those limitations. Also verified that the
    credit card requirements were not checked in my CG product configuration.

    G

  9. Support Staff 9 Posted by Marc Guyer on 23 May, 2011 01:34 PM

    Marc Guyer's Avatar

    Which account (product code) are you using for development? I'll turn
    on some verbose logging and then have you issue a request. Then, I'll
    be able to provide more info.

  10. 10 Posted by Anderson, Geral... on 26 May, 2011 01:05 PM

    Anderson, Gerald's Avatar

    Marc,

    Sorry, have been swamped the last couple days. I'm using product
    SWEEPSU_DEV for testing.

    It does cross my mind that it might be because I have it set to bill
    immediately (I historically bill up-front). It does seem to me, though,
    that it's still legit to have a plan set to bill immediately but be able to
    set a initialBillDate in the future.

    Anyway, if you want to configure the logging and let me know I'll try a few
    transactions for you.

    Thanks!
    Gerald

    On Mon, May 23, 2011 at 8:34 AM, Marc Guyer <
    [email blocked]> wrote:

  11. 11 Posted by Anderson, Geral... on 26 May, 2011 01:44 PM

    Anderson, Gerald's Avatar

    Ok, confirmed that if I set to bill after the period this works. However,
    it's not any better than creating the previously mentioned legacy plans for
    the folks because it's still not the way a 'normal' subscription works for
    my app.

    Maybe it's me, I'm having a very difficult time grasping how to recreate my
    billing process, maybe I'm just missing something. Let me outline what I've
    historically done and where I'm at and see if you can see a better way out:

    1. All non-free plans bill up-front

    2. All new accounts are created with an automatic 7-day free trial (number
    of days being talked about if that makes any difference). This grants
    access to all premium features for that period. It's important to note, and
    a marketing point to us that we do not require billing information to create
    account/free trial.

    3. At the end of the trial access to the application (though not community,
    etc parts of the website) are denied

    4. User purchases a subscription (1mo, 6mo, 12mo)

    5. At the end of the purchased subscription goto #4 or revert to NONE
    subscription

    [other interesting things]

    1. We have lifetime users which have been granted perpetual subscriptions
    for one reason or another (typically a sweepstake win or close
    friend/family)

    2. Administrative users (employees, etc) have perpetual subscription
    (current system doesn't even look at subscriptions for these guys).

    [migration]

    1. All existing users, upon first login after transition will have an
    account created on CG that should include the remaining time on their legacy
    subscription. I'd prefer to not have to write a lot of custom code to
    handle old vs new customers.

    2. All new users will be created with normal CG plans and shouldn't be a
    problem (except how to handle free trial, etc).

    The one feature that my system has that might be something you guys may want
    to think about in the future is that when a subscription expires, it
    automatically transitions to a different subscription plan (ie. SUB1MO
     expires, customer now has NONE subscription)

    As part of the current re-factor (but not an issue for the initial
    migration) is we will begin offering a FREE plan that allows access to
    portions of the application. Customers should be able to move between this
    and paid subscriptions as needed. I don't see this as much of a concern,
    but trying to be thorough ; )

    I assume what I'm doing isn't that unusual and my brain's just not taking it
    in, for some reason, how to accomplish this. Any insite would be seriously
    appreciated.

    Thanks!
    Gerald

  12. Support Staff 12 Posted by Marc Guyer on 26 May, 2011 01:56 PM

    Marc Guyer's Avatar

    That all makes sense. You should be able to set the initialBillDate when creating a customer. That should work the same for both the migration and for new customers on the free trial.

    I've enabled logging on your dev account. Please try again and we'll take a look.

  13. 13 Posted by Anderson, Geral... on 26 May, 2011 02:14 PM

    Anderson, Gerald's Avatar

    Ok product SWEEPSU_DEV:

    at: 09:07 (CDT) I deleted the customer
    (code: 63a244beb7648aa396a00daa922677b0)

    at: 09:08 I made 4 consecutive attempts to create customer billing bill
    immediately plan and received: A value is required:
    subscription[ccFirstName]

    Here is the data that was sent (using EB/cheddargetter_client_ruby):

    {:code=>"63a244beb7648aa396a00daa922677b0",
     :firstName=>"Gerald",
     :lastName=>"Anderson",
     :email=>"[email blocked]",
     :subscription=>{:planCode=>"SUB1MO", :initialBillDate=>Fri, 27 May 2011}}

    Thanks!
    Gerald

  14. Support Staff 14 Posted by Marc Guyer on 26 May, 2011 02:31 PM

    Marc Guyer's Avatar

    Ok, good, we can replicate that. It seems that there might be a bug when setting the initialBillDate on a paid plan without payment data. We intend for this to be possible. The team is looking into this now.

  15. Support Staff 15 Posted by Marc Guyer on 26 May, 2011 03:39 PM

    Marc Guyer's Avatar

    Fixed and deployed. Thanks for reporting the issue.

  16. 16 Posted by Anderson, Geral... on 26 May, 2011 03:49 PM

    Anderson, Gerald's Avatar

    Damn! That was quick. Nicely done and. . .

    Confirmed.

    Thanks Marc,
    Gerald

    On Thu, May 26, 2011 at 10:39 AM, Marc Guyer <
    [email blocked]> wrote:

  17. Marc Guyer closed this discussion on 26 May, 2011 04:02 PM.

Discussions are closed to public comments.
If you need help with Cheddar please start a new discussion.

Keyboard shortcuts

Generic

? Show this help
ESC Blurs the current field

Comment Form

r Focus the comment reply box
^ + ↩ Submit the comment

You can use Command ⌘ instead of Control ^ on Mac

Recent Discussions

28 Mar, 2024 10:45 PM
24 Jan, 2024 08:33 AM
11 Jan, 2024 07:13 AM
30 Nov, 2023 02:07 AM
22 Nov, 2023 08:41 AM