Checkout Revolution: setup and help

Quick start

  1. Upload the Checkout Revolution ZIP in Modules > Module Manager and install it.
  2. Open Checkout > Settings > Configuration. Keep Module Live Mode and Payments Live Processing off. Add Test Mode IP Addresses or use Show to Logged-In Admins.
  3. Enter Test publishable key and Test secret key, select terms/privacy pages and save.
  4. Open Settings > Payment Options. Activate and configure the methods you will test.
  5. Open Settings > Shipping Services. Link each Shop carrier and review its active switches and payment associations.
  6. In Configuration > One-Page Checkout, enable Enable One-Page Checkout, choose Replace default /order URL or the custom redirect, save and clear cache.
  7. Run Settings > Integrity and verify Stripe endpoint pairing. Place a test order and confirm its transaction, charge, order state and email.
  8. After testing guest/customer flows and each carrier/payment combination, enter live keys, enable Payments Live Processing and Module Live Mode, and check a browser without an employee session.

Requires PrestaShop 1.6 or later and PHP 7.1 or later.

Setup manual

Install and configure

Follow the steps in Quick start.

Set up a test checkout

Open Checkout > Settings > Configuration after installation. Configure payment options and shipping services in their own screens. Give employees access only to the payment, refund, document and settings pages they need.

Keep Module Live Mode off during setup. Add your address in Test Mode IP Addresses or use Show to Logged-In Admins. Leave Payments Live Processing off and enter Stripe test keys. Configure shipping and a payment option, then test the module checkout page before replacing the native order page.

Configuration: General

  • Module Status. Enables the module while keeping its admin pages available when switched off; default: true.
  • Module Live Mode. Controls whether front-office features are visible to everyone or only test users/admins; default: false.
  • Test Mode IP Addresses. Comma-separated IP allowlist for test visibility when live mode is off; default: empty.
  • Show to Logged-In Admins. Shows front-office module output to logged-in back-office employees during test mode; default: true.
  • Payments Live Processing. Chooses live Stripe processing instead of test processing; default: false.
  • Admin Test Mode. Lets logged-in employees use test Stripe keys while live processing is enabled for customers; default: true.
  • Test publishable key. Stores the Stripe pk_test_... key used in test mode; default: empty.
  • Test secret key. Stores the Stripe sk_test_... key used in test mode; default: empty.
  • Live publishable key. Stores the Stripe pk_live_... key used in live mode; default: empty.
  • Live secret key. Stores the Stripe sk_live_... key used in live mode; default: empty.
  • Stripe account country. Two-letter country code used for wallet eligibility, falling back to shop locale when empty; default: empty.
  • Terms and conditions Page. Selects the CMS page, or custom URL mode, used by the terms checkbox; default: not selected.
  • Custom Terms and conditions link. Multilingual URL used when the terms page option is set to custom; default: empty.
  • Privacy policy page. Selects the CMS page, or custom URL mode, used by the privacy checkbox; default: not selected.
  • Custom Privacy policy link. Multilingual URL used when the privacy page option is set to custom; default: empty.
  • Show Terms and Conditions checkbox. Displays a required terms consent checkbox in the checkout modal; default: true.
  • Terms and Conditions checkbox label. Multilingual HTML label, with {terms_url} replaced by the configured terms URL; default: I have read and agree to the <a href="{terms_url}" target="_blank">Terms and Conditions</a> governing the use of this website and the purchase of products.
  • Show Privacy Policy checkbox. Displays a required privacy consent checkbox in the checkout modal; default: true.
  • Privacy Policy checkbox label. Multilingual HTML label, with {privacy_url} replaced by the configured privacy URL; default: I acknowledge that I have read and understood the <a href="{privacy_url}" target="_blank">Privacy Policy</a> explaining how my personal data will be processed.

Module Live Mode controls who sees the module. Payments Live Processing controls whether Stripe charges are real. These are separate switches. Start with both off and allow your test IP or a recognized back-office employee. When Admin Test Mode is on, test the live customer flow from a separate browser without an employee session too.

Choose actual terms and privacy CMS pages or custom links before testing consent. {terms_url} and {privacy_url} are substituted into the corresponding labels.

Configuration: One-Page Checkout

  • Enable One-Page Checkout. Enables the module checkout page; default: false.
  • Replace default /order URL. Shows the module checkout page at the native PrestaShop order URL; default: false.
  • Redirect /order to custom URL. Redirects the native order page to the configured checkout URL when replacement is not used; default: false.
  • Allow Guest Checkout. Lets customers complete checkout without creating an account; default: true.
  • Enable Social Login. Shows configured social login buttons on the one-page checkout; default: true.
  • Show Cart Summary. Displays the order summary sidebar on the checkout page; default: true.
  • Show Breadcrumbs. Displays breadcrumb navigation on the checkout page; default: true.
  • Checkout Layout. Chooses two-column, three-column or single-column checkout layout; default: two-column.
  • Section Order. Sets the visual order of checkout sections; default: summary,contact,shipping,payment.
  • Payment Options Layout. Chooses tabs, accordion-radio or accordion-plain; default: accordion-radio.
  • Shipping Options Layout. Chooses the shipping selector layout; default: list.
  • Checkout URL. Multilingual checkout slug; default: en=checkout, pl=kasa, de=kasse, fr=caisse, es=caja, it=cassa, nl=kassa.
  • Page Title. Multilingual visible checkout title; default: Checkout.
  • SEO Meta Title. Multilingual meta title for checkout; default: Secure Checkout.
  • SEO Meta Description. Multilingual meta description for checkout; default: Complete your order quickly and securely with our express checkout..
  • SEO Meta Keywords. Optional checkout meta keywords; default: empty.
  • Payment Filtering by Carrier. Chooses greying out or hiding for carrier-restricted payment methods; default: client.
  • Split-credit upfront methods. Comma-separated payment methods allowed for upfront payment on split credit orders; default: card,paypal,klarna,sepa_debit,bank_transfer,pickup.
  • Robots Meta Tag. Controls indexing for the checkout page; default: index,follow.

Enable One-Page Checkout first. Choose either Replace default /order URL or Redirect /order to custom URL according to the URL you want, then clear cache and follow the shop's generated checkout link. The URL settings have no effect while the page is disabled. The split-credit list only accepts the supported upfront methods; credit account, COD, quote and wallet buttons are ignored for that part.

Configuration: Cart Page

  • Enable Modern Cart Page. Enables the module cart page; default: false.
  • Replace Default Cart Page. Redirects the native cart page to the module cart page; default: true.
  • Cart Page Layout. Chooses two-column or single-column cart layout; default: two-column.
  • Show Voucher Code Input. Displays the voucher/code entry field on the cart page; default: true.
  • Show Product Attributes. Displays product combinations in cart lines; default: true.
  • Show Product Customizations. Displays custom text and uploaded customization data in cart lines; default: true.
  • Show Product Images. Displays product thumbnails in cart lines; default: true.
  • Cart Page URL. Multilingual cart slug; default: en=shopping-cart, pl=koszyk, de=warenkorb, fr=panier, es=carrito, it=carrello, nl=winkelwagen.
  • Cart Page Title. Multilingual visible cart title; default: Shopping Cart.
  • Cart Page Meta Title. Multilingual cart meta title; default: Shopping Cart.
  • Cart Page Meta Description. Multilingual cart meta description; default: Review your shopping cart items, update quantities, and proceed to checkout..

Enable Modern Cart Page before expecting Replace Default Cart Page to redirect. Check combinations, uploaded customizations, vouchers, quantity changes and shipping on the resulting cart.

