Everything you'd want to know before you install.
A detailed look at how DataFirefly Subscriptions — Subscriptions and recurring Stripe payment for PrestaShop 8 works, why we built it the way we did, and the thinking behind the features above.
Why subscription transforms an e-commerce store
A one-shot customer brings you a margin at purchase, plus maybe a repurchase on a whim in 6 months. A subscription customer brings you a margin every month with no new commercial action, and statistically consumes 3 to 5 times more over their lifetime than a one-shot customer. This is what explains the explosive valuation of DTC brands that activated subscription (Dollar Shave Club, Birchbox, Hello Fresh, and their European equivalents). On the operational side, your revenue becomes predictable, your supply too, and your marketing can invest in higher CAC knowing they will be amortized over 6 to 18 months rather than a single order.
Why native PrestaShop doesn't allow it
PrestaShop was designed for the one-shot model: a cart, a payment, an order. No notion of recurring payment in the core, no link with Stripe Subscriptions, no renewal webhook event management. To activate subscription, you're forced to go to Subscriptio (250 €, complex), code in-house (weeks of development), or migrate to Shopify (loss of back-office and complete re-architecture). DataFirefly Subscriptions is a 4th way: a dedicated module, installed in minutes, exhaustive on critical features.
The customer journey
On the product page, a selector adds the option to buy as subscription with frequency choice and display of subscription discount vs one-shot (e.g.: 30 € for one-time purchase, 24 €/month in subscription, 6 €/month savings highlighted). The customer adds to cart, goes to standard PrestaShop checkout, pays via the module — their card is tokenized by Stripe at checkout, and their subscription is created on Stripe with the right price and frequency. On the next cycle, Stripe automatically charges the card, the webhook arrives on PrestaShop, and a new standard order is created in your back-office — visible in your accounting exports, your stock, your sales reports, without doing anything.
Dunning, the feature that saves MRR
On card-based subscriptions, about 5 to 12% of cycles fail: expired card, limit reached, blocking bank, etc. Without dunning, these failures are dry cancellations — you lose the customer. With dunning: the module automatically retries the payment (3 attempts at 3-day intervals by default, configurable), sends a reminder email to the customer asking to update their card from their customer area, and only cancels the subscription after X consecutive failures (default 1, configurable). In practice, dunning typically recovers 50 to 70% of payments that would have been lost — several hundred euros per month saved from 50 active subscriptions.
The "My subscriptions" customer area
Accessible from the customer account, this area replaces all subscription support. The customer sees the list of their active subscriptions, their next payment date, their next delivery date. They can pause a subscription, resume it, skip the next delivery ("skip this month, I'm on vacation"), update their payment card, or cancel. You configure globally what's allowed: pause yes/no, skip yes/no, free cancellation or after X minimum cycles. Result: your support inbox no longer receives 50 emails per day for subscription modifications — the customer self-serves, and is happier.
Technical architecture and extensibility
The module is built on a PaymentGatewayInterface of which StripeGateway is the first implementation. This architecture allows adding other gateways (Adyen, GoCardless, Mollie, Worldline) by writing a dedicated connector without touching the rest of the module. Four dedicated tables: df_subscription_plan (subscription plans per product), df_subscription (active customer subscriptions), df_subscription_order (link with generated PrestaShop orders), df_subscription_log (event history per subscription). The Stripe webhook cryptographically verifies each signature before processing — no risk that an attacker injects fake events. The cron is token-protected, the admin is under control of native PrestaShop permissions.
Use cases
Monthly box (cosmetics, food, wine, coffee, cigars, books): monthly billing, monthly delivery, subscription discount, dunning. Recurring service (training, coaching, content subscription): monthly or annual billing, no physical delivery, 3-6 month minimum commitment. Repeat consumables (cartridges, pet food, detergent, supplements): billing aligned on delivery, frequency customizable by customer, delivery skip allowed. Embedded SaaS or license (digital services, premium access): annual billing with significant discount vs one-shot, no delivery.
Reviews
There are no reviews yet.