Subscriptions in WooCommerce

Subscriptions in WooCommerce

Here’s how to get started

Offering subscriptions in your online store is a great way to generate recurring and predictable revenue. Depending on the type of products you sell, the subscription offer may look a little different between different e-commerce merchants. Some offer a “secret box” subscription where the content may vary each month, some offer specific product subscriptions while others offer memberships or access to digital products on a subscription basis.

No matter what type of subscription you want to offer in your WooCommerce store, you need two things to get started:

  1. A plugin to handle subscriptions
  2. A payment provider that can handle recurring payments.

A plugin to handle subscriptions

WooCommerce does not handle subscriptions out of the box. This needs to be solved via a separate plugin. There are several different providers but the most common is WooCommerce Subscriptions. We at Krokedil think this plugin works best and therefore we have chosen to create support for it in all our integrations that offer subscriptions. You can buy WooCommerce Subscriptions on the marketplace for extensions available at woocommerce.com.

A payment provider that can handle recurring payments

Once you have installed and configured WooCommerce Subscriptions, you also need an agreement with a payment provider that supports recurring payments. In addition, you need a plugin that makes the communication between WooCommerce and the payment provider work properly. On our Products page you can filter the list and sort it to show all our plugins that support subscription payments.

Which payment provider should I choose?

There are a number of providers that support recurring payments. Which one you choose is a decision you need to make based on the needs you have. Things that can affect your choice are:

  • The price. Does the cost differ between regular and recurring payments?
  • What currencies are offered for subscriptions?
  • What payment methods are offered for subscriptions?
  • Is there support for handling the amount of 0 in start-up costs?
    This is needed to be able to offer a subscription with a free trial period, if this is relevant.

Without going too much in depth, we have hopefully given you so much information that you know which payment provider you should look into, or at least which ones you have to choose from among those that best cover your needs.

Here’s how to get started

The different steps of the subscription

How then does the logic around subscriptions work and what steps does a recurring payment contain? One thing to start with – even though you have an agreement with a payment provider about subscriptions, it is not with the payment provider that the logic for the next payment is handled. This is done in WooCommerce Subscriptions.

If we take a closer look at the different steps in a subscription’s life cycle, it looks like this:

New subscription

  1. The customer adds a subscription product to the shopping cart and then goes to the checkout.
  2. Provided that WooCommerce Subscriptions is set to only offer automatic renewal payments, only the payment methods that have explicitly declared support for subscriptions are displayed.
  3. When the payment provider is contacted by the payment plugin, this call contains information that it is a new subscription.
  4. In the sequence when the order is created in WooCommerce, a subscription is also created in WooCommerce. Both the order and the subscription now have the status Pending payment.
  5. When the customer has completed the purchase, the payment provider sends a transaction number for the order to WooCommerce, but also a so-called subscription token. A token is in this case an information carrier that is saved in the subscription and used for future purchases, i.e. renewals of the subscription. The order now has the status Processed (or Completed depending on the type of subscription product in question) and the subscription has the status Active.

Recurring payment

  1. The date of a renewed subscription period occurs.
  2. The subscription is set to the status On hold.
  3. A new order with the status Pending payment is created.
  4. A call is made to the payment provider (containing the token for the current subscription).
  5. Provided that the payment provider approves the payment, the status of the renewal order is updated to Processed (or Completed if the product is virtual and digital).
  6. The subscription is set to the status Active.
  7. The date of the next renewal is scheduled.

Assuming nothing unexpected happens, this will continue until the customer chooses to cancel their subscription. Sometimes, however, errors can occur …

Problem solving

What happens if the subscription cannot be renewed properly?

In theory, all future renewal payments for your subscriptions will work as they should. In practice, it looks a little different. The payment provider can refuse a renewed payment for many different reasons, but the most common is probably a subscription linked to a payment card where the card is too old. Other reasons may be that there are not sufficient funds on the account, invoice payments where the customer does not pass a credit check or technical problems in communication with the payment provider.

