Skip to Content Skip to Menu

Use auto actions to change expiration date?

  • edjec
  • edjec
  • OFFLINE
  • Posts: 132
  • Thanks: 12
  • Karma: 3
  • Add-ons
6 years 11 months ago #298975 by edjec
We have a situation where if a subscriber upgrades a subscription on renewal, the original plan expiration date is not used to determine the new plan’s expiration date. In our system, the plan expiration date is used to determine eligibility for a printed and mailed magazine. If a subscriber happens to renew and upgrade several months prior to the original plan's expiration date, then they will miss one or more magazines. In most cases, they have not been entirely happy with this outcome…

Would auto actions be able to compare the original and now cancelled plan's expiration date with the new expiration date and extend the new expiration date by the new plan's term, which could be one to three years?

If so, how might I achieve that (keeping in mind I have no experience in using auto actions)?

Thanks

Please Log in or Create an account to join the conversation.

  • nant
  • nant
  • OFFLINE
  • Posts: 12339
  • Thanks: 1467
  • Karma: 877
6 years 11 months ago #298979 by nant

edjec wrote: We have a situation where if a subscriber upgrades a subscription on renewal, the original plan expiration date is not used to determine the new plan’s expiration date. In our system, the plan expiration date is used to determine eligibility for a printed and mailed magazine. If a subscriber happens to renew and upgrade several months prior to the original plan's expiration date, then they will miss one or more magazines. In most cases, they have not been entirely happy with this outcome…

Would auto actions be able to compare the original and now cancelled plan's expiration date with the new expiration date and extend the new expiration date by the new plan's term, which could be one to three years?

If so, how might I achieve that (keeping in mind I have no experience in using auto actions)?

Thanks


When someone upgrades to a new plan the residual value of the existing subscription is calculated and subtracted from the upgrade cost. The new subscription starts on the day of upgrade. So, basically what you are seeing is by design.
The following user(s) said Thank You: edjec

Please Log in or Create an account to join the conversation.

  • krileon
  • krileon
  • ONLINE
  • Posts: 48444
  • Thanks: 8279
  • Karma: 1443
6 years 11 months ago #298998 by krileon
Replied by krileon on topic Use auto actions to change expiration date?
I don't know what to suggest in regards to upgrades beyond just making the plans non-exclusive so they don't expire when purchasing another plan. How you're wanting to use CBSubs just isn't how it works. Upgrades do not care about the expiration of the previous plan, but you could use Prorating which does as Nick explained so they don't lose any money as that remaining value would discount their upgrade purchase.

As for extending expiration date renewals already do this so I don't quite understand.

CBSubs isn't really designed to cover any form of physical usecase. It's entirely meant as a digital subscription system. So it doesn't have your usecase in mind, but I believe typically a magazine subscription would just be a "by calendar month" based duration and as long as their subscription is active they'll get the magazine that month.


Kyle (Krileon)
Community Builder Team Member
Before posting on forums: Read FAQ thoroughly + Read our Documentation + Search the forums
CB links: Documentation - Localization - CB Quickstart - CB Paid Subscriptions - Add-Ons - Forge
--
If you are a Professional, Developer, or CB Paid Subscriptions subscriber and have a support issue please always post in your respective support forums for best results!
--
If I've missed your support post with a delay of 3 days or greater and are a Professional, Developer, or CBSubs subscriber please send me a private message with your thread and will reply when possible!
--
Please note I am available Monday - Friday from 8:00 AM CST to 4:00 PM CST. I am away on weekends (Saturday and Sunday) and if I've missed your post on or before a weekend after business hours please wait for the next following business day (Monday) and will get to your issue as soon as possible, thank you.
--
My role here is to provide guidance and assistance. I cannot provide custom code for each custom requirement. Please do not inquire me about custom development.
The following user(s) said Thank You: edjec

Please Log in or Create an account to join the conversation.

  • edjec
  • edjec
  • OFFLINE
  • Posts: 132
  • Thanks: 12
  • Karma: 3
  • Add-ons
6 years 11 months ago - 6 years 11 months ago #299003 by edjec

Nant:
When someone upgrades to a new plan the residual value of the existing subscription is calculated and subtracted from the upgrade cost. The new subscription starts on the day of upgrade. So, basically what you are seeing is by design.

That hasn’t been the case as we have observed. The original subscription is simply being cancelled and the new subscription initiated on cancellation of the old subscription with the expiration date one year from the new subscription date, not extended by the remaining term of the original subscription. There hasn’t been any cost proration between the two.

However, this client doesn’t want to introduce proration into their business model, but would rather have the upgraded subscription expiration date extended by the remaining term of the original subscription.


Krileon:
I don't know what to suggest in regards to upgrades beyond just making the plans non-exclusive so they don't expire when purchasing another plan.

