WooCommerce Subscriptions is a premium WooCommerce extension
WooCommerce Subscriptions version 2.0 introduced a way to purchase different subscription products in the one transaction. Designing a system for purchasing different subscription products means handling thousands of potential billing schedules, which creates a number of challenges; especially as taxes, shipping, fees and other amounts need to be calculated for each of these billing schedules.
This guide provides an overview of the decisions made to implement multiple subscription handling. It is intended to provide a non-technical overview. For a technical document on how mulitple subscriptions are implemented, refer to the Developer Guide to Multiple Subscriptions.
Before continuing with this guide, it will be helpful to understand the difference between a subscription product and a subscription and the subscription renewal process.
Goals for Multiple Subscriptions
↑ Back to top- to prevent making customers repeat the entire checkout process for each subscription product they wished to purchase;
- to reduce payment gateway fees by processing the sign-up and renewal of multiple products in the one transaction (most payment gateways charge a flat per transaction fee); and
- to consolidate renewals and reduce the number of renewal orders created to avoid having to process multiple orders for the one shipment to a customer.
Challenges of Multiple Subscriptions
↑ Back to top- account for shipping calculations, which can be charged per order, per item, per shipping class and any combination of the above.
- present all relevant information about the billing agreements being made between the customer and the store, including recurring taxes and shipping amounts, while avoiding presenting so much information on the checkout page that the customer feels overwhelmed or confused and abandons the checkout.
- create a system that is straight forward for store managers to understand and does not create excessive overhead for managing subscriptions and renewal orders.
Solution: Grouping Subscriptions
↑ Back to topDetails of Grouping
↑ Back to top- billing interval and period, to make sure the billing schedule for all products is honoured.
- subscription length, to make sure the end date can be set correct for each subscription product.
- first renewal date, to account for products with a free trial or synchronised renewal date.
- $10 every 2nd month
- $25 every 2nd month with 2 months free trial (because the first renewal date after the free trial is equivalent to the first renewal date of the product without a free trial)
- $30 every 2nd month synchronised to today’s date
- $10 per month
- $10 per month for 12 months
- $10 per month synchronised to tomorrow’s date
- $10 per month with 2 weeks free trial
Cart Grouping
↑ Back to topGrouped Recurring Total Display
↑ Back to top- subtotal
- shipping
- taxes
- discounts
- total
Order Grouping
↑ Back to top- an order used to purchase 4 subscription products – it has 4 line items; and
- two subscriptions created to store data for the 4 subscription products – each has 2 line items.
Issues with Grouping
↑ Back to top- a customer could no longer cancel subscriptions to an individual item. This was resolved by adding a remove item button on the View Subscription page to allow the customer to remove individual items.
- switching was previously done per subscription, which would not work with a subscription that has multiple line items. As a result, this process has been updated to be per item, instead of per subscription.
- subscription products purchased separately are not grouped together, which results in extra renewal orders and gateway fees. This issue has not been addressed with v2.0 and instead, may be address in a later version or as a separate extension in the form of a Add to Subscription button. This can replace or be displayed alongside the Add to Cart button, allowing customers to add new products to an existing subscription, rather than creating a new subscription, while still requiring them to review and agree to the shipping costs of that subscription.
Alternative Implementation
↑ Back to topIssues with this Design
↑ Back to topAlternative Recurring Totals Display
↑ Back to top- do not display the totals;
- continue to display recurring totals inside of the order totals section;
- add a new Recurring Totals section below the existing order totals section to display recurring subtotal, shipping, taxes and total.
- display a complete order table for each subscription below the Sign Up Now/Place Order button.