Configuration: Quotes

  • Enable quote requests. Enables quote request workflows; default: true.
  • Allow guest quote requests. Lets visitors request quotes without logging in; default: false.
  • Reference format. Format used for quote references; default: QUO-{YEAR}-{ID:5}.
  • Default quote validity. Number of days a new quote remains valid; default: 30.
  • Payment link validity. Number of hours a quote payment link remains usable; default: 48.
  • Show quote button on product pages. Adds quote request buttons on product pages; default: true.
  • Product quote action. Opens the quote flow as a page or modal; default: page.
  • Quote button label. Multilingual quote button text; default: Request Quote.
  • Show quote button on cart page. Adds a quote request button to the cart footer; default: true.
  • Company. Shows the company field on quote request forms; default: true.
  • Phone. Shows the phone field on quote request forms; default: true.
  • Project reference. Shows the project reference field on quote request forms; default: true.
  • Requested delivery date. Shows the requested delivery date field on quote request forms; default: false.
  • File attachment. Allows attachments on quote request forms; default: true.
  • Email admin on new request. Sends an admin email when a quote request is submitted; default: true.
  • Email customer when quote is created. Sends a customer email when a quote is created; default: true.
  • Email customer when quote is updated. Sends a customer email when a quote changes; default: true.
  • Email customer before quote expires. Saves the expiry-reminder preference; default: true. Automatic quote expiry reminders are not sent.
  • Expiration reminder lead time. Stored reminder lead time; default: 3 days. It does not itself schedule reminders.
  • Email on quote messages. Sends emails when quote messages are added; default: true.

Manage requests under Checkout > Quotes > Quotes and manage the workflow under Quote Statuses. Review quantities, prices, addresses and validity before sending a quote or its payment link. Quotes support PDFs and customer messages. The reference format accepts {YEAR}, {MONTH}, {DAY}, {ID}, {ID:5} and {CUSTOMER_ID}. For example, QUO-{YEAR}-{ID:5} can produce QUO-2026-00042.

With default English URL settings, product quote links can use /request-quote/product/123 or /request-quote/product/123-456. Use generated links for the actual shop and language. Payment links have their own token and expiry; preserve the full generated link. The default payment-link lifetime is separate from the quote's default validity in days.

Review a quote before conversion

Open Checkout > Quotes > Quotes and view the request. Review its items, quantities, prices, addresses and expiry. Use Change Status to manage the request. The initial Convert to Order action is offered for a quote with items in the built-in Accepted status and no linked order. Editing stops once the quote is expired, linked to an order or in a final status.

Direct conversion creates a new PrestaShop cart from quote items with a catalogue product ID. Free-text items without a product ID are not added to that cart. Review such items before converting. The conversion uses ps_wirepayment when available, otherwise the Checkout Revolution module, with the PS_OS_BANKWIRE order state or its PS_OS_CHEQUE fallback. Creating this awaiting-payment order does not itself take an online payment. Check the resulting order and payment state before fulfilment.

Configuration: My Account

  • Enable Header Login Modal. Enables the account/login widget in the header; default: false.
  • Enable Modern Login Page. Enables the module login page; default: false.
  • Enable Modern Register Page. Enables the module registration page; default: false.
  • Enable Modern Password Reset Page. Enables the module password reset page; default: false.
  • Enable Modern My Account Page. Enables the module account dashboard page; default: false.
  • Redirect Core Auth Pages. Redirects native customer pages to enabled module pages; default: true.
  • Enable Modern Order History. Enables the module order history page; default: false.
  • Enable Modern Order Detail. Enables the module order detail page; default: false.
  • Enable Modern Merchandise Returns. Enables the module returns list page; default: false.
  • Enable Modern Return Details. Enables the module return detail page; default: false.
  • Enable Modern Credit Slips. Enables the module credit slips page; default: false.
  • Enable Modern Vouchers Page. Enables the module vouchers page; default: false.
  • Enable Modern Guest Tracking. Enables the module guest tracking page; default: false.
  • Enable Modern Order Confirmation. Enables the module order confirmation page; default: false.
  • Enable Password Login. Allows password-based login on module auth pages; default: true.
  • Enable Email Code Login. Allows email-code login on module auth pages; default: true.
  • Enable SMS Code Login. Allows SMS-code login on module auth pages when SMS credentials are configured; default: true.
  • Social Login Button Layout. Chooses icons, 2-columns or full social button layout; default: full.
  • Social Login Position. Shows social login buttons at the top or bottom of the form; default: top.
  • Show Guest Checkout Option. Shows the guest checkout choice on auth screens used by checkout; default: true.
  • Require Password on Registration. Requires a password when customers register; default: true.
  • Show Newsletter Checkbox. Shows the newsletter opt-in on registration; default: true.
  • Show Birthdate Field. Shows the birthdate field on registration; default: false.
  • Show Gender Selection. Shows the gender selector on registration; default: false.
  • Show Company Registration. Shows company registration fields; default: false.
  • Enable VAT Number Field. Enables VAT entry for company registration; default: false.
  • Auto-Verify VAT via VIES. Verifies VAT numbers through VIES when VAT registration is enabled; default: true.
  • Require VAT for Company Registration. Makes VAT required for company registrations; default: false.
  • Block Invalid Registration VAT. Blocks registration when VIES says the VAT number is invalid; default: true.
  • Block Registration When VIES Is Unavailable. Blocks registration when VIES cannot be reached; default: false.
  • Verify VAT on Address Save. Verifies VAT numbers when customer addresses are saved; default: true.
  • Require VAT for Company Addresses. Requires VAT for company addresses; default: false.
  • Block Invalid Address VAT. Blocks address save when VAT validation fails; default: true.
  • Block Address Save When VIES Is Unavailable. Blocks address save when VIES cannot be reached; default: false.
  • VAT Cache Duration. Hours to cache VAT validation results; default: 720.
  • Enable My Company Page. Enables the B2B company account page; default: false.
  • Auto-Approve VAT Join Requests. Automatically approves company join requests by VAT number; default: false.
  • Show Saved Cards on Account Page. Displays saved card access from the account dashboard; default: true.
  • Login Page URL. Multilingual login slug; default: en=sign-in.
  • Register Page URL. Multilingual registration slug; default: en=create-account.
  • Password Reset Page URL. Multilingual password reset slug; default: en=reset-password.
  • My Account Page URL. Multilingual account slug; default: en=account.
  • Order Confirmation Page URL. Multilingual confirmation slug; default: en=order-confirmed.
  • Login Page Title. Multilingual login title; default: Sign In.
  • Register Page Title. Multilingual registration title; default: Create Account.
  • Password Reset Page Title. Multilingual password reset title; default: Reset Password.
  • My Account Page Title. Multilingual account title; default: My Account.
  • Enable Modern Identity Page. Enables the module personal information page; default: false.
  • Identity Page Title. Multilingual identity page title; default: Personal Information.
  • Identity Page URL. Multilingual identity slug; default: en=personal-info.
  • Enable Modern Addresses Page. Enables the module addresses list page; default: false.
  • Addresses Page URL. Multilingual addresses slug; default: en=my-addresses.
  • Enable Modern Address Form. Enables the module address form page; default: false.
  • Address Form URL. Multilingual address form slug; default: en=new-address.

Also review the newer My Account controls:

Setting Default How to use it
Passkey Sign-in Flow email_first Choose an email-first flow or a one-tap entry. Browser passkey availability still determines the offered interface.
Enable QR Sign-in Approval Off Allow an anonymous computer to request approval from a phone already signed in.
After QR approval on the phone stay Choose where the approving phone goes after confirmation.
Custom URL after QR approval Empty Use a URL on this shop if you select a custom destination.
How to create an account from sign-in inline Choose inline account creation, a full create-account modal or a registration-page redirect.
Connected Provider Display marks Choose how an already connected social provider is displayed.
Registration Terms Page Shop default (0) Use the shop's default terms page or choose the authentication terms page.
Registration Privacy Page Shop default (0) Follow the shop privacy fallback or choose the authentication privacy page.

Enable account pages individually, then test redirects from the native pages. The saved-card dashboard link also depends on card saving and customer access. Provider buttons need their integration credentials. Do not assume the social display switch alone configures a provider.

Configuration: Integrations

  • Enable Google Places Autocomplete. Enables address autocomplete using Google Places; default: false.
  • Google Places API Key. Stores the Google Places API key; default: empty.
  • Enable Google Sign-In. Enables Google OAuth login; default: false.
  • Google OAuth Client ID. Stores the Google OAuth client ID; default: empty.
  • Enable Google One Tap. Enables Google One Tap when Google Sign-In is active; default: false.
  • Enable Apple Sign-In. Enables Apple OAuth login; default: false.
  • Apple Service ID. Stores the Apple Services ID; default: empty.
  • Apple Team ID. Stores the Apple team ID; default: empty.
  • Apple Key ID. Stores the Apple key ID; default: empty.
  • Apple Private Key. Stores the Apple private key; default: empty.
  • Enable Facebook Sign-In. Enables Facebook OAuth login; default: false.
  • Facebook OAuth Client ID. Stores the Facebook app ID; default: empty.
  • Facebook OAuth Secret. Stores the Facebook app secret; default: empty.
  • Enable Microsoft Sign-In. Enables Microsoft OAuth login; default: false.
  • Microsoft OAuth Client ID. Stores the Microsoft client ID; default: empty.
  • Enable X Sign-In. Enables X OAuth login; default: false.
  • X OAuth Client ID. Stores the X client ID; default: empty.
  • X OAuth Client Secret. Stores the X client secret; default: empty.
  • Enable PayPal Sign-In. Enables PayPal OAuth login; default: false.
  • PayPal OAuth Client ID. Stores the PayPal client ID; default: empty.
  • PayPal OAuth Secret. Stores the PayPal secret; default: empty.
  • Enable Amazon Sign-In. Enables Amazon OAuth login; default: false.
  • Amazon OAuth Client ID. Stores the Amazon client ID; default: empty.
  • Amazon OAuth Secret. Stores the Amazon secret; default: empty.
  • Enable LinkedIn Sign-In. Enables LinkedIn OAuth login; default: false.
  • LinkedIn OAuth Client ID. Stores the LinkedIn client ID; default: empty.
  • LinkedIn OAuth Secret. Stores the LinkedIn secret; default: empty.
  • Enable TikTok Sign-In. Enables TikTok OAuth login; default: false.
  • TikTok Client Key. Stores the TikTok client key; default: empty.
  • TikTok Client Secret. Stores the TikTok client secret; default: empty.
  • Enable Yahoo Sign-In. Enables Yahoo OAuth login; default: false.
  • Yahoo OAuth Client ID. Stores the Yahoo client ID; default: empty.
  • Yahoo OAuth Secret. Stores the Yahoo secret; default: empty.
  • Enable SMS Authentication. Enables Twilio SMS code sending; default: false.
  • Twilio Account SID. Stores the Twilio account SID; default: empty.
  • Twilio Auth Token. Stores the Twilio auth token; default: empty.
  • Twilio Messaging Service SID. Stores the Twilio messaging service SID; default: empty.
  • SMS Message Template. SMS text template for verification codes; default: empty.
  • Enable WhatsApp Authentication. Enables Twilio WhatsApp verification; default: false.
  • Twilio WhatsApp Number. Stores the Twilio WhatsApp sender number; default: empty.
  • WhatsApp Message Template. WhatsApp text template for verification codes; default: empty.

Enable only the providers you configure. The form includes Google, Apple, Facebook, Microsoft, X, PayPal, Amazon, LinkedIn, TikTok and Yahoo sign-in. Copy the callback or redirect address supplied by the module into the corresponding provider application. Check it in every enabled shop language. Apple requires its Service ID, Team ID, Key ID and private key. Secret fields are not ordinary public text fields.

SMS and WhatsApp use Twilio credentials. The message templates support {code}, {minutes} and {shop_name}. SMS Code Login in My Account does not replace Enable SMS Authentication and its credentials. Google Places Autocomplete requires its API key.

Configuration: Advanced

  • Awaiting Payment (Stripe). Order state used before Stripe payment completion; default: Awaiting Payment state if installed, otherwise PS_OS_CHEQUE.
  • Payment Accepted. Order state used for accepted payments; default: PS_OS_PAYMENT.
  • Processing. Order state used for processing orders; default: PS_OS_PREPARATION.
  • Awaiting Bank Wire. Order state used by the bank transfer method; default: bank_transfer payment option order state.
  • Awaiting Cash on Delivery. Order state used by COD; default: PS_OS_COD_VALIDATION.
  • Partial Refund. Order state used for partial refunds; default: Partial Refund state if installed, otherwise PS_OS_REFUND.
  • Full Refund. Order state used for full refunds; default: PS_OS_REFUND.
  • Preserve Password on Recovery. Keeps password data during payment/cart recovery; default: false.
  • Default abandoned cart redirection page. Chooses where recovered carts open; default: cart.
  • Select CMS Page. CMS page used when the abandoned-cart redirect type is CMS; default: not selected.
  • Payment Recovery Redirect. Redirects customers into recovery when a recoverable payment is detected; default: true.
  • Allow Payment Intent Validation Override. Lets admins override payment intent validation in admin order/payment workflows; default: false.
  • Treat new customers as. Customer group assigned to new customers created through the module; default: PS_CUSTOMER_GROUP.
  • Transaction Recovery Method. Chooses the recovery mode used for unfinished transactions; default: front.
  • Recovery Timeout. Seconds to wait before recovering unfinished transactions; default: 60. Keep it at least 60 seconds.
  • Session Timeout. Minutes before visitor sessions expire; default: 60.
  • Page error container selector. CSS selector used to insert page-level errors; default: section > .container.
  • Conditions checkboxes selector. CSS selector for required checkout condition checkboxes; default: #conditions-to-approve input[required].
  • Confirmation button selector. CSS selector for the native place-order button; default: #payment-confirmation button.
  • Payment option selector. CSS selector for native payment option radios; default: input[name="payment-option"].
  • Enable Modern Invoices. Replaces default invoice output with module-styled PDFs; default: true.
  • Invoice Header Text. Optional custom invoice header HTML; default: empty.
  • Invoice Footer Text. Optional custom invoice footer HTML; default: empty.
  • Show Product Reference. Shows product reference codes on invoices; default: false.

Order-state defaults come from this installation. Awaiting Payment and Partial Refund use the module's IDs when valid, with the fallback shown above. Confirm those states in your own shop before changing them. Enable Modern Invoices is on by default, so verify invoice output as part of the initial setup. The module participates in actionPDFInvoiceRender and actionMailAlterMessageBeforeSend.

Keep native-checkout selectors at their defaults unless your theme changes the markup. Change one selector at a time and test native payment selection, required conditions and the confirmation button. Allow Payment Intent Validation Override can let an employee create an order without a recorded transaction, so use it only with a specific payment reconciliation workflow.