In this case, members could have two concurrent plans and might actually pay for a magazine twice.


As for extending expiration date renewals already do this so I don't quite understand.

Yes, but this is an upgrade to a new plan, not actually a renewal of the original plan.


CBSubs isn't really designed to cover any form of physical usecase. It's entirely meant as a digital subscription system. So it doesn't have your usecase in mind, but I believe typically a magazine subscription would just be a "by calendar month" based duration and as long as their subscription is active they'll get the magazine that month.

We have written a custom program to parse through the subscription database to generate a mailing list of subscribers that will still be current when the magazine physically mails. But with the cancellation of an original subscription without extending the upgraded plan’s expiration date, the magazine subscription period may fall short.

I understand that CBSubs treats an upgrade as a cancellation of the original plan and creates a new subscription for the upgraded plan. I thought that comparing the cancelled plan’s expiration date with the subscription date of the new plan and then extending the new plan by that difference might be a good use of auto actions.

However, it appears that in this case we will have to write a custom program to compare these dates and extend any remaining term to the new plan. Thank you both for your thoughts!

Ed
Last edit: 6 years 11 months ago by edjec.

Please Log in or Create an account to join the conversation.

  • krileon
  • krileon
  • ONLINE
  • Posts: 48444
  • Thanks: 8279
  • Karma: 1443
6 years 11 months ago #299016 by krileon
Replied by krileon on topic Use auto actions to change expiration date?

However, this client doesn’t want to introduce proration into their business model, but would rather have the upgraded subscription expiration date extended by the remaining term of the original subscription.

CBSubs does not have the functionality for this. Upgrade subscriptions are replacing the old subscription. Yes that information is stored in the database and can be altered and no I don't suggest doing so as it likely will completely break the duration calculations CBSubs does, but I guess you could try. I suppose you'd need to use the below and just do this behavior when a plan becomes active. You'd probably want to check if the subscription was upgraded from another plan then have to do all the queries associated with that.

Global
Triggers: onCPayUserStateChange
User: Automatic
Access: Everybody
Conditions
1: [var3] Equal To PLAN_ID_HERE
2: [var2] Equal To A
3: [var4] Not Empty

var4 is the plan id of the plan they're upgrading from. I suppose you could also use the subscription object available with var9 as well (e.g. [var9_parent_subscription]). In your query you'd grab their previous subscription to that plan and calculate the remaining time and extend the new subscriptions expiration date by that time. You'd have to write all the necessary SQL to do this though.

We have written a custom program to parse through the subscription database to generate a mailing list of subscribers that will still be current when the magazine physically mails. But with the cancellation of an original subscription without extending the upgraded plan’s expiration date, the magazine subscription period may fall short.

That sounds like a complete over complication of something so simple. Using a by calendar month duration the recurring payment is billed at the beginning of every month. There is no risk of the billing happening at odd days, middle of month, end of month, etc.. So all you'd need is a list of active subscriptions and you're done; which you'd typically query for a few days after billing cycle (e.g. send magazines on the 12th of every month). Set a "bonus time" to accommodate this so if they subscribe after a mailing cycle they're actually just subscribing for and paying for the next cycle.

I understand that CBSubs treats an upgrade as a cancellation of the original plan and creates a new subscription for the upgraded plan.

Correct.

I thought that comparing the cancelled plan’s expiration date with the subscription date of the new plan and then extending the new plan by that difference might be a good use of auto actions.

You can force whatever you want. All our products are open source and the database is completely available for you to modify so yes that's doable to modify the expiration date from CB Auto Actions probably just using a query action and the necessary SQL to calculate all of this, but again this seams like a massive over complication of a simple by monthly subscription usecase.


Kyle (Krileon)
Community Builder Team Member
Before posting on forums: Read FAQ thoroughly + Read our Documentation + Search the forums
CB links: Documentation - Localization - CB Quickstart - CB Paid Subscriptions - Add-Ons - Forge
--
If you are a Professional, Developer, or CB Paid Subscriptions subscriber and have a support issue please always post in your respective support forums for best results!
--
If I've missed your support post with a delay of 3 days or greater and are a Professional, Developer, or CBSubs subscriber please send me a private message with your thread and will reply when possible!
--
Please note I am available Monday - Friday from 8:00 AM CST to 4:00 PM CST. I am away on weekends (Saturday and Sunday) and if I've missed your post on or before a weekend after business hours please wait for the next following business day (Monday) and will get to your issue as soon as possible, thank you.
--
My role here is to provide guidance and assistance. I cannot provide custom code for each custom requirement. Please do not inquire me about custom development.

Please Log in or Create an account to join the conversation.

Moderators: beatnantkrileon
Powered by Kunena Forum