Documentation You are here: start » v » 2.0 » products » subscriptions

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
v:2.0:products:subscriptions [2018/03/02 18:09] – [Using FoxyCart's Native Dunning Functionality] marijav:2.0:products:subscriptions [2021/05/31 09:43] (current) – [When Do Subscriptions Process?] adam
Line 6: Line 6:
   * [[..:subscription_xml_datafeed|Subscription XML Datafeed]]   * [[..:subscription_xml_datafeed|Subscription XML Datafeed]]
   * [[:integration:subscription_datafeed|PHP Subscription XML Datafeed Processor]] (to create automated billing reminder emails, etc.)   * [[:integration:subscription_datafeed|PHP Subscription XML Datafeed Processor]] (to create automated billing reminder emails, etc.)
 +  * [[:v:2.0:products:subscriptions:subscription_step_by_step|Subscription Non-Tech Step-by-Step Topics]]
  
 ===== How Subscriptions Work in FoxyCart ===== ===== How Subscriptions Work in FoxyCart =====
Line 18: Line 19:
  
 ==== When Do Subscriptions Process? ==== ==== When Do Subscriptions Process? ====
-Subscriptions process daily between 0400-0500 Pacific Time (America/Los_Angeles, US), with backup runs scheduled between 0800-0900 (same timezone). Different FoxyCart versions process subscriptions at different times, but they are all scheduled near those windows.+Subscriptions //start// processing daily at 0500 Pacific Time (America/Los_Angeles, US). Different FoxyCart versions process subscriptions at different times, but they are all scheduled near those windows. Note that depending on a number of factors, we cannot guarantee that subscriptions //finish// processing by specific times, though we do try to ensure all subscriptions finish by noon US Eastern Time. 
 + 
 +Any automated re-attempts or reminder emails (if configured for your store) are processed a little later in the day, starting around 1300 US Pacific Time. You can see [[#subscription_billing_cancellation_management_dunning|more information about the automated dunning functionality below on this page]].
  
 <WRAP tip round> <WRAP tip round>
Line 92: Line 95:
 ===== Subscription Billing & Cancellation Management (Dunning) ===== ===== Subscription Billing & Cancellation Management (Dunning) =====
 ==== An Overview of Subscription Management with FoxyCart ==== ==== An Overview of Subscription Management with FoxyCart ====
-As mentioned above, FoxyCart does not send automatic emails to customers when their payments fail or if their payment method is soon to expire **//by default//**, though this can be configured. Nor does FoxyCart (currently) provide a "customer portal" where they can view active subscriptions, update billing info, or cancel subscriptions. InsteadFoxyCart provides the tools to build similar functionality as desired. +As mentioned above, FoxyCart does not send automatic emails to customers when their payments fail or if their payment method is soon to expire **//by default//**, though this can be configured. FoxyCart does provide a "customer portal" where customers can view active subscriptions, update billing info, cancel subscriptions, and (optionally) change next dates and frequency (useful for "auto-ship" merchants).
- +
-What FoxyCart does provide, however, is a variety of methods for both the merchant and the customer to update subscriptions. +
 ==== Using FoxyCart's Native Dunning Functionality ==== ==== Using FoxyCart's Native Dunning Functionality ====
 In your store's advanced settings page, there is a section named "Recurring Billing Settings". In this section are options to re-attempt failed transactions, send email reminders about subscriptions in an error state, and cancel a subscription after a period of time. In your store's advanced settings page, there is a section named "Recurring Billing Settings". In this section are options to re-attempt failed transactions, send email reminders about subscriptions in an error state, and cancel a subscription after a period of time.
Line 107: Line 107:
  
 === Customising How Past Due Amounts Are Handled === === Customising How Past Due Amounts Are Handled ===
- 
 As part of the advanced settings, you can dictate how a past due amount is handled against a subscription when it fails to renew correctly. Currently you can either have the subscription past due amount "Increased by the missed payment amount" (so with each renewal it will increase the total amount due) or "Replaced with the latest missed payment amount" (meaning the subscription will only have a past due from the most recent renewal failure). As part of the advanced settings, you can dictate how a past due amount is handled against a subscription when it fails to renew correctly. Currently you can either have the subscription past due amount "Increased by the missed payment amount" (so with each renewal it will increase the total amount due) or "Replaced with the latest missed payment amount" (meaning the subscription will only have a past due from the most recent renewal failure).
  
 === Charge Past Due Amounts === === Charge Past Due Amounts ===
-On the Advanced settings pageyou can toggle whether to charge past due amounts or not This can be very helpful when working with recurring donations By turning this offdonors will not be charged a past due amount if their last donation did not process successfullyThis applies when the <code>sub_token</code> link is used or when subscriptions are automatically processed. +If checked, the past due amount will be included in automatic subscription processingand will be included in the cart if a customer attempts to update their subscription. If unchecked, any successful subscription payment (automatic or customer-initiated) will clear out the past due amountNOTE: Even if this is not checked, you can still effectively collect past due amounts with the ''sub_restart=auto'' flag on sub_token links. 
 + 
 +=== Requiring Past Due Amounts Before Customers Can Modify or Cancel Subscriptions === 
 +By checking the "prevent customer-initiated modificationreplacement, and cancellation if past-due is present" checkbox in the advanced settings, a customer will be required to pay any past due amounts present on their subscription before they can manually cancel it, and also before they can use the ''sub_modify=replace'' behavior. If unchecked, a customer will be able to modify or cancel their subscription even if they have a past due amount present. 
 + 
 +=== End Dates on Cancellations === 
 +When a customer uses the ''sub_cancel=true'' functionality, the "when a subscription ends, set the end date to" setting determines whether the enddate should be set to "tomorrow" or to the next transaction date. If you have a membership service where a customer pays for the year or the month at the beginning of the period, this should generally be set to "next transaction date", as they've already paid for that time period. This can be useful if you're relying on Foxy subscription data to determine access to a 3rd party site. 
 + 
 +=== Resetting A Subscription's Next Renewal Date When A Payment Is Made === 
 +When a customer makes a successful payment on a subscription (either via the ''sub_restart=true'' or a "past due" mount), by default it's next renewal date will remain as it already was. If you check the "reset the next transaction date on past due makeup payment" checkbox, when they pay the past due amount, their subscription's next date will be set to be one frequency ahead of the day that the transaction is processed.
  
-=== Requiring Past Due Amounts Before Customers Can Cancel Subscriptions === +For example, if you have a monthly subscription that renews on the 1st of every month and the customer pays a past due amount for that subscription on the 18th of a month - the subscription would ordinarily still renew on the 1st of the following monthWith this checkbox checkedit would instead update to have a new renewal date of the 18th of the following month - one month from todays date.
-By checking the "prevent customer-initiated cancellation if past-due is present" checkbox in the advanced settings, a customer will be required to pay any past due amounts present on their subscription before they can manually cancel itIf uncheckeda customer will be able to cancel their subscription even if they have a past due amount present.+
  
-=== Resetting A Subscription's Next Renewal Date When Past Due Amounts Are Paid === +For "auto-shipmerchantsyou'll almost always want to set this to reset the next date.
-When a customer pays a past due amount on a subscription, by default it's next renewal date will remain as it already was. If you check the "reset the next transaction date on past due makeup paymentcheckboxwhen they pay the past due amount, their subscription's next date will be set to be one frequency ahead of the day that the transaction is processed. For example, if you have a monthly subscription that renews on the 1st of every month - and the customer pays a past due amount for that subscription on the 18th of a month - the subscription would ordinarily still renew on the 1st of the following month. With this checkbox checked, it would instead update to have a new renewal date of the 18th of the following month - one month from todays date.+
  
 === Failed Transactions Reattempt Schedule === === Failed Transactions Reattempt Schedule ===
Line 238: Line 244:
  
 === Canceling a Subscription === === Canceling a Subscription ===
-Similar to the modification approach above, a subscription can be loaded to be canceled if the ''sub_token'' is passed in with a ''sub_cancel=true''. This will change the notification to something like "You are about to set this subscription to end on 2010-10-01", and //upon checkout// the subscription will be set to end. It is generally a good idea to include the ''cart=checkout'' parameter to ensure the cancellation goes straight to checkout.+Similar to the modification approach above, a subscription can be loaded to be canceled if the ''sub_token'' is passed in with a ''sub_cancel'' attribute set to either ''true'' or ''next_transaction_date''. This will change the notification to something like "You are about to set this subscription to end on 2010-10-01", and //upon checkout// the subscription will be set to end. It is generally a good idea to include the ''cart=checkout'' parameter to ensure the cancellation goes straight to checkout.
  
-When a subscription is set to cancel, it effectively sets the ''sub_enddate'' to tomorrow, at which point the subscription will not be processed (even if the ''sub_enddate'' falls on a normal billing date), and the cancellation will be included in the [[..:subscription_xml_datafeed|Subscription XML Datafeed]].+When a subscription is set to cancel, it effectively sets the ''sub_enddate'' to either tomorrow or it's next normal transaction date (depending on which value you pass for ''sub_cancel''), at which point the subscription will not be processed (even if the ''sub_enddate'' falls on a normal billing date), and the cancellation will be included in the [[..:subscription_xml_datafeed|Subscription XML Datafeed]].
  
-<wrap important>FoxyCart's current implementation requires that customers attempting to cancel subscriptions pay any past due amount before they can cancel their account.</wrap>  If a customer needs to cancel a subscription with a past due balance you will have to do this for them through the subscription page in the FoxyCart admin.+<wrap important>If you have set your store to require that customers pay any past due amount before they can cancel their account,</wrap> then a customer will not be able to use the link to cancel until they pay that amount. This setting can be found on the "advanced" setting page, labelled "prevent customer-initiated cancellation if past-due is present"If a customer needs to cancel a subscription with a past due balance you will have to do this for them through the subscription page in the FoxyCart admin, or clear their past due amount by editing their subscription.

Site Tools