Abonnements mit Stripe für PrestaShop
Handbuch der Abonnements mit Stripe für PrestaShop
Dieses Dokument gibt es vorerst auf Englisch.
Dokumentation
- Handbuch der Abonnements mit Stripe für PrestaShop
- Hooks und API der Abonnements mit Stripe für PrestaShop
Auf dieser Seite
With this module you sell any product or combination of your shop as a subscription. Your customer pays in your checkout, Stripe Billing charges each period to their saved card or account, and every renewal reaches your shop as a regular order. It works on PrestaShop 1.7.6 to 9.x with PHP 7.1 or later, with the Classic and Hummingbird themes and their child themes, in multistore and in several currencies.
For modules that want to listen to its events or subscribe a customer from outside the product page, there is the hooks and API reference.
Before you start
- A Stripe account with Billing enabled. You can start in test mode and switch to live whenever you like: each mode has its own keys, webhook and customers.
- Your shop reachable over HTTPS: Stripe tells the shop about every charge through a webhook.
- If your shop is private (registered customers only), leave the
module-bksubscriptions-webhookandmodule-bksubscriptions-subscribepages open: without them Stripe cannot report charges.
Install the module
- In the back office, Modules › Module Manager › Upload a module and choose the zip.
- Once installed, Orders › Subscriptions appears, with its tabs: Overview, Subscriptions, Upcoming deliveries, Plans, Stripe and Help.
The module also creates an order status, “Awaiting subscription bank debit”, for debits that take a few days, and a hidden product for the setup fee. Do not delete them.
Connect Stripe
In Orders › Subscriptions › Stripe:
- Choose the mode (test or live).
- Paste that mode’s secret key (
sk_…), or a restricted key (rk_…) with write access to Customers, Checkout Sessions, Setup Intents, Subscriptions, Invoices, Invoice items, Prices, Coupons and Webhook endpoints. The key is never shown again: if you leave the field empty when saving, the existing one is kept. - Paste the publishable key (
pk_…) of the same mode. It is what lets customers pay inside your shop and change their card from their account. - Click Create the webhook in Stripe. The module registers it with the events it needs and stores its secret. When you update the module, the webhook is updated on its own.
- Choose the payment methods: cards are always on (with 3D Secure, Apple Pay and Google Pay); SEPA Direct Debit is only offered in euros and ACH only in US dollars.
- Choose the status of paid orders, for sign-ups and renewals.
- Choose where your customer pays: in your shop, inside the payment step (recommended), or on the Stripe Checkout page.
In the Stripe dashboard, under Billing › Subscriptions and emails, decide how many times a declined charge is retried (Smart Retries), what happens when the attempts run out and whether Stripe sends the failed-payment emails. You do not need Stripe’s customer portal: your customer manages everything from your shop.
While the key or the webhook is missing, the payment method does not show in the checkout and “My subscriptions” shows the information without the actions.
Sell a product as a subscription
Open the product in Catalog › Products and, on the Pricing tab, tick Requires a subscription. The rest unfolds:
| Option | What it does |
|---|---|
| Renews every | N weeks, months or years (up to 52 weeks, 12 months or 1 year). |
| Renewal | Until the customer cancels, or a fixed number of periods after which it ends on its own. |
| Free trial (days) | Days without charging: today the line costs 0, the card is saved and the first charge comes when the trial ends. |
| Minimum term (periods) | An early cancellation is scheduled for the end of the term. A pause does not count and extends the term by the paused time. |
| Pause up to (periods) | How many periods the customer can pause (0, no pausing). Skipping the next delivery is a pause of one. |
| Missed periods charged on return | How many missed periods are charged if the customer comes back after cancelling. |
| Shipping of each delivery | Only for products with shipping: the carrier’s price on every renewal, or included in the price. |
| Prices per currency | Renewal price (empty: the product price on the day of sign-up), setup fee (once) and return fee (when coming back after cancelling). Tax included. |
| Each product is its own subscription | Every unit is a separate subscription, renewed and cancelled separately. |
| Only sold as an add-on of another product | Not sold on its own: only together with the product it complements. |
Below, you choose which combinations are sold as a one-time purchase (without a subscription) and which recurring add-ons are offered with the product: on the product page they appear as a checkbox (“Add Support · €9 every month”), never ticked by default.
If only one combination is sold as a subscription, leave the product unticked and create that combination’s plan in Orders › Subscriptions › Plans. The Plans list shows every plan in the shop with its summary.
Whether the subscription is digital or shipped comes from the product itself (virtual or not), and the subscription copies it at sign-up.
What your customer sees
On the product page, how often it renews and what they will pay afterwards, plus the checkbox of each add-on.
In the cart, the total is what they pay today. Below it, in small print, what will be charged later (“Then €19.90 every month from 14 Nov 2026”), added up by period. A line that costs 0 today (a free trial) says what it will cost and from when. One cart holds regular products and subscriptions with different periods, and everything is paid at once.
At payment, with in-shop payment, the Stripe form appears inside the payment step with cards, Apple Pay, Google Pay and, depending on the currency, SEPA or ACH. 3D Secure happens on the page. A cart with subscriptions can only be paid with this module; carts without a subscription keep your other payment methods.
After paying, the confirmation says whether the subscription is already active or, with a bank debit, that it starts when the bank confirms the charge.
In “My subscriptions” (in their account), their payment card with Change, and one card per subscription with what happens next and its action:
- Next delivery or charge, end of the trial, “Paused until…” with Resume now, “Ends on…” with Keep it, “Payment pending: update your card”, or “Ended on…” with “Come back · €X today”.
- The billing address and, with shipping, the shipping address and the carrier, with Change. If the change alters the tax, they are told the new amount first.
- The next three deliveries, with Skip and Undo.
- The invoices of every order of the subscription, your shop’s own.
- Pause (with the return date on each option) and Cancel my subscription, which shows the real end date and offers a pause instead.
Every renewal, an order
Every time Stripe charges a period, the shop creates an order with the subscription’s lines at the price charged and, if it ships, the current carrier and address with the shipping for that delivery. The order carries its payment with the Stripe reference and a private message with the subscription, so any ERP or connector invoices it like the rest.
With SEPA or ACH, the sign-up order starts in “Awaiting subscription bank debit” and moves to paid when the bank confirms the charge, days later. If the debit fails, the order moves to “Payment error” and no subscription is created.
Day to day in the back office
Overview: at the top, what needs attention (failed payments with their next attempt, deliveries without a carrier or with a replaced address, pauses ending this week and cancellations within the minimum term); when empty it says “Nothing pending.”. Below, the figures: active, trialing, paused, ending this month, monthly recurring revenue per currency, collected in 30 days and cancellations in 30 days.
Subscriptions: the list, with tabs per status (All, Active, Trialing, Paused, Payment pending, Ending, Ended). Each row opens its page: status, customer, amount, what happens next, lines, addresses and carrier, orders and the full history (sign-up, every charge with its order, failed payments, pauses, changes and cancellations, with who did it). From the page you can open it in Stripe, retry the payment now, pause or resume, change the address or carrier, and cancel at the end of the period or immediately.
Upcoming deliveries: those of the next 30 days for subscriptions with shipping, with skipped ones marked. It exports to CSV to prepare the warehouse.
Failed payments
When Stripe cannot charge a renewal, the subscription moves to payment pending: it shows under “Needs attention” with the date of the next attempt, and your customer sees “Payment pending: update your card”. Stripe retries as you decided in its dashboard. If the customer changes the card, the pending charge is retried straight away with the new one. From the subscription page you can retry it yourself. Once it is paid, the renewal order arrives. If the attempts run out, whatever you chose in Stripe happens (usually, the subscription ends).
Cancellations, pauses and returns
- Cancellation: it ends at the end of the paid period (or of the minimum term). Until then, “Keep it” undoes it. From the back office you can also cancel immediately.
- Pause: the customer chooses how many periods, up to the plan’s maximum; nothing is charged or shipped while paused. They can resume earlier.
- Skip a delivery: a pause of one period; it is undone from the same card.
- Come back: an ended subscription can be resumed from “My subscriptions”. The button says what it costs today (the period, the back periods you set up and the return fee) and goes to the checkout with its line in the cart.
Multistore and currencies
The module is installed in every shop. Each shop has its own Stripe settings and webhook; plans are saved for all shops or for the shop in context. Each subscription is charged in the currency it was taken out in, with that currency’s renewal price. If a customer has subscriptions in two currencies, they have one payment card per currency in their account.
Frequently asked questions
Can I keep using the official Stripe module? Yes. This module only charges carts with subscriptions.
What happens if I uninstall the module? Its tables are not deleted: they record who owns each subscription Stripe keeps charging. Before uninstalling, end the running subscriptions.
Where do I see what happened to a subscription? On its back office page, in the history: every charge, failed payment, pause, change and cancellation, with who did it.