Configuration: Appearance

  • Enable custom assets. Loads views/js/custom.js and views/css/custom.css; default: false.
  • Shop Template. Uses automatic theme or parent-theme matching, or your manual choice; default: auto.
  • Unified Payment Modal. Shows one button that opens a list of payment methods instead of separate buttons; default: false.
  • Button Design. Chooses unified modal button style; default: logos.
  • Unified Express Checkout Button. Multilingual unified button label; default: Express Checkout.
  • Modal Header. Multilingual unified modal heading; default: Complete your purchase.
  • Payment Button Text. Multilingual unified payment button text; default: Pay now.
  • Processing Message. Multilingual processing text; default: Processing your payment....
  • Payment Method Design. Chooses the payment method UI preset; default: stripeTabs.
  • Shipping Method Design. Chooses the shipping method UI preset; default: stripe.
  • Card Source Design. Chooses the saved-card/new-card selector UI; default: compact.
  • Saved Cards Display. Chooses saved cards as tiles or dropdown; default: tiles.
  • Primary Background Colour. Primary module color, auto-detected from the theme when available; default: #1d93ab.
  • Primary Font Colour. Text color over the primary background, auto-detected when available; default: #ffffff.
  • Secondary Background Colour. Secondary module background, auto-detected when available; default: #f6f6f6.
  • Secondary Font Colour. Text color over the secondary background, auto-detected when available; default: #232323.
  • Icon Theme. Chooses payment icon theme; default: light-mode.
  • Card Icon Display. Chooses generic card icon or card brand logos; default: brands.
  • Card Brands to Display. Card brand logos shown for card payment; default: visa,mastercard,american_express.

The color values above are fallbacks when shared theme detection has no value. Use Shop Template auto before choosing a manual preset. Keep custom code in the supplied custom.css and custom.js files only when Enable custom assets is on, and preserve your custom files during module updates.

Configure Payment Options

Open Checkout > Settings > Payment Options. Select an option and review Active, its configuration and associations. Options include Stripe-backed methods and manual bank transfer, cash on delivery, credit account, pickup and quote flows. A credit account option needs an eligible credit account; enabling its label does not grant credit.

Review the available country, currency and customer-group associations before expecting an option to appear. Choose the options needed for your store and test each enabled method independently.

The applicable fields depend on the selected method:

  • Default Payment Option. Selects the default express checkout payment method in Checkout > Settings > Payment Options; default: card.
  • Require Login for Existing Accounts. Requires sign-in for registered emails, usually useful for manual methods; default: true for manual methods, false otherwise.
  • Disable Link Autofill. Prevents Stripe Link from autofilling card payment details; default: false.
  • Enable Card Saving. Allows customers to save cards for later purchases; default: true.
  • Saved Cards URL. Multilingual saved cards page URL; default: en=my-saved-cards.
  • Cards Page Meta Title. Multilingual saved cards meta title; default: Manage saved cards.
  • Cards Page Meta Description. Multilingual saved cards meta description; default: Manage your saved payment methods securely. Add, remove, or update your cards for faster checkout..
  • Use Wallet Billing Address. Uses billing data returned by Google Pay, Apple Pay or Link; default: true.
  • When wallet unavailable. Chooses how unavailable wallets are handled; default: hide.
  • Bank Transfer Details. Bank account instructions shown for bank transfer; default: empty.
  • Send Confirmation Email. Sends bank transfer or credit account confirmation emails; default: true.
  • Email Subject. Multilingual bank transfer email subject; default: Bank Transfer Payment Instructions.
  • Email Subject. Multilingual credit account email subject; default: Order Confirmation - Credit Account.
  • Label. Per-payment-method storefront label in Payment Options; default: method-specific translated label.
  • Express Checkout Button. Per-payment-method express button text; default: method-specific translated text.
  • Modal Header. Per-payment-method modal heading; default: method-specific translated text.
  • Modal Button. Per-payment-method modal action text; default: method-specific translated text.
  • Payment Button. Per-payment-method confirmation button text; default: method-specific translated text.
  • Payment Option Label. Per-payment-method label shown in checkout option lists; default: method-specific translated text.
  • Processing Text. Per-payment-method processing message; default: method-specific translated text.

The two Email Subject fields apply separately to bank transfer and credit account. Per-method Label, Express Checkout Button, Modal Header, Modal Button, Payment Button, Payment Option Label and Processing Text are multilingual. Keep default method text unless you need different storefront copy.

When wallet unavailable defaults to the hide behavior. Wallet availability depends on the Stripe account, device, browser, country and currency. It is expected that some wallet buttons are absent during a particular test.

Restrict an option to an audience

Open an option's associations form and use Payment Option Targeting to select shops, languages, customer groups, countries and currencies. For example, select your wholesale customer group for a trade payment option. Click Save Associations. An empty selection means Available Everywhere, so choose the intended restrictions explicitly.

This form has no minimum or maximum cart-total condition. Do not expect it to implement an amount threshold such as hiding cash on delivery above 500. Carrier/payment associations are configured separately under Shipping Services.

Configure Shipping Services

Open Checkout > Settings > Shipping Services. Link the service to a Shop carrier. The actual service-editor labels are:

Setting New-service default How to use it
Shop carrier Required selection Select the PrestaShop carrier represented by the service.
Service Name Empty until entered Translate the customer-facing name. Carrier import can prefill it.
Description Empty Translate extra delivery information.
Minimum Transit Time (days) 0 Enter the lower delivery estimate.
Maximum Transit Time (days) 0 Enter the upper delivery estimate.
Display Mode all Choose all carts or the available stock-state restriction.
Express Checkout Enabled Enable the service for express checkout.
One-Page Checkout Enabled Enable it for the module checkout page.

Services have ordering positions. New records use the next position; imported services can inherit carrier state. The global Default Shipping Option initially follows the service linked to PS_CARRIER_DEFAULT. Virtual Carrier Label defaults to Digital Delivery; Virtual Carrier Details defaults to Instant access after payment.

In the association section, review Display Everywhere, All Payment Options, Specific payment options, All External Payment Modules and External payment modules. Select the allowed options/modules for the carrier. In Configuration > One-Page Checkout, Payment Filtering by Carrier chooses greying out or hiding.

For example, link a service to carrier 12, enable Express Checkout and One-Page Checkout, then allow card, PayPal, Klarna and bank transfer as appropriate. Select a different carrier during testing and confirm incompatible payment choices become unavailable. Native carrier zones, ranges and customer access still determine whether delivery is available.

Place express checkout buttons

Open Configuration > Hooks. The labels correspond to theme placements:

Setting Hook Default
Payment Options paymentOptions On
Product Actions displayProductActions Off
Product Additional Info displayProductAdditionalInfo Off
Product Buttons displayProductButtons Off
After Add to Cart Button displayAfterProductAddCartBtn Off
Shopping Cart - summary section displayShoppingCart Off
Shopping Cart - express checkout displayExpressCheckout Off
Product Listing displayProductListReviews Off
Product List - Below Button displayProductListBelowButton Off
Custom Hook displayMPRCheckoutRevolution On

The per-hook Use Default Appearance option inherits global appearance when on. Turn on only the placements your theme renders. You can leave One-Page Checkout disabled and use express placements with the native checkout.

For manual Smarty placement, enable Custom Hook and use the context needed:

{hook h="displayMPRCheckoutRevolution"}
{hook h="displayMPRCheckoutRevolution" product=$product}
{hook h="displayMPRCheckoutRevolution" id_product=$product.id_product id_product_attribute=$product.id_product_attribute}
{hook h="displayMPRCheckoutRevolution" product=$product quantity=2}
{hook h="displayMPRCheckoutRevolution" product=$product source_label="Blog product"}

Verify webhooks and maintenance

