Membership 2 Pro: Auto-bill sync and matching on PayPal

Hello,

Current Environment
WP: 4.7
Theme: Brasserie
Membership 2 Pro: 1.0.3.0
Gateway: PayPal Standard

I have a few questions that I can't seem to find an answer for.

Scenario: When moving a pre-existing user into a membership from the back end, I noticed that the system creates an invoice in "draft" state. These invoices are not modified when I change the start and expire dates in their subscription. This will be a regular occurrence for us due to the vetting process we use.

Q. How does the invoicing get synchronized for changes like this? Do we have to delete the drafts and then manually enter an invoice?
Q. How can invoices be fixed? Do incorrect invoices have to be deleted and then re-entered? If so, how do we match up payments to invoices manually?

Scenario: A user paid the fee and then canceled only the auto-renewal in their PayPal account. He intended for the subscription to just expire at the end of the period. What happened instead is that the account canceled on the spot. I've confirmed that PayPal left the money in our account.

Q. Is there a special configuration I need to change to allow "cancel at end of term" when talking to PayPal? I had to manually change the status to "Canceled (deactivate on expire date)" from "Deactivated (no access)" on the admin panel.
Q. Why is the invoice marked as "Billed" in the Billing page? Shouldn't it be marked as "Paid"?

Thanks for your time!

