WooCommerce Subscriptions provides two different, but related items:
- subscription products; and
This guide provides an explanation of the differences between a subscription product and a subscription. It also provides examples to illustrate those differences.
If you haven’t already, you should read the Subscriptions guide for Store Managers before continuing to get a more general introduction to the Subscriptions extension. The information here will also be easier to understand if you have read the subscription renewal process document and are familiar with WooCommerce orders.
Subscription Products ↑ Back to top
Subscription products are an extension of WooCommerce products. They are created by store managers via the Edit Product screen. They are displayed to customers in your store via the front-end of your website.
A subscription product has all the same data as standard WooCommerce products, including:
- sale price
- tax class and status
- virtual and downloadable flags
- attributes (optional)
- inventory (optional)
- shipping weight, dimensions and class
Like any other WooCommerce product, subscription products can be added to the cart and purchased by customers via checkout. The purchase of a subscription product is recorded in an order and the terms for future payments are added to a new subscription.
Subscriptions ↑ Back to top
Whereas a subscription product is something offered to customers to purchase, a subscription is an agreement between your store and a customer for future transactions.
Like an order, a subscription can contain one or more products as line items. This is how subscription products are associated with a subscription. However, a single subscription can contain multiple subscription product line items, non-subscription product line items or even no product line items at all.
Subscriptions are created when:
- a customer completes the checkout process and the cart contains subscription products; or
- a store manager manually creates one via the Add Subscription administration screen.
Subscriptions are an extension of WooCommerce Orders. They have all the same data as an order, including:
- payment method
- billing/shipping address
- downloadable product permissions
- product, fee and shipping line items
As well as subscription specific meta data like:
- billing interval and period
- next payment date
- trial end date
- end date
- related orders, including the original order used to purchase the subscription, renewal orders and switch orders
The main difference between a subscription and an order is that an order is a record of a transaction in the past, whereas a subscription is an agreement for transactions in the future. Because of this, a subscription also has a billing schedule to determine when future transactions will be processed.
Billing Schedule ↑ Back to top
Both subscription products and subscriptions have a billing schedule.
A subscription product’s schedule is made up of:
- Billing interval and period: defines the schedule on which renewal payments should recur for this product. For example, every 2nd week or per month
- Billing length: defines the number of payments that will be processed before the subscription ends. For example, a subscription with the billing interval and period of every 2 weeks and a length of 26 will last for 1 year.
- Trial period and interval: defines how much time should be provided as a free trial at the outset of the subscription. This length is added to any billing length. For example, a subscription with the billing interval and period of every week, a length of 52 and a free trial of 2 months will last for 1 year and 2 months.
- Synchronisation date (optional): a day of the week, month or year on which the first and future renewal payments should be processed. This date is only set when renewal synchronisation is setup.
A subscription’s billing schedule is made up of:
- Billing interval and period: defines the schedule on which renewal payments should recur for the subscription. For example, every 2nd week.
- Trial end date: a date in the past or future on which the subscription trial period will end or has ended. For subscription products purchased via the store, this is calculated based on the product’s trial period and interval.
- Next payment date: the date on which the next renewal payment will be processed, calculated using the subscriptions billing interval and period added to the last payment date.
- End date: a date in the future on which the subscription will expire or be cancelled, or a date in the past on which the subscription expired or was cancelled. For subscription products purchased via the store, this is initially calculated based on the product’s length.
A subscription product’s schedule is used to display the product’s billing terms to the customer on the product, cart and checkout pages in your store. It is also used to determine how subscription products should be grouped in the cart. However, a subscription’s billing schedule is what is used to determine the actual renewal schedule of a subscription. This schedule will override the billing schedule set on any products added to that subscription as line items.
Examples ↑ Back to top
To demonstrate the difference between a subscription product and subscription, consider the following examples.
Purchasing a Monthly Coffee Subscription Product ↑ Back to top
A typical flow of a customer subscribing to a product in your store is:
- Customer visits your online store which sells coffee
- Customer views a coffee bean subscription product offered by your store that ships a bag of beans every month
- Customer adds the coffee bean subscription product to their cart
- Customer proceeds to checkout
- Customer completes checkout to purchase the coffee bean subscription product
- WooCommerce creates an order to record the transaction. The coffee bean subscription product will be included as a line item on that order.
- WooCommerce Subscriptions creates a subscription to record the agreement for future transactions. The coffee bean subscription product will also be included as a line item on that subscription.
- One month later, the subscription will renew according to its billing schedule
- WooCommerce Subscriptions creates a renewal order to record the renewal payment transaction. The coffee bean subscription product will be listed as a line item on that renewal order.
Manually Create a Subscription for a Monthly Service Fee ↑ Back to top
Imagine a store that wants to manage payments for a regular service of $100 / month. The store does not publicly sell this service, so it does not need to create a subscription product to offer it to the public in the store.
Instead, it is possible to manually create a subscription that is not associated with any products and charges a $100 fee each month.
To do this, the store manager can:
- Go to WooCommerce > Subscriptions > Add Subscription screen
- Add a subscriber/customer to the subscription
- Set the billing schedule to renewal each month
- Add a fee to the subscription for $100 (but do not add product line items)
- Calculate recurring totals
- Set subscription status to active
- Save the subscription
This will create a subscription that renews each month and creates a renewal order for $100 as a fee line item. It is not associated with any subscription products.
Note: This example is provided to illustrate the difference between products and subscriptions. Creating subscriptions with only fee line items is not recommended. Doing so leads to a number of issues, including:
- it won’t be possible to get sales statistics for that line item using the WooCommerce Reports, as the reports only work for products.
- the customer will not be able to manually pay for orders associated with the subscription, including renewal orders, because Subscriptions uses the WooCommerce cart to pay for these orders, and WooCommerce requires products to be added to the cart for checkout to be possible.
Adding a Monthly Subscription Product to an Annual Subscription ↑ Back to top
To illustrate how a subscription’s billing schedule can override the billing schedule set on individual products added to that subscription as line items, consider the following two items:
- a subscription for $100 / year;
- a subscription product for $25 / month.
If the $25 / month subscription product is manually added as a line item to the subscription, it will not change it’s billing schedule. The subscription will continue to renewal annually, unless the the billing schedule is also manually changed.
Changing Product Line Items Over a Subscription’s Lifecycle ↑ Back to top
For example, with AutomateWoo’s Add/Remove Product actions it’s possible to setup monthly magazine subscriptions and have a different product and SKU for each month’s magazine included on each month’s renewal order. This is done by creating a workflow which:
- Runs after a renewal payment; and
- Removes the previous month’s magazine as a product line item
- Adds the next month’s magazine as a product line item so that
While the products on the subscription change, no other subscription details, like its billing schedule or shipping address, will be changed.
Each month’s magazine also does not need to be a subscription product, it can be a simple product available for one-off purchases in your store.
Similarly, with Subscribe All the Things, it’s possible to add a non-subscription product to an existing subscription. For example, a customer could add a different kind of coffee bean to their existing monthly subscription to another type of coffee bean.
Again, while the products on the subscription change, no other subscription details, like its billing schedule, will be changed when the new product is added.
Subscription Products vs Subscriptions Summary ↑ Back to top
A subscription product is something offered to the customer for purchase in your store. For most stores, store managers will only ever need to create subscription products. When customers purchase those products, subscriptions will be created automatically. These subscriptions keep a record of the agreement for future transactions of those products. They will also manage the renewal process to process payments and create orders to record those transactions.