The Stripe webhook URL is:

https://your-shop.example/module/mprcheckoutrevolution/webhook

The module includes endpoint registration and pairing for test and live Stripe modes. It stores mode-specific endpoint IDs and signing secrets. Verify the module-created endpoint and successful signed event delivery; manually adding an arbitrary endpoint without matching its signing secret is insufficient. Use Checkout > Settings > Integrity to check the setup and address reported pairing or processing problems.

Complete a test payment and confirm a single PrestaShop order, transaction and charge are recorded. Review Checkout > Payments > Carts, Transactions, Charges and Refunds. Check interrupted/failed payment behavior before enabling live processing.

For scheduled maintenance, the shared runner can use:

php /var/www/html/modules/mprcheckoutrevolution/cron.php --token=YOUR_SHARED_MPR_CRON_TOKEN --max-tasks=20 --max-seconds=55 --context=cron

Use the shared MPR cron token and your real installation path. The registered tasks include recovery every 300 seconds, stale-transaction cleanup every hour, completed-webhook pruning daily and credential-state maintenance every 300 seconds. Check the runner results instead of treating a successful HTTP response as proof that every task ran.

Check customer flows before live use

  1. Test guest checkout and an existing customer account. Check address validation, country/state fields and each enabled authentication method.
  2. Test product quantities, combinations, customizations and vouchers on both the cart and checkout pages.
  3. Test all configured carriers and their payment restrictions. Confirm totals and tax display after address or carrier changes.
  4. Place a test order with each enabled payment option. Verify the resulting state and email. Test a refund on a test payment.
  5. If card saving is enabled, save a test card, open the default /my-saved-cards page and check removal and subsequent checkout selection.
  6. Submit a quote from a product and cart. Review the admin request, PDF, messages and generated payment link. Test expiry handling. Automatic expiry reminders are not sent.
  7. Open each enabled account page, invoice and order confirmation. Check redirects from the native pages while signed out and signed in.
  8. Enter the live keys only after tests pass. Enable Payments Live Processing and Module Live Mode, verify live webhook pairing, then check the ordinary customer view from a browser without an employee session.

Use Customers > Saved Cards, Social Customers and Visitor Sessions for the corresponding admin records. Use Documents > Invoices and Corrections for module document workflows.

Customize styles and JavaScript

With Enable custom assets on, the module loads:

modules/mprcheckoutrevolution/views/css/custom.css
modules/mprcheckoutrevolution/views/js/custom.js

Examples of module CSS hooks:

:root {
  --mpr-ec-bg-color-primary: #111827;
  --mpr-ec-ft-color-primary: #ffffff;
  --mpr-ec-bg-color-secondary: #f3f4f6;
  --mpr-ec-ft-color-secondary: #1f2937;
}
.mpr-ec-btn-container.custom-hook .mpr-ec-btn,
.mpr-ec-btn-container.product-actions .mpr-ec-btn { width: 100%; }
.mpr-quote-request-btn-container .mpr-quote-request-btn { margin-top: 8px; }

The provided JavaScript customization class is MPRExpressCheckoutCustom. Its updateCheckoutContext(checkoutContext) and updateCheckoutSetup(checkoutSetup) methods return the updated context/setup. Extend the supplied class in custom.js while preserving those return values:

updateCheckoutContext(checkoutContext) {
    this.checkoutContext = checkoutContext;
    return this.checkoutContext;
}
updateCheckoutSetup(checkoutSetup) {
    this.checkoutSetup = checkoutSetup;
    return this.checkoutSetup;
}

These are methods inside the provided class, not a standalone script. Recheck custom assets after theme changes or module updates.

Troubleshoot

  • If output is missing, check Module Status, Module Live Mode, your test IP/employee recognition and the individual page or hook switch.
  • If the native page stays unchanged, enable the corresponding module page, choose replacement/redirect and clear cache.
  • If Stripe methods fail, check key mode, account configuration, endpoint pairing and signed webhook delivery. An employee can still be using test keys while customers use live keys.
  • If a manual option is missing, check Active, associations, carrier restrictions and existing-account login requirements. Credit requires account eligibility.
  • If shipping is empty, check the linked Shop carrier, country/zone, ranges, stock display mode and active switch for the current checkout type.
  • If a wallet is absent, check When wallet unavailable and test on an eligible device with the correct account/currency setup.
  • If a provider login or code does not work, check that both the page-level choice and integration are enabled with matching credentials and callback URLs.
  • Quote expiry reminders are not sent, even when Email customer before quote expires and Expiration reminder lead time are saved.
  • Use Integrity and the relevant admin transaction/charge records before retrying a payment or changing order states.

Disable or uninstall

Set Module Status off to stop module behavior while keeping admin pages available. To disable the module in PrestaShop, use Module Manager.

Before Uninstall, back up module configuration, quote data, payment records and custom assets. Switch the storefront to a working checkout/payment page and remove obsolete scheduled invocations. The uninstall removes module admin pages, scheduled tasks, tables owned by the module and managed order statuses, and attempts to unregister its Stripe endpoints when outbound writes are allowed. Verify endpoint cleanup in Stripe if that step was blocked or failed. Shared tables explicitly marked persistent, including customer/company and credit records, are retained. Uninstalling does not issue customer refunds or settle outstanding payments.

Reference screenshots

Checkout Revolution, Account login

Checkout Revolution, Admin sessions

Checkout Revolution, Quote payment

Checkout Revolution, Admin abandoned carts

Checkout Revolution, Admin transactions

Checkout Revolution, Saved cards

Checkout Revolution, Admin dashboard

Checkout Revolution, Cart discounts

Checkout Revolution, Social login

Checkout Revolution, Admin integrity

Checkout Revolution, Checkout ajax steps

Checkout Revolution, Admin invoices

Checkout Revolution, Express checkout button

Checkout Revolution, Admin payment options

Checkout Revolution, One page checkout

Checkout Revolution, Admin quotes

Checkout Revolution, Order history

Questions

2

What happens if I turn off Enable One-Page Checkout?

The module's checkout controller redirects a request for its checkout page to PrestaShop's native order page when Enable One-Page Checkout is off. This is the module setting one_page_checkout_enabled.

Does Credit Account include a purchase-order approval workflow?

Checkout Revolution provides quote requests and a Credit Account payment option. Credit eligibility is resolved through the credit-provider integration; enabling that payment option does not add an approve, submit and invoice purchase-order sequence. Review your credit integration separately for trade-account approval requirements.

Known Issues

78

PrestaShop 1.6 administration and page compatibility

ResolvedUpdated:
Fixed in: 1.46.2
Some administration queries and storefront address information could fail on PrestaShop 1.6.

Payment validation used a different email

ResolvedUpdated:
Fixed in: 1.46.2
Payment validation could use an email different from the address displayed to the customer.

Mixed digital orders were marked paid before verification

ResolvedUpdated:
Fixed in: 1.46.2
Orders combining regular and digital items could be marked paid before all digital items and stored order and invoice totals were verified.

Digital refund checks happened too late

ResolvedUpdated:
Fixed in: 1.46.2
A refused digital refund could progress too far, while an accepted refund could fail to complete its bookkeeping.

Cached payment icons differed by browser

ResolvedUpdated:
Fixed in: 1.46.2
Cached storefront sections could show payment icons selected for a different browser.

Opening dialogs before their scripts loaded failed

ResolvedUpdated:
Fixed in: 1.46.2
Express checkout, quote, address and header sign-in actions could fail when invoked before their required interface finished loading.

Checkout dialog did not close on Bootstrap 3