Best,
John

  • Rupok

    Hi John,

    Thanks for asking. I'm sorry but I'm not exactly sure how to regenerate this. Can you help me in regenerating the scenario? I can tell you better if I can regenerate the same on my test site.

    By referring to "Pre Existing users", do you mean any user on your WordPress site who was never a member of any subscription plan or some user who is a member of a plan, and now we will be adding him through the "Membership 2 > Add Member" option? After adding him, where are you checking your draft invoice? Can you please describe in details?

    Regarding the expiration at the end of the period, I think this is expected behavior. When a user cancels his subscription, that means he doesn't want it anymore. And his acccount will automatically cancel if he doesn't pay at the end of his current period. Still I'll check with our developer regarding if there is any way to make this possible that his subscription will end at the end of his current subscription period. I'll update you as soon as I get something from him.

    Please keep in mind, our developers work round the clock and they have to deal with lots of critical issues and other things. So it may take a little while for them to check this and provide a feedback.

    Regarding the invoice marked as Billed, can you please specify which billing page you are referring to? If you could give a screenshot, that will facilitate the troubleshooting process.

    I really appreciate how detailed and beautifully you made this thread. But as this is related to billing, so I need to be confirmed that I'm not checking at some wrong end. That's why I'm asking for all these confirmation. I hope you understand.

    I could tell you better about the issue if I could see it live, check your current configuration and make some tests on your site. Would you mind allowing Support Access so we can have a closer look at this?

    To enable support access you can follow this guide here:
    http://premium.wpmudev.org/manuals/wpmu-dev-dashboard-enabling-staff-login/

    Please confirm here when you are done granting Support Access. I'm looking forward to hearing from you and resolving this issue as soon as possible.

    Have a nice day. Cheers!
    Rupok

  • John

    Hello Rupok,

    "Pre-Existing users" are users who have not ever been assigned to any plans as yet and have been added through the "Membership 2 > Add Member" option. After adding the user, I go to the "Membership 2 > Billing" section and then select the "Draft" filter.

    Regarding the expiration at the end of the period, you said "When a user cancels his subscription, that means he doesn't want it anymore. And his account will automatically cancel if he doesn't pay at the end of his current period." which is exactly the behavior I would expect but what happened is that the account canceled right on-the-spot, even though the expiration is set to Dec 31, 2017.

    I'm a developer as well and fully understand and appreciate the work your team performs. =)

    Regarding the invoice marked as Billed, it's the same one as the person who canceled the auto-renew, but not the payment. So as I understand it, the invoice was paid and so the invoice should be marked as paid regardless of whether he canceled the renewal or not, right? Please see the two attached screenshots.

    Support access has been granted. =)

    We still have a couple of questions to address; synchronization of dates between invoices and memberships, and manually matching up payments to memberships. Perhaps after the items above have been tackled we can turn our attention to these?

    Let me know if you need anything else from my end.

    Best,
    John

    Billing page showing one in "Paid" status and one in "Billed"

    History of "Billed" invoice showing payment but marked as "canceled" status. Please disregard the first membership as named "Member" as it was incorrectly assigned.

  • Nithin

    Hi John,

    Hope you are doing good today. :slight_smile:

    Pre-Existing users" are users who have not ever been assigned to any plans as yet and have been added through the "Membership 2 > Add Member" option. After adding the user, I go to the "Membership 2 > Billing" section and then select the "Draft" filter.

    I checked your system, and created two new users wpmuone, and wpmutwo. I then tried to add the member to it's subscriptions, but I wasn't able to find the user in the Draft filter. Are you able to replicate this scenario? Could you please explain what step I did miss while adding the two users, so that we could have a better idea about making this work.

    Regarding the expiration at the end of the period, you said "When a user cancels his subscription, that means he doesn't want it anymore. And his account will automatically cancel if he doesn't pay at the end of his current period." which is exactly the behavior I would expect but what happened is that the account canceled right on-the-spot, even though the expiration is set to Dec 31, 2017.

    Since you are using a live gateway, I wasn't able to test this. However, I was able to replicate the same in my test system, ie subscription too gets canceled at the same time, I'm pinging the developer regarding this to check whether this is the default behaviour, or not.

    Regarding the invoice marked as Billed, it's the same one as the person who canceled the auto-renew, but not the payment. So as I understand it, the invoice was paid and so the invoice should be marked as paid regardless of whether he canceled the renewal or not, right? Please see the two attached screenshots.

    If payment arrived on your account the invoice will be marked as Paid. A member gets a billed status when the invoice is generated, but the member needs to pay for it. It's showing as billed, because it has passed the due date, and the member hasn't paid for it yet. While testing this in my system, all the successful payments are marked as paid invoices.

    Please advise if I had missed out anything, so that I could give a closer look at those, and address your other issues. Have a nice day. :slight_smile:

    Kind Regards,
    Nithin

  • John

    Hello Nithin,

    First, thanks for asking - I'm very well, thank you and thanks for taking the time to review my issues. I'll reply in the same order as yours to hopefully keep this understandable! LOL

    "Pre-existing Users" issue

    The "Pre-existing Users" issue may not have been explained well enough. Basically, after I change the plan dates for any user, I would hope that the invoice dates be automatically changed to match.

    After I assigned our users to plans, I had to change their date ranges. When I look for invoices on the "Billing" page, I don't see any that correspond to the updated user/plan/date combinations. There are, however, "Draft" invoices which I did not create and that have dates that don't make sense to me, except that they seem to have been created right at the time when I added the users to the plan using the original dates.

    Have a look at user "jcorea" as an example... His subscription runs from 2017-01-01 until 2017-01-15. I did this to give 15 days of access "on the house" while we transition to the new system. I expected an invoice to be created with an Invoice and Due Date of 2017-01-15 (or 2017-01-16) but instead a "Draft" invoice (#4084-1) was created with an Invoice date of 2017-01-03 and a Payment Due date of 2018-01-03.

    *** Immediate needs question ***
    Do I have to create manual invoices for each user that has been modified this way? And if I do, should I just delete all the associated "Draft" invoices since they don't have the right dates?

    Questions for a better understanding of the module
    How and when are invoices created? Is there a CRON job that runs to perform this task? Is it only at certain system events like adding a plan to a user where this occurs? Do date changes trigger invoice updates? How far ahead of time do users get notified of a new invoice and may we configure that lead time and how many reminder notices are generated?

    Renewal cancellation issue

    Thanks for escalating this to the developers.

    "Invoice marked as Billed" issue

    The "invoice marked as Billed" issue is actually the same as the Renewal cancellation issue. Have a look at user "mtoms". He's the one who canceled his renewal but not the account overall. The system canceled his account as you noted in your test system and it left his invoice in the "Billed" state. The payment succeeded and is in the PayPal account but didn't update the invoice to the "Paid" state. I assume that it's because of the account being canceled. I expect that you will have to escalate this to your developer team as well.

    Unanswered Questions

    If we have a manual payment in PayPal, how do we attach it to an open invoice?
    Can a membership be created that doesn't auto-renew but still reminds members that their membership is expiring soon?

    Thanks again for all your time and patience.

    Best regards,
    John

  • Rupok

    Hi John,

    So sorry for the delay from our end. Our plugin developer can give you best idea regarding these, so Nithin has already pinged our developer regarding your questions and we are waiting for his response. I believe, he will come up with his feedback on this soon.

    Please keep in mind, our developers work round the clock and they have to deal with lots of critical issues and other things. So it may take a little while for them to check this and provide a feedback. I appreciate your patience.

    Have a nice day. Cheers!
    Rupok

  • John

    Hello Rupok,

    I can certainly understand that the developers need some time, as I said before, I'm a developer too, but I don't think that I quite comprehend your message. Are you telling me that all of my prior questions will be answered by the developer or are you saying that they have all been answered in the prior post?

    And one more question; is there any documentation that fully describes how the invoicing system works? I'm sure that would clear many things up for me.

    Best regards,
    John

  • Kasia Swiderska

    Hello John,

    No, we don't have documentation about the invoices. We have overall documentation for whole plugin.

    What Rupok had in mind is that we have to consult your questions about invoices with developer - reason is that invoices are bit complex subject in Membership and your questions are very specific and we don't want to give you wrong answers.

    If we have a manual payment in PayPal, how do we attach it to an open invoice?
    Can a membership be created that doesn't auto-renew but still reminds members that their membership is expiring soon?

    Membership sends emails about expiration of membership - also when membership is added manually. This is matter of setting up Automated Responses in Membership 2 Settings


    this is response that comes with add-on Additional Automated Responses

    There is no option to add payment gateway to manual invoice. You have to create invoice and add user, set status, price and due date.
    And check "Execute status change actions on Save (add/remove membership) " so this will affect user membership:

    kind regards,
    Kasia

  • John

    Hello Team,

    It's been 15 days since the initial report and one week since the last contact. Would you be so kind as to post a status update?

    Additionally, there are several other problems we have encountered in the mean time. For example, I have a user who I watched pay an invoice and it now shows overdue and unpaid in the "Billing" page, but the transaction logs show the payment.

    Our need is now critical as it is becoming almost impossible to manage this process with only 23 paying members.

    At this point, I am very frustrated and am in need of assistance in understanding how to make this work properly as soon as possible.

    Thank you,
    John

  • Rupok

    Hi John,

    I'm terribly sorry for the delay in response and I really do apologize for this. This type of delay is not a usual scenario, but this happened in this case which should not happen.

    So I'm pinging one of our SLS (Second Level Support) guys right now and personally requesting him to facilitate this and provide a feedback as soon as possible. I'll update you as soon as we get something from him.

    I do apologize for the delay again. I believe, our SLS guy will come up with a feedback very soon. I really appreciate your patience.

    Have a nice day. Cheers!
    Rupok

  • Rupok

    Hi John,

    We have already pinged one of our SLS guys and he confirmed that he is working on this. As this is a complex one, it's taking a bit longer than usual. I really do apologize for this.

    But I've pinged him again just now and requested him to prioritize this task. He said, he will come up with his feedback very soon. I hope, you will get an update from us really soon. We will update you as soon as we get something from him.

    I totally understand that it's getting delayed and you are facing inconveniences for this. I'm so sorry. I really hope, this issue will be solved soon.

    I appreciate your patience very much.

    Have a nice day. Cheers!
    Rupok

  • John

    Hi Rupok, Thank you for the notes, but are we actually any closer to an answer? It's been a month and I've had to abandon using the plug-in (at least for now) because it's apparently not ready for the real world yet. I strongly recommended M2P but have been forced into looking at other solutions because my management team is very frustrated, though I'd, of course, prefer to use M2P. Thank you.

  • John

    Hello,

    It has been two full months now and while I understand that things take time, I have not received a single meaningful status update. Needless to say, at this point, I'm underwhelmed. Look at the history of updates and see how many times someone was supposed to get back to me ASAP and I'm still waiting.

    I have been reviewing alternative solutions for membership billing and will be required to choose another one if I don't have a concrete status and plan to resolve our billing issues for management.

    Thank you,
    John

  • Nithin

    Hi John,

    Sorry for the delay in getting back to you, I got an update from the developer regarding this, when it comes to draft, the only way an Invoice can be set as draft, is from admin, or when something goes wrong during payment. Could you please try flushing the Permalinks, under Settings > Permalinks, perhaps flush the permalinks might help here, as the PayPal IPN return page may not be registered in permalinks list.

    Q. How does the invoicing get synchronized for changes like this? Do we have to delete the drafts and then manually enter an invoice?

    Once you confirm the payments from PayPal, then you can manually change invoice status to Paid, and set the subscription to active, under Membership 2 > All Members, and hover over the member, and select Subscription Details, and you can set the status to active for specific membership.

    How can invoices be fixed? Do incorrect invoices have to be deleted and then re-entered? If so, how do we match up payments to invoices manually?

    Changing the status of the invoice should do it, invoices doesn't need to be deleted. If the subscription has a status Pending, and invoice is draft, it's possible that the subscription status will get changed automatically to Active. You can confirm these from the subscription details page, as mentioned above.

    How and when are invoices created? Is there a CRON job that runs to perform this task? Is it only at certain system events like adding a plan to a user where this occurs? Do date changes trigger invoice updates? How far ahead of time do users get notified of a new invoice and may we configure that lead time and how many reminder notices are generated?

    I'm afraid, the last two question somehow slipped from the developer, so I'm checking this question with the developer. However, as far as I know, there is a WordPress Cron Job that runs every 6 hours, and the invoices gets updated according to that.

    If we have a manual payment in PayPal, how do we attach it to an open invoice?
    Can a membership be created that doesn't auto-renew but still reminds members that their membership is expiring soon?

    You meant a payment that isn't made through the site? If it's one time payment, you can find the option, under Membership 2 > Billing > Create new Invoice, but there isn't any way to link to the gateways. Other than that, the way the payment gateways behave, a user will have to subscribe to membership through the website for it work fine with the payment gateways.

    You can enable the Additional Automated Messages add-ons, under Membership 2 > Add-ons, where you can enable email templates, which'll notify the users about their membership status like registration, expiry, renewal etc.

    For the add-on to work, please try the following patch attached below, and replace the file class-ms-model-communication.php with the attached one, in the following path: /wp-content/plugins/membership/app/model/. This fix will be provided in the next plugin update, so that you don't have to worry about the file being overwritten in the next release.

    Please advise if I had missed out anything, so that I could check with the developer, and get back to you asap. Have a nice day. :slight_smile:

    Kind Regards,
    Nithin

  • John

    I see that M2P has gone through a few version updates since I last tried using it for my site. Do you know if the following are now supported?

    1. Multi-Site.
    2. Allow an approval process. We need prospects to apply with our custom application form and only be billed when accepted.
    3. Have an application fee for the first billing. Basically our membership is $500 per year with a $50 one time application fee.
    4. We want to allow members self-service access to their membership invoices for printing, etc...
    5. We would like to auto create invoices for the new period when their membership is expiring but not auto-bill.
    6. We would like to automatically remind members when their expiration is coming up and allow them to pay the renewal invoice.
    7. We need for failed payments to not allow the member to access the system after their expiration date. Additionally, we need to be able to cancel a membership before the expiration date and not allow them to renew.
    8. We would also like a web-store available only to members, but I think the answer is that it must be a WooCommerce shop - right? If WooCommerce, is there a central way for members to see their invoices for both membership and products/services ordered?

    Thanks for your attention,
    John

  • Kasia Swiderska

    Hello John,

    1. Multi-Site.

    Multisite was already supported in previous version of the plugin. Can you describe more what type of support have you in mind?

    2. Allow an approval process. We need prospects to apply with our custom application form and only be billed when accepted.

    3. Have an application fee for the first billing. Basically our membership is $500 per year with a $50 one time application fee.

    No, those features were not added to the plugin.

    4. We want to allow members self-service access to their membership invoices for printing, etc...

    Members can access their invoices from account page - that option was also in previous versions.
    Invoices are displayed - they can be printed from browser option.

    5. We would like to auto create invoices for the new period when their membership is expiring but not auto-bill.

    I'm not sure if In understand correctly. Auto renewing payments are depending on the payment gateway - if membership is recurring and gateway is one that handles recurring payments, then invoice will be created and payment will be automatically.
    But if you use for example Single PayPal gateway for recurring payments then your members have to confirm each recuring payment individually.

    6. We would like to automatically remind members when their expiration is coming up and allow them to pay the renewal invoice.

    This feature is also already present in plugin. It is one of Automated Email Responses (add-on in Membership) under template "Subscription - Before expires Message:" - and users can then pay invoices from account page.

    7. We need for failed payments to not allow the member to access the system after their expiration date. Additionally, we need to be able to cancel a membership before the expiration date and not allow them to renew.

    This option is not present in the plugin.

    8. We would also like a web-store available only to members, but I think the answer is that it must be a WooCommerce shop - right?

    That doesn't have to be WooCommerce. It can be other e-commerce solution - because Membership 2 Pro would be used in this case to protect Products (Membership already has option to protect custom post types - like products) and checkout pages (that can be done with pages protection if store solution uses pages, or with url protection if store is using virtual pages).

    If WooCommerce, is there a central way for members to see their invoices for both membership and products/services ordered?

    No, there is no such integration between Membership 2 Pro and any other e-commerce plugin that would do that automatically.

    kind regards,
    Kasia

Thank NAME, for their help.

Let NAME know exactly why they deserved these points.

Gift a custom amount of points.