Skip to Content Skip to Menu

🌲 Merry Christmas! Great savings on Professional and Developer Memberships! Get 25% off now with code XMAS-2024!

How to spilt the subscription year?

  • rbuelund
  • rbuelund
  • OFFLINE
  • Posts: 565
  • Thanks: 40
  • Karma: 4
4 years 8 months ago - 4 years 7 months ago #318013 by rbuelund
Hi

I have a subscription plan that follows the calendar year - january to december. I would like to lower the subscription price to 50% if a user signs up after 1. of july. How is that possible to setup ?
Last edit: 4 years 7 months ago by krileon. Reason: Added [SOLVED] tag to subject

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

  • krileon
  • krileon
  • ONLINE
  • Posts: 48616
  • Thanks: 8302
  • Karma: 1446
4 years 8 months ago #318024 by krileon
Replied by krileon on topic How to spilt the subscription year?
Believe only way to do that is using a promotion. The below for example should get you started.

Basic
Promotion Calculation
Promotion Type: Applies to all purchases
The promotion is: A percentage of the item price
Discount Rate in PERCENT (%): 50
Basic Promotion Conditions
Maximum uses in total (0=unlimited): 0
Maximum uses per customer (0=unlimited): 1
To which plans this promotion applies: SELECT_YOUR_PLAN_HERE

Advanced
Promotion applies to
Applies to renewals: No
For Autorecurring payments subscriptions only: Second and following auto-recurring payments amounts: No

Now there is 2 ways to limit how this is applied. 1 option is to just set publish up and publish down dates as follows.

Start date of validity of this promotion: SELECT_JULY_1ST_HERE
End date of validity of this promotion: SELECT_DECEMBER_31ST_HERE

The other options is to use conditions to dynamically compare the order date against the first of the year that has been incremented. Example as follows.

Conditions
First condition: This condition:
Date A, Field A or Value A: Order Date of the order wanting to use this promotion
Date B, Field B or Value B: Constant Value or String (CB substitutions can be used)
Value B: [cb:date format="Y" /]-01-01
Condition 1 (> for Dates): For dates: Date A > Date B + 6 months (Date A must be later than 6 months after Date B)

What the above should do is run "[cb:date format="Y" /]-01-01" through substitutions. The date substitution will always give out the current year in this usage. So you'd have 2020-01-01 for SQL formatted January 1st of the current year. The condition should add 6 months to this making it 2020-07-01. Now it should check if "Date A, Field A or Value A" which is the date they're trying to make the purchase is greater than that. If it is the condition passes and the 50% promotion applies otherwise it shouldn't. The idea here is it's automatic and you don't need to update the publish up and down dates every year.

This should also only apply to new purchases. It won't apply to renewals or recurring payments.


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.

  • rbuelund
  • rbuelund
  • OFFLINE
  • Posts: 565
  • Thanks: 40
  • Karma: 4
4 years 8 months ago #318059 by rbuelund
Replied by rbuelund on topic How to spilt the subscription year?
Thank you very much :-)
The following user(s) said Thank You: krileon

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

  • rbuelund
  • rbuelund
  • OFFLINE
  • Posts: 565
  • Thanks: 40
  • Karma: 4
4 years 4 months ago - 4 years 4 months ago #319759 by rbuelund
Replied by rbuelund on topic How to spilt the subscription year?
The example above I used now from the 1/7 - 2020, BUT!...

the first payer after the 1/7 paid the full amount the 3/7 (Sign Up - single payment - registered 3/7).
another user paid 50 % the 7/7 (Sign Up - recurring payment - But this user already registered 28/6)
after that three other users paid the full amount (Sign up - Recurring - registered on the same date as payment)

So if the registration date is not before the 1/7, then they pay the full amount ??? That makes no sense, as it is the first payment/sign up after the 1/7 they should get 50 % on ???
Last edit: 4 years 4 months ago by rbuelund.

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

  • rbuelund
  • rbuelund
  • OFFLINE
  • Posts: 565
  • Thanks: 40
  • Karma: 4
4 years 4 months ago #319760 by rbuelund
Replied by rbuelund on topic How to spilt the subscription year?
Is the problem related to that I use the date format dd-mm-yyyy and not yyyy-mm-dd ? But I do not see why the registration date should have something to do with this campaign ??

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

  • krileon
  • krileon
  • ONLINE
  • Posts: 48616
  • Thanks: 8302
  • Karma: 1446
4 years 4 months ago #319764 by krileon
Replied by krileon on topic How to spilt the subscription year?
My examples above are not against registration date. They're against the order date. The order date is the date the basket was created. Please provide the exact conditions you're using. The date format set within CB > Configuration > General shouldn't matter for the conditions. Do not change the format for "Value B:" as it's working with SQL formatted values which are always 0000-00-00.


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