ResolvedUpdated:
Fixed in: 1.46.2
The shared checkout close action could fail to recognize an open dialog on Bootstrap 3 themes.

Some shop links failed with checkout enabled

ResolvedUpdated:
Fixed in: 1.46.2
The checkout link integration did not support all standard shop link operations, causing compatibility failures.

Digital shop-selection sign-in was unavailable

ResolvedUpdated:
Fixed in: 1.46.2
The shop-selection sign-in required by a supported digital product integration had been removed and is restored.

VAT checks caused repeated checkout refreshes

ResolvedUpdated:
Fixed in: 1.46.2
A VAT result could trigger a repeated refresh cycle between VAT validation and checkout.

Address search did not fill the selected address

ResolvedUpdated:
Fixed in: 1.44.4
Picking a suggested address in the checkout dialog could fail to populate the address fields.

Express address form was hidden on some themes

ResolvedUpdated:
Fixed in: 1.44.4
The address form could be hidden inside the checkout dialog on themes using Bootstrap tabs.

Visit attribution order was incorrect

ResolvedUpdated:
Fixed in: 1.44.4
An inaccurate device clock or delayed retry could give visits the wrong attribution order instead of retaining the latest valid touch.

Installation banners named the wrong module

ResolvedUpdated:
Fixed in: 1.44.0
Installation warnings and repair logs could identify a different checkout module.

Guest order creation rejected an existing account email

ResolvedUpdated:
Fixed in: 1.44.0
Creating a guest for an order could fail merely because the email was already used by a customer account.

Credit slips were reported before being saved completely

ResolvedUpdated:
Fixed in: 1.44.0
Order-edit credit slips could be partially saved or announced with details different from the stored slip.

Passkey sign-in failed across first-visit tabs

ResolvedUpdated:
Fixed in: 1.43.7
Two tabs opened on a first visit could interfere with each other and prevent passkey sign-in from finishing.

Dashboard controls did not load

ResolvedUpdated:
Fixed in: 1.43.6
Dashboard administration scripts could fail to load, leaving its interactive controls unavailable.

PrestaShop 1.6 installation and pages failed

ResolvedUpdated:
Fixed in: 1.43.6
The module could fail to install or open front office and installation-check pages on PrestaShop 1.6.

Carts without carriers could not be paid

ResolvedUpdated:
Fixed in: 1.43.6
Preparing a payment could lose cart information required to pay a cart without a carrier.

Paid digital options or prices were lost

ResolvedUpdated:
Fixed in: 1.43.6
The cart prepared for payment could lose paid digital options, license durations or the original prices.

Express checkout paid with the wrong address details

ResolvedUpdated:
Fixed in: 1.43.6
Payment could use a country different from the displayed address or fail to keep billing synchronized with shipping.

Installation failed with a custom database prefix

ResolvedUpdated:
Fixed in: 1.43.6
Installing the module could fail when the shop used a database table prefix different from the default.

Missing staff alerts for incomplete payment associations

ResolvedUpdated:
Fixed in: 1.42.4
Some incomplete cart-to-order associations could miss the staff alert or lose it after an outdated save.

Manual payment orders did not finalize

ResolvedUpdated:
Fixed in: 1.42.4
Manual-payment orders could stop before final completion after payment protection changes.

Additional service items counted twice

ResolvedUpdated:
Fixed in: 1.42.3
Order comparisons could count additional service items twice and reject an otherwise matching order.

Customers lost their session during order creation

ResolvedUpdated:
Fixed in: 1.42.3
A signed-in customer could lose the active session while an order was being created. Empty carts could also reach payment startup.

Settings controls did not load

ResolvedUpdated:
Fixed in: 1.42.0
The module configuration page could request unavailable assets and leave settings controls unusable.

Transaction repair stopped with an error

ResolvedUpdated:
Fixed in: 1.42.0
Repairing an orphaned transaction could fail instead of completing the repair.

One-page checkout used express validation

ResolvedUpdated:
Fixed in: 1.42.0
The one-page checkout could be validated as an express checkout, applying the wrong checkout requirements.

Existing checkout records were not found

ResolvedUpdated:
Fixed in: 1.42.0
Looking up a checkout or session could fail and cause repeated creation of new records.

Quote combinations and payment error handling failed

ResolvedUpdated:
Fixed in: 1.42.0
Product combinations could fail in quotes or order edits, and a failed payment start could lose its useful error message.

Express checkout failed to start

ResolvedUpdated:
Fixed in: 1.42.0
Starting express checkout could fail with a payment initiation error instead of creating the expected checkout record.

Virtual products incorrectly delayed shipping

ResolvedUpdated:
Fixed in: 1.41.0
Virtual products could make a cart wait for physical stock, while physical stock availability could be read for the wrong shop.

Buy now lost selected digital options

ResolvedUpdated:
Fixed in: 1.41.0
Express checkout could omit support, license or service options selected for a digital product, or collect options from another product form.

Card payment forms stayed empty

ResolvedUpdated:
Fixed in: 1.41.0
When payment services finished loading late, the card form could remain empty or wait unnecessarily for wallet detection.

Card payments stopped with an error

ResolvedUpdated:
Fixed in: 1.41.0
Starting a card payment could fail with an error instead of continuing checkout.

Late checkout updates replaced newer choices

ResolvedUpdated:
Fixed in: 1.41.0
A late response could undo a checkout type change, and the first Complete order click could be lost while checkout loaded.

Missing or incorrect translations

ResolvedUpdated:
Fixed in: 1.39.9
Some module labels remained in English or displayed incorrect characters when another shop language was selected.

Subscription renewals were not recovered reliably

ResolvedUpdated:
Fixed in: 1.39.9
Interrupted renewal reporting or temporary payment-read failures could leave subscription renewal processing incomplete.

Checkout used the wrong address tax

ResolvedUpdated:
Fixed in: 1.39.9
Checkout involving additional service items could use the shop tax address rather than the customer address, and eligible intra-EU business orders could fail to receive reverse-charge VAT treatment.

Address state validation blocked checkout

ResolvedUpdated:
Fixed in: 1.39.9
Checkout could require a province field that was not shown, or fail to show the required province selector for countries with states.

Zero-total orders had incorrect payment handling

ResolvedUpdated:
Fixed in: 1.39.9
Free orders could lose the free-order payment label or incorrectly receive a split credit payment.

Account creation dialog was incomplete

ResolvedUpdated:
Fixed in: 1.39.9
The create-account dialog could omit profile fields or leave password visibility and private/company controls unusable.

Validation errors could leave dialogs stuck

ResolvedUpdated:
Fixed in: 1.39.9
Address or account form validation could prevent further submission without showing a usable error on the relevant field.

Social registration ignored the typed email

ResolvedUpdated:
Fixed in: 1.39.9
Confirming a social account could replace the account email entered by the customer instead of honoring it.

Authenticator enrollment could not accept its code

ResolvedUpdated:
Fixed in: 1.39.9
The authenticator enrollment code field could fail its validation even when the customer entered a valid code.

QR approval button was unreachable on phones

ResolvedUpdated:
Fixed in: 1.39.9
The phone sign-in approval screen could leave its Approve button out of reach.

Fresh installations failed on PrestaShop 9

ResolvedUpdated:
Fixed in: 1.39.9
A fresh installation could fail on PrestaShop 9 or beside modules using an older authentication component.

First express checkout click was ignored

ResolvedUpdated:
Fixed in: 1.39.9
Clicking express checkout before it finished loading could do nothing, including when loading replaced the original button.

Payment buttons became stuck after wallet cancellation

