PrestaShop subscriptions with Stripe: recurring payments made easy

PrestaShop modules · 7 min read

PrestaShop subscriptions with Stripe: recurring payments made easy

PrestaShop subscriptions can be sold with Stripe without switching platforms: you mark a product as a subscription, the customer pays the first month in your checkout and Stripe charges the following ones on its own. Every morning, without lifting a finger, you find the orders for the coffee boxes due for renewal in your back office, already paid and ready to pack.

That is the real change: no more chasing loyal customers to buy again. If you sell monthly boxes, coffee, cosmetics that run out, a service with a fee or licences that renew every year, recurring payments in PrestaShop give you income you can forecast and a customer who doesn't have to remember to come back.

Can you sell subscriptions in PrestaShop?

Out of the box, PrestaShop sells one-off purchases. To charge every month you need a module, and what matters is that it doesn't force you to rebuild your store a different way.

With Stripe Subscriptions for PrestaShop, any product you already have, or just one of its combinations, can be sold as a subscription. On the product page, under Pricing, you tick “Requires subscription” and decide:

  • How often it renews: every N weeks, months or years.
  • Until when: until the customer cancels, or a fixed number of deliveries after which it ends by itself.
  • Free trial days: the card is saved today and the first charge comes when the trial ends.
  • Sign-up fee, charged once, and a minimum commitment if you need one.
  • Renewal price per currency, if you want it to differ from the product price.

So you can have the same bag of coffee as a one-off purchase and, in another combination, “every month”. The customer chooses and the rest of your catalogue stays as it is. A single cart can hold regular products and subscriptions, even a monthly one and a yearly one: everything is paid at once and each subscription then renews on its own schedule.

How does it charge every month?

The charging is done by Stripe, with its subscription service (Stripe Billing). Your store doesn't store cards or depend on a scheduled task that might fail to run: Stripe holds the customer's card and charges on the right day.

When Stripe charges, your store finds out instantly and creates a regular PrestaShop order for the amount charged. This is the part whoever packs the shipments appreciates most: each renewal shows up in Orders like any other sale, with its invoice, its status and its carrier. If you use an ERP or invoicing software that reads your orders, renewals reach it without you doing anything.

If what you sell is shipped, each delivery goes to the address and with the carrier the customer has selected on that day. Shipping is charged at the carrier's price on each renewal, or included in the fee, whichever you prefer. And in Orders › Subscriptions you have the upcoming deliveries for the next 30 days, exportable to prepare the warehouse.

Where does the customer pay?

You choose one of two options:

  1. Inside your checkout: Stripe's payment form appears in the last step of your store and the customer never leaves it.
  2. On the Stripe Checkout page: the customer pays on Stripe's page and comes back to your store with the order placed.

In both cases, before paying, the customer is told clearly what they pay today and what they will be charged afterwards, for example: “Today you pay €26.50. Then: €19.90 + shipping every month. You can cancel from your account at any time.” That sentence prevents a lot of chargebacks and a lot of “why have you charged me?” emails.

It accepts cards with 3D Secure, Apple Pay and Google Pay, SEPA Direct Debit in euros and ACH in dollars. 3D Secure, the bank confirmation almost every European card requires, happens at sign-up; Stripe processes the following months' charges without bothering the customer.

What happens if a card fails?

It happens every month: one card expires, another runs out of funds. What you don't want is to find out when the customer is already gone.

When a charge is declined, Stripe retries it automatically over the following days and emails the customer. Meanwhile:

  • In your back office, “Needs attention” shows you that failed payment, how many attempts have been made and when Stripe will try again.
  • The customer sees “Payment pending” in their account, with a button to update their card.
  • As soon as they add a new card, the pending charge is retried with it straight away and the order comes in.
  • If you'd rather not wait, you can retry the charge yourself from the subscription page.

You don't lose that customer over an expired card. And you don't have to set up any reminders yourself: Stripe handles the retries and the failed-payment emails.

Can the customer pause or cancel?

Yes, and without emailing you. In their account they get a new page, “My subscriptions”, where they see each subscription with what happens next (the next delivery or the next charge) and can:

  • Skip the next delivery if they have coffee left over this month, and undo it.
  • Pause for a few months, up to the maximum you allow on the product, seeing the date it resumes.
  • Change their card, shipping address or carrier, without leaving your store.
  • View their invoices, the store's own, for every order in the subscription.
  • Cancel, seeing the actual day it ends and with the option to pause instead of leaving.

That “would you rather pause it for a few months?” at the moment of cancelling is one of the things that retains customers most. And if you have a minimum commitment, a cancellation before it is met is scheduled for the end, no arguments.

And if they come back months later?

An ended subscription stays in their account with a “Come back” button that tells them how much they will pay today. When they come back you can charge for the periods they skipped, up to the number you set, plus a return fee. That's exactly what you need if you sell software with updates or a service with a fee: whoever leaves and comes back pays what they owe, without you having to work it out.

Does it work with my Stripe account?

Yes. You connect your own Stripe account with your keys and the money goes straight into it, at Stripe's rates. There's no platform in between and no commission for us: the licence is a one-time payment.

If you already take payments with the official Stripe module for PrestaShop, or with any other payment gateway, it stays as it is. This module only charges carts that contain a subscription; regular purchases keep using your usual payment method.

It works from PrestaShop 1.7.6 to 9, with multistore and multiple currencies, and in Spanish, English, French, Italian and German.

For your technical team

  • The webhook (the notification Stripe sends to your store on every charge, failed payment or cancellation) is created with one click from the module's Stripe screen. Without it, renewal orders don't come in.
  • On a private store or one with a page whitelist, you need to allow module-bksubscriptions-webhook and module-bksubscriptions-subscribe.
  • Retries and failed-payment emails are configured in the Stripe dashboard, under Billing.
  • Every sign-up, renewal, failed payment, pause and cancellation fires its own hook, so another module can grant or revoke a service.

Where do I start?

Pick the product that sells most often on repeat in your store, mark it as a subscription with a short trial or a small discount, and let Stripe do the rest. All of this is built into Stripe Subscriptions for PrestaShop: the product page is right below, with what's included, compatibility and price.

How we can help

See all services →

Keep reading

Need a hand with your project? Let us talk

Tell us what your business needs

A module, an app, a server that is giving you trouble or something urgent. We answer within 24 hours, with a fixed quote with a price and a date.