Everything you'd want to know before you install.
A detailed look at how DataFirefly Subscriptions — Subscriptions and Stripe Recurring Payments for PrestaShop 8 & 9 works, why we built it the way we did, and the thinking behind the features above.
Why subscriptions transform an e-commerce store
A one-off customer brings you one margin at purchase, plus maybe a repeat order in 6 months. A subscriber brings you margin every month with no new sales effort, and statistically spends 3 to 5 times more over their lifetime. That is what explains the valuations of DTC brands that switched on subscriptions (Dollar Shave Club, HelloFresh and their local equivalents). Operationally, your revenue becomes predictable, your supply chain too, and your marketing can invest in higher CAC knowing it will be amortized over 6 to 18 months instead of a single order.
Why native PrestaShop cannot do it
PrestaShop was designed for the one-off model: one cart, one payment, one order. No concept of a saved card, no automatic renewals, no handling of recurring payment failures. To enable subscriptions you must build in-house (weeks of development), stack costly and complex modules, or migrate platforms. DataFirefly Subscriptions is the direct path: a dedicated module installed in minutes, exhaustive on the critical features, compatible with PrestaShop 8 and 9.
The customer journey, from product page to renewal
On the product page, a collapsible Subscribe and save block presents available plans with their discounted price (for example: 30 EUR one-time, 24 EUR/month as a subscription). The customer picks a plan, adds to cart and checks out normally. At the payment step, a dedicated option Pay by card and activate my subscription displays the secure Stripe card form: the payment covers the exact cart total (shipping included), 3D Secure is handled automatically, and the card is saved for future cycles. The payment is then re-verified server-side (status and amount) before the order is created — the browser is never trusted. On following due dates, the module charges the saved card and creates a new standard PrestaShop order, visible in your back office like any sale.
A single billing engine: no more double charges
Many subscription modules suffer from a structural flaw: two billing engines coexisting (Stripe Subscriptions on one side, a store cron on the other), leading to double charges, inconsistent amounts and shipping that never gets billed. DataFirefly Subscriptions uses a card-on-file architecture: no Subscription object at Stripe, one single billing engine (the store cron) that rebuilds a real cart every cycle, computes the exact total through the PrestaShop pricing engine (discounts, taxes, shipping), charges precisely that amount, then creates the order. Accounting discrepancies are structurally impossible.
Dunning, the feature that saves your MRR
On card subscriptions, 5 to 12% of cycles fail: expired card, limit reached, bank block. Without dunning, those failures are hard cancellations. With DataFirefly Subscriptions: the module retries automatically (3 attempts every 3 days by default, configurable), sends the customer a reminder email, and only cancels after the number of consecutive failures you define. In practice dunning recovers 50 to 70% of payments that would have been lost — several hundred euros per month from 50 active subscribers.
The My Subscriptions customer area
Accessible from the customer account, this area replaces all subscription support. Customers see their subscriptions, status, next billing and delivery dates. They can pause, resume, skip the next delivery or cancel — each action subject to your rules (pause allowed or not, skip allowed or not, minimum commitment of X cycles before cancellation). All actions follow the POST-redirect-GET pattern with confirmation, and cancellation automatically detaches the saved card at Stripe.
Technical architecture and security
The module is a true PrestaShop PaymentModule built on a PaymentGatewayInterface with StripeGateway as its first implementation — adding other gateways (Mollie, GoCardless, Adyen) means writing a connector without touching the rest. Five dedicated tables: plans per product, subscriptions, order links, event logs, and per-cart plan selections (stored in database, reliable across devices). The Stripe webhook cryptographically verifies every signature and rejects unsigned requests in live mode. The cron is token-protected with timing-safe comparison. No card number ever transits or is stored on PrestaShop: PCI-DSS compliance is carried by Stripe. No Composer dependency: one-click install on standard shared hosting.
Use cases
Monthly box (cosmetics, food, wine, coffee, books): monthly billing, monthly delivery, subscriber discount, dunning. Repeat consumables (pet food, detergent, supplements, cartridges): customer-chosen frequency, skip allowed. Recurring services (training, coaching, premium content): monthly or annual billing, 3 to 6 cycles minimum commitment. B2B medical or professional: automatic restocking of consumables with billing aligned to delivery and native orders in your accounting exports.
There are no reviews yet.