ResolvedUpdated:
Fixed in: 1.39.9
Unpaid wallet attempts could leave checkout buttons locked or release them at the wrong stage. Payment and sign-in actions could also overlap.

Placement checks reported valid hooks as missing

ResolvedUpdated:
Fixed in: 1.25.22
Equivalent PrestaShop hook names could be treated as missing, causing repeated registration attempts or incorrect installation warnings.

Installation checks incorrectly disabled checkout

ResolvedUpdated:
Fixed in: 1.25.21
A crash during installation checks could mark the module as unhealthy and disable checkout even when the storefront setup was valid.

Installation status did not match saved checks

ResolvedUpdated:
Fixed in: 1.25.20
The overall installation status could read different stored results from those written by the checks.

Wallet address recovery failed

ResolvedUpdated:
Fixed in: 1.25.20
Wallet checkout could fail to restore the expected customer address.

Checkout pages failed on case-sensitive hosting

ResolvedUpdated:
Fixed in: 1.25.20
Checkout routes could fail on hosting that distinguishes uppercase and lowercase names.

Invoice font and seller VAT presentation changed incorrectly

ResolvedUpdated:
Fixed in: 1.25.15
Invoice PDFs could use an unintended font and inconsistent seller VAT presentation.

Invoice reference capacity was too limited

ResolvedUpdated:
Fixed in: 1.25.15
Longer invoice reference information could exceed the supported reference size.

Trade account validation depended on VAT state

ResolvedUpdated:
Fixed in: 1.25.15
Trade account validation could be affected by unrelated VAT validation state.

Saved cards could not be selected or edited reliably

ResolvedUpdated:
Fixed in: 1.25.8
Saved card selection, editing or checkout could fail to load the expected card details.

Some payments did not complete their orders

ResolvedUpdated:
Fixed in: 1.25.8
A payment could finish while its order remained incomplete, including some wallet transactions. Transaction recovery and completion handling were corrected.

Order totals differed with additional service items

ResolvedUpdated:
Fixed in: 1.25.8
Orders containing additional service items and regular products could have totals that differed from the amount being paid.

Group discounts changed incorrectly after sign-in

ResolvedUpdated:
Fixed in: 1.25.8
Cart totals could use an incorrect customer group discount after authentication or logout.

Renewal orders used incorrect addresses

ResolvedUpdated:
Fixed in: 1.25.8
Subscription renewal orders could omit the customer address or fail to send the confirmation email.

Trial subscriptions with saved cards failed

ResolvedUpdated:
Fixed in: 1.25.8
A trial subscription could fail when the customer already had a saved payment method.

Cart redirects looped

ResolvedUpdated:
Fixed in: 1.25.8
Customers could be caught in redirects when opening cart or checkout pages, particularly on translated pages or while signed in.

Customer sign-in did not persist on PrestaShop 9.1

ResolvedUpdated:
Fixed in: 1.25.8
A successful customer update could fail to persist the session on PrestaShop 9.1.

Checkout lost submitted VAT details

ResolvedUpdated:
Fixed in: 1.25.8
VAT information could be lost when shipping and billing used the same address or when checkout used additional service items.

Gift products and vouchers were handled incorrectly

ResolvedUpdated:
Fixed in: 1.25.8
Gift voucher calculations could be incorrect and valid gift products could be removed when completing an order.

Checkout address changes were not retained reliably

ResolvedUpdated:
Fixed in: 1.25.8
Checkout could lose a selected address or fail to refresh it correctly before payment.

Custom cart item details did not work reliably

ResolvedUpdated:
Fixed in: 1.25.8
Customers could be unable to open details for custom cart items or remove those items cleanly.

Invoice seller details were incomplete

ResolvedUpdated:
Fixed in: 1.25.8
Invoice PDFs could omit seller information or show the seller VAT details and intra-community VAT notice incorrectly.

Invoice or order administration failed to open

ResolvedUpdated:
Fixed in: 1.25.8
Invoice PDF generation could conflict with another installed component, and the administration order view could stop with an error.

Checkout styles interfered with theme dialogs

ResolvedUpdated:
Fixed in: 1.25.8
Checkout dialog styles could change the layering or appearance of standard theme dialogs.

Express checkout did not load on some listing pages

ResolvedUpdated:
Fixed in: 1.25.8
Express checkout could fail to initialize or miss its supporting assets on some product listing pages.

Security hardening

ResolvedUpdated:
Fixed in: 1.25.8
Security hardening.

Express payment (Apple Pay/Google Pay) did not preserve the selected carrier

ResolvedUpdated:
Fixed in: 1.4.0

Switching from card payment to Apple Pay resets the carrier selection to the cheapest option. The carrier ID was not persisted in the session between payment method switches.

Resolution note

The selected carrier ID is now persisted in sessionStorage before switching to express payment. When the payment sheet opens, the carrier from the customer's earlier selection is used instead of defaulting to the cheapest.

Webhook endpoint returns 200 even when processing fails

ResolvedUpdated:
Fixed in: 1.36.6

The webhook controller always returns HTTP 200, even when order creation fails. This prevents Stripe from retrying failed webhooks.

Resolution note

Changed to return 500 on processing errors, which triggers Stripe's automatic retry mechanism.

Feature Requests

40

Implemented

Apple Pay checkout on product pages

Implemented
Customers can start an Apple Pay purchase directly from a product page on supported devices and browsers. Configure product-page button placement in the module's hook settings.

Stripe support subscriptions with renewal orders and invoices

Implemented
Recurring support subscriptions paid through Stripe create a PrestaShop renewal order and invoice for each paid billing cycle. The renewal payment is recorded against that order.

Configurable one-page checkout

Implemented
Shoppers can enter addresses, choose delivery and payment, and place an order on one page. The layout is enabled in the module's one-page checkout settings.

Express checkout

Implemented
Let customers complete a purchase directly from product and listing pages, with card and wallet payment support.

One-page checkout

Implemented
Offer an integrated checkout page for authentication, addresses, shipping and payment.

Manual payment methods

Implemented
Accept bank transfer and cash on delivery alongside online payment options.

Saved card management

Implemented
Let customers save, select and manage their payment cards from their account.

Social sign-in

Implemented
Allow customers to sign in with supported social accounts, including Apple.

Connected social account management

Implemented
Let customers review and manage connected social accounts from My Account.

Abandoned-cart recovery

Implemented
Restore saved checkout details and merge recovered products and discounts with the customer cart.

Choose products to purchase

Implemented
Let customers select which cart products to include in a purchase.

Quotes and quote orders

Implemented
Create customer quotes and allow customers to place orders from accepted quotes.

Credit account checkout

Implemented
Allow eligible customers to place orders using their credit account.

Trade account application at checkout

Implemented
Show trade account information and let customers opt in during checkout.

Modern invoice PDFs

Implemented
Use the module invoice design for customer email attachments and invoice downloads.

Order payments and refunds

Implemented
Manage order payments and refunds from the back office, including adding a Stripe payment after an order is placed.

Recurring support subscriptions

Implemented
Offer recurring support extensions with a separate order and invoice for each renewal cycle.

Header sign-in widget

Implemented
Let customers open a sign-in form from the header on any storefront page.

Checkout VAT validation

Implemented
Validate VAT details during checkout and show the applicable reverse-charge status.

Separate payment test mode for staff

Implemented
Allow staff to test payment methods while customers continue using live payments.

Appearance by placement

Implemented
Choose different checkout button appearance and text for different storefront placements.

Installation checks and repair

Implemented
Check the module installation and restore missing administration pages or required registrations.

Updates from the back office

Implemented
Install available module updates directly from the back office.

Phone and passkey sign-in