New attempts at failed payments

To reduce the risk of subscriptions being deactivated due to denied renewal payments, there is the option to activate the Retry Failed Payments feature in the WooCommerce Subscriptions settings. By activating this setting, WooCommerce Subscriptions will make new attempts to deduct the amount and notify the customer of the problems according to a customizable schedule. By default, it looks like this:

Automatic renewal payment fails (Retry rule 0):

  1. A new attempt to withdraw the money is scheduled 12 hours after the failed attempt.
  2. Email to customer: No message is sent to customer.
  3. E-mail to store: Retry the payment is sent to the store owner (if activated) to notify of failed payment and scheduled attempt.
  4. Order status: The status of the renewal order is set to Pending payment.
  5. Subscription status: The subscription status is set to On hold.

Retry rule 1:

  1. A new attempt to withdraw the money is scheduled for another 12 hours after the last failed attempt.
  2. Email to customer: Customer payment retry is sent to the customer (if enabled) to notify of failed payment and scheduled attempt.
  3. E-mail to store: Retry the payment is sent to the store owner (if activated) to notify of failed payment and scheduled attempt.
  4. Order status: The status of the renewal order is set to Pending payment.
  5. Subscription status: The subscription status is set to On hold.

Retry rule 2:

  1. A new attempt to withdraw the money is scheduled for another 24 hours after the last failed attempt.
  2. Email to customer: No message is sent to customer.
  3. E-mail to store: Retry the payment is sent to the store owner (if activated) to notify of failed payment and scheduled attempt.
  4. Order status: The status of the renewal order is set to Pending payment.
  5. Subscription status: The subscription status is set to On hold.

Retry rule 3:

  1. A new attempt to withdraw the money is scheduled for another 48 hours after the last failed attempt.
  2. Email to customer: Customer payment retry is sent to the customer (if enabled) to notify of failed payment and scheduled attempt.
  3. E-mail to store: Retry the payment is sent to the store owner (if activated) to notify of failed payment and scheduled attempt.
  4. Order status: The status of the renewal order is set to Pending payment.
  5. Subscription status: The subscription status is set to On hold.

Retry rule 4:

  1. A new attempt to withdraw the money is scheduled for another 72 hours after the last failed attempt.
  2. Email to customer: Customer payment retry is sent to the customer (if enabled) to notify of failed payment and scheduled attempt.
  3. E-mail to store: Retry the payment is sent to the store owner (if activated) to notify of failed payment and scheduled attempt.
  4. Order status: The status of the renewal order is set to Pending payment.
  5. Subscription status: The subscription status is set to On hold.

If even the fifth attempt fails, the renewal order is set to Failed and the customer is sent the email Customer Renewal Invoice (if it is activated) according to the normal failed renewal payment process.

Hopefully, a subscription will not have to go through all the steps above, but the problem with an expired card or too little money in the linked account will be fixed by the customer.
Should there be other, more technical, problems, there is always our knowledge database at docs.krokedil.com and in the next step our support team if the solution to your problem appears to be missing from our documentation.

Good luck getting started with subscriptions so you can make your already satisfied and happy customers even happier.

Featured WooCommerce plugins

featured-partial-delivery

Partial Delivery for WooCommerce

Partial Delivery for WooCommerce enables merchants to ship parts of an order. Via a logical interface you are able to send one or several items in each delivery.
featured-post-purchase-upsell

Post Purchase Upsell for WooCommerce

With Post Purchase Upsell, the customer can add additional products to their order after a completed purchase. They easily choose which of the selectable products they want to add and update their order with one click.
featured-shipping-connector

Krokedil Shipping Connector

Book deliveries with nShift directly from WooCommerce with Krokedil Shipping Connector when you let your customers choose how and where the delivery is made with nShift Checkout or Klarna Shipping Assistant.
Top