What Classifies as a Recurring product?
Recurring products are any subscription based products that are billed automatically in a given interval. These can be any service that require regular payments to keep the service active. For example, a training program, club membership, or a blog subscription.
Although the setup in the admin is quite straightforward, a PayPal Payflow Pro account is a pre-requisite for the subscriptions to work. Please click here to learn more about setting up an account with Paypal.
Setting up a Recurring Product
Once a product has been setup as per the instructions mentioned here, the SKU tab of the product allows one to set the product as a recurring item.
This is somewhat how your screen may look like:
Change the frequency of your subscription to the desired period:
If your service has a start-up fee, you can add the amount there so it can be charged initially as a one-time fee start-up fee. Otherwise, leave this field empty.
The Start Date can be a given date or it can be something relative like "next Monday", "next month", etc. See the Relative Time and Date Formats section below
The Minimum Duration can be specified if you prohibit someone from canceling for a given duration. If a minimum duration is not specified, then the user can stop the service at any time, regardless of the option chosen under "Cancellation Policy" since the minimum must always be achieved for the cancellation policies to take effect.
The Maximum Duration can also be specified if you think it's needed, otherwise leave it blank or a put a zero there.
Cancellation Policy:
Refund and stop the service - users will be able to stop the service immediately if there are still some number of occurrences remaining. However, only the last period's amount will be refunded.
Stop the service immediately - allows users to stop the recurring billing service immediately without refunds. For instance, if they were billed yesterday and decide to discontinue today, then they will not be able to get a refund.
Stop the service by the end of the period - this option stops the recurring payment when the maximum duration is reached or when the subscription is cancelled via the admin on our end or via Paypal by the user.
FAQs
What is the default cancellation policy?
The default policy gives the users options to stop / renew a service anytime unless a minimum number of occurrences is set via the "Minimum Duration" field in the admin.
What happens to the stop/renew options for the other cancellation policies when there is minimum no. of occurrences set?
The minimum must always be achieved for the cancellation policies to take effect.
If someone's credit card expires, what does that trigger? Does it create an order in the system? And once their payment is made, when do they start?
The order and invoice gets created but marked unpaid. The person's account is marked as inactive in the recurring section until their payment is received.
On the My Recurring Orders section on the website: Does the renewal of an order create an order and invoice automatically? In admin, do these show under Orders/Invoices/Recurring or all?
A renewal does not create an order or invoice. It is the receipt of payment after the renewal is done that creates the orders and invoices automatically. These show under Orders and Invoices respectively. Recurring is not used as an accounting tool. It's only to see the subscribers.
What is accomplished duration and successful payments on the my recurring orders page?
Accomplished duration is the duration of your subscription (including paused times).
Successful payments show the number of successful payments that have been received.
Is it possible to add automatic access to certain parts of the website so when a user signs up for a recurring product they can automatically access the website?
Yes, it's possible, but has to be customized per site. Send your requirements to help@aspiresoft.com to get a quote.
Can an invoice / order be deleted if it hasn't been paid? What if only some of the orders and invoices of a given customer are deleted, but others are kept so customer can pay for at least a few?
The system creates orders and invoices based on payments on Paypal. If an order / invoice is deleted from the admin, but the profile is kept active, our system would recreate all the missing orders and invoices in the next batch. The best approach for such cases is to first cancel the profile in the admin, remove the invoices that you don't expect to receive payment for and leave only the ones that the customer intends to pay. These can be paid any time from the pay link viat he Orders' section in one's account on the website.
What happens when a customer updates the credit card information on a paused profile?
The default behavior from Paypal in this case is that such an update will automatically activate their profile.
Relative Time and Date Formats
When setting up the Start Date for a recurring product, you may use the following symbols and day-based notations:
Used Symbols
dayname
daytext
'weekday' | 'weekdays'
number
ordinal
'first' | 'second' | 'third' | 'fourth' | 'fifth' | 'sixth' | 'seventh' | 'eighth' | 'ninth' | 'tenth' | 'eleventh' | 'twelfth' | 'next' | 'last' | 'previous' | 'this'
reltext
'next' | 'last' | 'previous' | 'this'
space
unit
(('sec' | 'second' | 'min' | 'minute' | 'hour' | 'day' | 'fortnight' | 'forthnight' | 'month' | 'year') 's'?) | 'weeks' | daytext
Day-based Notations
'yesterday'
Midnight of yesterday
"yesterday 14:00"
'midnight'
The time is set to 00:00:00
'today'
The time is set to 00:00:00
'now'
Now - this is simply ignored
'noon'
The time is set to 12:00:00
"yesterday noon"
'tomorrow'
Midnight of tomorrow
'back of' hour'
15 minutes past the specified hour
'front of' hour'
15 minutes before the specified hour
'first day of'
"first day of January 2008"
'last day of'
Calculates the x-th week day of the current month.
"first sat of July 2008"
Calculates the last week day of the current month.
"last sat of July 2008"
Handles relative time items where the value is a number.
"+5 weeks", "12 day", "-7 weekdays"
Handles relative time items where the value is text.
"fifth day", "second month"
Negates all the values of previously found relative time items.
"2 days ago", "8 days ago 14:00", "2 months 5 days ago", "2 months ago 5 days", "2 days ago"
Moves to the next day of this name.
"Monday"
Handles the special format "weekday + last/this/next week".
"Monday next week"
Note:
1. Relative statements are always processed after non-relative statements. This makes "+1 week july 2008" and "july 2008 +1 week" equivalent.
Exceptions to this rule are: "yesterday", "midnight", "today", "noon" and "tomorrow". Note that "tomorrow 11:00" and "11:00 tomorrow" are different. Considering today's date of "July 23rd, 2008" the first one produces "2008-07-24 11:00" where as the second one produces "2008-07-24 00:00". The reason for this is that those five statements directly influence the current time.
2. Relative month values are calculated based on the length of months that they pass through. An example would be "+2 month 2011-11-30", which would produce "2012-01-30". This is due to November being 30 days in length, and December being 31 days in length, producing a total of 61 days.
3. number is an integer number; if a decimal number is given, the dot (or comma) is likely interpreted as delimiter. For instance, '+1.5 hours'is parsed like '+1 5 hours', not as '+1 hour +30 minutes'.
4. Observe the following remarks when the current day-of-week is the same as the day-of-week used in the date/time string. The current day-of-week could have been (re-)calculated by non-relative parts of the date/time string however.
- "dayname" does not advance to another day. (Example: "Wed July 23rd, 2008" means "2008-07-23").
- "number dayname" does not advance to another day. (Example: "1 wednesday july 23rd, 2008" means "2008-07-23").
- "number week dayname" will first add the number of weeks, but does not advance to another day. In this case "number week" and "dayname" are two distinct blocks. (Example: "+1 week wednesday july 23rd, 2008" means "2008-07-30").
- "ordinal dayname" does advance to another day. (Example "first wednesday july 23rd, 2008" means "2008-07-30").
- "number week ordinal dayname" will first add the number of weeks, and then advances to another day. In this case "number week" and "ordinal dayname" are two distinct blocks. (Example: "+1 week first wednesday july 23rd, 2008" means "2008-08-06").
- "ordinal dayname 'of' " does not advance to another day. (Example: "first wednesday of july 23rd, 2008" means "2008-07-02" because the specific phrase with 'of' resets the day-of-month to '1' and the '23rd' is ignored here).
Also observe that the "of" in "ordinal space dayname space 'of' " and "'last' space dayname space 'of' " does something special.
- It sets the day-of-month to 1.
- "ordinal dayname 'of' " does not advance to another day. (Example: "first tuesday of july 2008" means "2008-07-01").
- "ordinal dayname " does advance to another day. (Example: "first tuesday july 2008" means "2008-07-08", see also point 4 in the list above).
- "'last' dayname 'of' " takes the last dayname of the current month. (Example: "last wed of july 2008" means "2008-07-30")
- "'last' dayname" takes the last dayname from the current day. (Example: "last wed july 2008" means "2008-06-25"; "july 2008" first sets the current date to "2008-07-01" and then "last wed" moves to the previous Wednesday which is "2008-06-25").
Use this online testing tool to verify that your setup will work as expected: http://strtotime.co.uk/
Please send us suggestions regarding this documentation page
If you would like to recommend improvements to this page, please leave a suggestion for the documentation team.