Only charge shipping on first recurring payment?

owlzowlz Member
in Help edited September 2010
Hi,

I set up a test recurring payment (subscription) in v051. Things are working just fine, but I noticed that the shipping charges are getting tacked onto each recurring payment.

Is there a way (in v051) to charge the shipping only once, on the first payment, and thereafter not charge any shipping?
Comments
  • brettbrett FoxyCart Team
    Hi @owlz.
    Is this a new store or an old one? v051 is 2 version old at this point, and v070 has some _major_ subscription improvements you may need or want.

    Short answer: In 051, if the initial transaction had shipping, subsequent transactions will as well. In v070 you could modify this with the API or in the admin, but in v051 there's not much you could do other than perhaps doing two products on the initial transaction: one with shipping and non-recurring, and a recurring product in a category without shipping.
  • It is an old store. I know v070 has some nice improvements, but there is a fair amount of custom stuff going on in my store and it looks like I'd have to troubleshoot if I simply upgraded (I did a quick test, and for one thing the custom email that was supposed to fire using the xml datafeed did not). Thus, I am leaning toward staying where I am with v051. Maybe I should reconsider, though.

    Thanks for the information.
  • brettbrett FoxyCart Team
    (I did a quick test, and for one thing the custom email that was supposed to fire using the xml datafeed did not)
    If you already have that going then I'd piggyback on that. Only problem may be actually determining whether or not a payment is the first or a subsequent recurring payment, since the "start date" values in older FC versions was a little weird. Let us know if you need help.
  • Only problem may be actually determining whether or not a payment is the first or a subsequent recurring payment, since the "start date" values in older FC versions was a little weird. Let us know if you need help.

    Yes, I was wondering about that and have not come up with an idea yet. Do you have a suggestion for how to handle that? I'd like to be able to flag the admin emails so that the store owner does not think they are getting another order. Or if that isn't doable I'd like to add a notice to the custom email that is triggered by the datafeed saying something to the effec of "This is not a new order"
  • lukeluke FoxyCart Team
    I'd definitely recommend upgrading. Subscriptions done prior to 070 are just confusing for customers because there is no true start date, next date and end date. Things just get strange. 070 gives you flexibility both in the admin and in the receipts that really help a lot. I can say that with confidence because after we upgraded (FoxyCart uses FoxyCart to handling our billing) I was wondering how we got along without it.
  • I'd really like to, but my time and budget to restore functionality to my any of my own integrations that break after an upgrade is limited. I've done a quick test and looked at the upgrade notes, and it looks like it would be significant. I'm definitely tempted, but would rather find a basic solution for my current v051 setup.

    Can you point me in the right direction regarding the questions in my previous post?
    I'd like to be able to flag the admin emails so that the store owner does not think they are getting another order. Or if that isn't doable I'd like to add a notice to the custom email that is triggered by the datafeed saying something to the effec of "This is not a new order"

    I would sure appreciate hearing any ideas. I am going to write the datafeed to a file when tonight's recurring transaction runs so that I can look for something unique in the recurring transaction XML that might allow for a conditional change to the custom email being generated. But if you have something specific you could suggest I would love to hear it.

    Thanks.
  • brettbrett FoxyCart Team
    So, if you stay on 051 and you want to get specific emails based on whether it's a brand new or automatically recurring payment, you could do it in one of two ways.
    1) The "smart" way would be to store somewhere (db or even just a text file) a list of email addresses that you've seen subscriptions for. I might take the approach of making an array in PHP, then serializing it and storing the serialized version in a file. Then when you need it you could just read the file and unserialize the contents and get your array back, easy peasy.

    Then when a subscription comes through you could see if the billing email exists in your array. If not, it's a new sub and you can send the appropriate email (and add it to the array). If it's already there, you know it's not a new subscription.

    2) The "dumb" way would be to go off the transaction time. You'll notice that we run subscriptions every day between 4am-6am PST (different versions run at different times, so check when they hit normally and go from there). This isn't really that robust, but may be easier. But definitely not very robust.

    Thoughts?
  • Thanks for the reply. I can see advantages (and disadvantages) to both methods and neither of them were ones I had thought of yet, so thanks.

    Right now I'm leaning toward not doing either because I talked to the store owner and he feels like he can keep track of it manually. If it becomes a problem we'll probably put the energy into upgrading to v070.
  • brettbrett FoxyCart Team
    Ok, fair enough. We're here for ideas and help if you need it.
Sign In or Register to comment.