Implemented
Let customers sign in with a verified phone number or passkey and manage their sign-in methods.

QR sign-in

Implemented
Let customers approve a sign-in from their phone using a QR code and see the resulting sign-in status.

Authenticator two-factor authentication

Implemented
Let customers enroll an authenticator, complete a second check at sign-in and turn the protection off when needed.

Multiple verified email addresses

Implemented
Let customers add, verify and remove email addresses and use verified addresses for sign-in.

Customer return requests

Implemented
Let customers start a merchandise return request from their order follow-up page.

Page updates after sign-in

Implemented
Refresh sign-in state, cart content and customer-related page sections without requiring a full page reload.

Passwordless account creation

Implemented
Allow supported registration flows to create an account without requiring a password.

Password generation at registration

Implemented
Offer a generated password when the customer creates an account.

Save buttons follow unsaved changes

Implemented
Show account save actions according to whether the customer has changed a field.

Background-prepared page support

Implemented
Start checkout and payment status processing when a background-prepared page becomes visible.

VAT on add-ons and recurring services

Implemented
Price add-ons, support and services using the checkout tax address and preserve the checked VAT details for recurring charges.

Payment confirmation progress

Implemented
Send customers to a payment status page after a confirmed payment and show progress while the order is still being created.

Recovery of interrupted paid orders

Implemented
Automatically finish eligible paid orders after checkout is interrupted, with scheduled recovery.

Replace unpaid payment attempts

Implemented
Allow a new payment attempt when the previous attempt remains unpaid.

Staff handover for payments needing attention

Implemented
Flag payments that automatic recovery cannot finish for staff attention instead of retrying indefinitely.

Credit slip integration notifications

Implemented
Notify standard PrestaShop integrations when checkout creates a credit slip.

Consent-aware visit attribution

Implemented
Keep ordinary visits cacheable while collecting permitted advertising attribution separately.

Changelog

v1.25.142026-08-11

  • Fixeddemo boot readiness by repairing stale PrestaShop admin tab rows during install and upgrade.
  • Existing inactive or ownerless Checkout Revolution tabs are now reactivated, re-owned by the module, and re-parented before readiness checks run.
Older releases

v1.25.132026-08-03

  • Fixeddemo boot readiness by shipping active admin tabs in the current artifact.
  • Addedlazy post-install integrity runner so first-visit install checks fire consistently.
  • Synced shared packages and cleaned release packaging, including vendor asset access and stale debug configuration migration.

v1.25.152026-05-27

  • AddedHarden checkout auth and cart recovery
  • AddedAdd checkout trade account opt-in
  • AddedAdd checkout trade account preview
  • AddedShow bespoke cart details in modal
  • AddedShow VAT reverse charge status in checkout
  • Addedself-healing integrity checks for automatic diagnostics
  • Addedautomatic theme detection for Classic and Hummingbird
  • Addedcomplete FR/DE/ES/IT/PL translations
  • ImprovedRestructure VAT status to title/detail pairs, fix French translations
  • ImprovedHeader auth widget — dropdown instead of modal
  • ImprovedRemove version query string from asset registration
  • FixedMigrate module state to MPR config
  • FixedSeparate partner validation from VAT state
  • FixedRestore invoice font and simplify seller VAT
  • FixedCenter partner account checkbox

v1.25.152026-05-26

  • Fixeddemo install on PrestaShop 8.2 by normalizing stale admin tab rows with direct database updates during install and upgrade.
  • Avoids legacy Tab object save failures when old tab rows exist without the correct module owner.

v1.8.02026-04-20

  • AddedVirtual cart item removal + cart page CSS cleanup
  • AddedStripe subscriptions — recurring support extensions with full order/invoice per cycle
  • AddedVirtual cart support — allow orders with only prestashop-virtual-cart items
  • AddedConfigurable button_style (black|primary), default quote_enabled=true
  • Addedautomatic theme detection for Classic and Hummingbird style compatibility
  • Addedadmin menu management via MenuInstaller for streamlined module setup
  • AddedLicense management tab with key management and renewal options
  • Addedself-healing integrity checks for automatic diagnostics and repair
  • Addedcomplete FR/DE/ES/IT/PL translations
  • ImprovedSessions controller extends shared BaseSessionsController
  • ImprovedRework order edit modal to use prestashop-admin package
  • Improvedadmin list columns with visual badge indicators and multiselect filters
  • ImprovedSEO handling with proper canonical URLs and meta tags on all front pages
  • FixedAdd default value for quantity in buttons.tpl to prevent PHP warnings
  • FixedCart page refresh after virtual item removal + VirtualCart pricing
  • FixedSync prestashop-icons to prevent Smarty mpr_icon double-registration crash
  • Fixedvarious stability and compatibility improvements (42 fixes total)
  • Fixedadmin list filters — sorting, searching, and filtering now work correctly on all columns

v1.7.22025-11-18

  • FixedPayPal Express callback losing cart context in PS 8.2 with updated session handler
  • Improvedcheckout analytics dashboard with funnel drop-off step visualization
  • Addedconfigurable order bump product placement above or below payment methods
  • Fixedsmart address autofill conflicting with browser built-in autofill on Firefox

v1.7.12025-09-03

  • AddedGoogle Pay button on cart page as an additional fast checkout entry point
  • Improvedone-page checkout scroll behavior on mobile when field validation errors appear
  • Fixedorder submitted twice when user double-taps Pay button on a slow connection
  • AddedStripe Radar fraud score display in back-office order detail panel

v1.7.02025-06-25

  • AddedApple Pay integration with domain verification and merchant session handling
  • Addedconfigurable checkout progress bar with custom step labels
  • Redesigned smart address form with inline postcode-to-city autofill lookup
  • Addedcheckout analytics: tracks entry point, per-step duration, and abandonment reasons
  • ImprovedPayPal Express button styling to inherit shop theme accent colors

v1.7.32025-06-14

  • AddedPrestaShop 9 and Hummingbird theme compatibility
  • FixedApple Pay domain verification endpoint returning 404 under PS 9 Symfony routing
  • ImprovedStripe Payment Element rendering on Hummingbird one-page checkout layout
  • FixedGoogle Pay button not appearing when no default shipping method is pre-selected
  • Optimized address form field validation to reduce false positives on international postcodes

v1.6.12025-04-11

  • Fixedorder confirmation email not dispatched when PayPal IPN arrives before browser redirect
  • ImprovedGoogle Pay availability detection to suppress button on unsupported browsers
  • Fixedone-page checkout not advancing to payment step when address has no phone number

v1.6.02025-02-28

  • AddedStripe Payment Element supporting card, SEPA, iDEAL, Bancontact, and more
  • Addedone-page checkout layout as alternative to default multi-step flow
  • Improvedmobile UX with collapsible order summary panel on small screens
  • Addedoptional fields for company VAT number and customer order notes

v1.5.22024-11-14

  • FixedPayPal button not rendering when PS lazy load is enabled
  • Improvederror messaging for declined card and insufficient funds responses

v1.5.02024-08-07

  • AddedPayPal Express Checkout integration with full buyer approval flow
  • AddedGoogle Pay button on product page and cart
  • Redesigned checkout analytics report with CSV export

Demo

Test the full module before you buy

Buy a licence later and keep your settings.

  • Your 30-day demo Test it on your own shop for 30 days from the first install.
  • Ready demo shop Explore a ready demo shop in your browser.
  • No registration No account, email or store domain needed.
Launch demo shop

By downloading, you accept the demo terms and privacy policy.

By opening this demo you accept the demo terms and the privacy policy.

Loading...
Back to top