Sell by weight, length, area or volume on PrestaShop 8.2 and 9.x: amount field with quick amounts and live total, exact decimal stock and real shipping weight. No overrides.
- PS 9
- PS 8.2
- Classic
- Hummingbird
by Kavio Labs · for PrestaShop 8.2 and 9.x
Up to three reminder e-mails with single-use vouchers and a signed restore link that rebuilds the cart on any device; consent checkbox, unsubscribe and a recovered revenue dashboard (PrestaShop 8.2 and 9.x, no overrides).
Up to three reminder e-mails with single-use vouchers and a signed restore link that rebuilds the cart on any device; consent checkbox, unsubscribe and a recovered revenue dashboard (PrestaShop 8.2 and 9.x, no overrides).
PrestaShop 8.2 - 9.x
Win back abandoned carts with up to three automatic reminder e-mails, unique single-use vouchers and a secure restore link that rebuilds the cart on any device. A dashboard in Orders > Abandoned carts shows how many carts were abandoned, how many came back and how much revenue the reminders recovered.

Requirements: PrestaShop 8.2.0 – 9.x, PHP 7.2.5 or newer (PrestaShop 9 needs PHP 8.1+). Your shop must be able to send e-mails (Advanced Parameters > E-mail).
kvabandonedcartrecovery-1.0.0.zip (kaviolabs.com) or the package from PrestaShop Addons.The module adds Orders > Abandoned carts to the back-office menu and the reminder checkbox to the checkout guest form and to My account > Information.
The address looks like https://your-shop.com/module/kvabandonedcartrecovery/cron?token=…. Example crontab line:
*/15 * * * * curl -fsS "https://your-shop.com/module/kvabandonedcartrecovery/cron?token=YOUR_TOKEN" >/dev/null
cPanel: Cron Jobs > Add, "Once Per Fifteen Minutes", with the same curl command. The answer is a short JSON summary (sent, failed, closed, attributed, …). New token on the configuration page invalidates the old address.
Upload the new zip the same way; settings, tracked carts and statistics are kept.
Uninstalling removes the settings, the tracked carts with their statistics and the unused reminder vouchers. Vouchers that were used stay with their orders; orders are not changed.
Modules > Module Manager > Abandoned Cart Recovery > Configure (or the gear button on Orders > Abandoned carts).
With multistore, the settings follow the shop context chosen at the top of the back office: a shop without its own value uses the value of its group, then of all shops. The reminder run reads the settings of each cart's own shop.

| Setting | Default | What it does |
|---|---|---|
| Capture carts and send reminders | Yes | Off: nothing is captured or sent. Restore and unsubscribe links in e-mails already sent keep working. |
| Capture guest carts | Yes | Guests are captured once they enter an e-mail at checkout. Off: signed-in customers only. |
| Save the e-mail as soon as it is typed | Yes | Saves the guest e-mail when the shopper leaves the e-mail field, before the checkout step is submitted. Off: saved with the step. In opt-in mode only with a ticked box. |
| Minimum cart value | 0 | Carts with a lower products total (tax excluded, default currency) get no reminder. |
| Stop reminding after | 30 days | Carts without changes for longer are closed. |
| Count an order as recovered if placed within | 7 days | Days after the last reminder. Later orders count as "Ordered". |
| Restore link opens | The checkout | Or the shopping cart page. |
Up to three reminders. Each has:
| Setting | Default (1 / 2 / 3) | What it does |
|---|---|---|
| On / Off | On / On / On | The sequence ends at the first reminder that is off. |
| Send after (hours) | 1 / 24 / 72 | Hours since the cart was last changed (decimals allowed: 0.5 = 30 minutes). Two reminders of one cart are at least 30 minutes apart; a cart change restarts the clock. |
| Voucher | None / None / Percentage | None, percentage, fixed amount (default currency, tax included) or free shipping. |
| Discount | 10 | Percent (1–100) or amount. |
| Voucher valid (days) | 3 | Including the day the e-mail is sent. |
| Subject, Heading, Message | empty | Empty = the default text shown in grey. Placeholders: {firstname}, {lastname}, {shop}. |
Each e-mail with a voucher gets its own cart rule in Catalog > Discounts (shown to the shopper as "Your cart reminder discount"; its description says "Abandoned Cart Recovery: abandoned cart #12, reminder 3" and the address): one use in total and per customer, valid until the end of its last day, limited to the cart's shop in multistore. A registered customer's voucher is bound to the customer; a guest's voucher to nobody (guests may come back on another device). Unused vouchers are deleted after they expire; used ones stay with their orders.
| Setting | Default | What it does |
|---|---|---|
| Code prefix | CART | Up to 8 letters or digits: CART-7KQ2-M9XD. |
| Voucher applies to | The whole order | Or only the products of the abandoned cart. Products the shopper bought at an accepted Make an Offer price are always left out (a fixed amount is capped at the value of the other products); if only such products are in the cart, the e-mail has no voucher. |
| Setting | Default | What it does |
|---|---|---|
| Who receives reminders | Opt-out | Opt-out: the checkbox is ticked; shoppers who untick it or unsubscribe get no reminders. Opt-in: the checkbox is unticked; only shoppers who tick it get reminders. |
| Delete cart records after | 180 days | Inactive tracked carts are deleted with their reminder history. The unsubscribe list is kept. |
Every e-mail has an unsubscribe link. It opens a page with a button (so e-mail scanners that open links cannot unsubscribe anybody); the shopper can turn reminders back on there. Mail clients that support one-click unsubscribe (RFC 8058) use the List-Unsubscribe header. Choose the mode that fits your legal basis and check with your legal adviser.
| Setting | Default | What it does |
|---|---|---|
| Reminders per run | 50 | Maximum e-mails per run. |
| Also send on back-office page views | Yes | Runs the sender at most every 10 minutes while staff use the back office. Switch it off once the cron job runs. |
The Cron job panel shows the cron address, an example crontab line, the last run and New token. The Test e-mail panel sends a reminder with two catalog products and a sample voucher code to any address.
The e-mail is the module template mails/en/kvacr_reminder.html + .txt (table layout with inline styles for Outlook, Gmail, Apple Mail and phones). To change the layout, copy it to themes/<your theme>/modules/kvabandonedcartrecovery/mails/en/ and edit the copy: PrestaShop uses the theme copy first, and it survives module updates. Variables: {kv_hello}, {kv_heading}, {kv_message}, {kv_products} (HTML rows), {kv_subtotal}, {kv_voucher} (HTML block or empty), {kv_restore_url}, {kv_button}, {kv_unsubscribe_url}, {kv_unsubscribe_text}, {kv_footer} and PrestaShop's {shop_name}, {shop_url}, {shop_logo}; the .txt file uses the same names with _txt. Texts can also be translated in International > Translations > Installed modules (domain Modules.Kvabandonedcartrecovery.Shop).
Enter the key in the Licence card and click Check now. Without a key the module runs for a 14-day start period. Without a valid licence no carts are captured, the checkbox is hidden and no new reminders or vouchers are sent; restore and unsubscribe links in e-mails already sent keep working, vouchers already sent stay valid until they expire, and the dashboard, cart list and data stay available. The licence check sends only the key, the module id and version and your shop's host names to cs-cart.kaviolabs.com.
Checkout. Guests see a checkbox E-mail me a reminder if I leave items in my cart in the personal information form, under the core fields (also in the PrestaShop 9.2 one-page checkout). Signed-in customers find the same checkbox in My account > Information. The e-mail is saved as soon as the shopper leaves the e-mail field, so a cart is tracked even when the shopper never finishes the first checkout step.

Reminder e-mail. Shop logo, greeting, heading and message, the products with image, combination, customization, quantity and price, the subtotal, the voucher box (when the reminder has one), a Return to my cart button and an unsubscribe link.

Restore link. Adds the products with their combinations, quantities and customizations to the cart of the browser that opens the link (products already in that cart are not added twice; disabled products are skipped), applies the reminder's voucher, fills in the guest's e-mail address and opens the checkout. The link signs nobody in and copies no address, so it is safe even when the e-mail is forwarded. A cart that was already ordered shows This cart has already been ordered. Thank you!; a modified link shows This link is invalid or has expired.
Unsubscribe. A page Stop cart reminder e-mails? with an Unsubscribe button, and Turn reminders back on afterwards. Order e-mails are not affected.

Dashboard (last 7, 30, 90 or 365 days, by the day a cart was captured; the shop context of the back office):

Cart list (PrestaShop grid) with filters (ID, period, name or e-mail, customer or guest, status), reminders sent, status, order and last change. Bulk actions: Stop reminders, Delete selected.
| Status | Meaning |
|---|---|
| Pending | Captured, no reminder yet |
| Reminded | At least one reminder sent |
| Recovered | Ordered within the attribution window after a reminder |
| Ordered | Ordered before any reminder (not counted as recovered) |
| Unsubscribed | The shopper unticked the box or unsubscribed |
| Closed | Emptied, too old, below the minimum value, e-mail failed 3 times, or stopped by staff |
Cart page: products, timeline (captured, reminders with their voucher and its state, restore clicks, order), status with the next planned reminder, the customer and the consent state, links to the core cart, customer and order. Actions: Send reminder N now (ignores the delay, not the consent), Stop reminders, Unsubscribe this e-mail / Allow reminders again, Delete, the e-mail preview of reminders 1–3 with this cart's data and a test e-mail to any address (sample voucher code, nothing recorded).

When an order is created, the module looks for the shopper's tracked cart in this order: the order's own cart, the cart restored from a reminder in this browser, the cart whose reminder voucher the order uses, the customer's open cart, and a reminded cart of the same e-mail address. If that cart got a reminder within the attribution window, it becomes Recovered with the order total (tax excluded, default currency) and the reminder number; otherwise Ordered. The shopper's other open carts stop their sequence. Orders created later for a tracked cart (payment modules that confirm asynchronously) and orders placed elsewhere (another device without the link, by phone through the back office) are matched on the next run. A second order of the same checkout (one per carrier) adds its total.
Carts of signed-in customers as soon as they add a product, and guest carts once the shopper types an e-mail at checkout (and did not untick the box). Anonymous carts without an e-mail cannot be reminded.
The core page lists carts; this module contacts the shopper: a timed sequence of e-mails with vouchers and a restore link that works on any device, consent handling, and the recovered revenue those e-mails bring back.
Yes. It is signed with a key derived from your shop's own secret, it only adds products to the cart of the browser that opens it and applies the reminder's voucher; it never signs anybody in and never copies an address. (PrestaShop's own "recover cart" link from the back office signs the customer in, which is why this module uses its own link.)
Open the cart page: it shows the status and the next planned reminder. Common reasons: no cron job (use the cron address or keep "Also send on back-office page views" on), the shopper changed the cart (the delay starts again), the cart is below the minimum value, the shopper unticked the box or unsubscribed, the module is off or not licensed, or the shop cannot send e-mails (Advanced Parameters > E-mail, "Never send e-mails" or wrong SMTP settings). Failed sends are listed in the timeline and on the dashboard ("Last error").
Yes: Send a test e-mail on the configuration page or on any cart page sends to the address you type, with a sample voucher code, and records nothing. The cart page also has a preview.
No. Each reminder with a voucher creates one single-use cart rule; unused ones are deleted after they expire. Used ones stay with their orders.
No: products with an accepted offer are left out of the voucher.
Guests are tracked only after they type their e-mail next to a clear checkbox; you choose opt-out or opt-in; every e-mail has an unsubscribe link and a one-click List-Unsubscribe header; records are deleted after a retention period; you can erase all data of an e-mail address, and the official GDPR module's export and erase requests include the module's data. No IP addresses are stored. Check the mode with your legal adviser.
Unsubscribing needs a button click (or a one-click POST from the mail client), so link scanners cannot unsubscribe anybody. A scanner that opens the restore link only fills a cart in its own throw-away session; it is counted as a click and does not create an order.
No. It uses PrestaShop hooks, its own tables and the core cart rule and mail systems. One package works on PrestaShop 8.2 and 9.x, with Classic, Hummingbird and the 9.2 one-page checkout.
Yes. Settings follow the shop context; carts remember their shop; e-mails, links and vouchers use that shop; the dashboard and the list show the shops of the current context.
The module ships English texts. Type your own subject, heading and message per reminder, or translate the default texts in International > Translations > Installed modules. To change the layout, copy the e-mail template to your theme (see Configuration).
More for PrestaShop
Sell by weight, length, area or volume on PrestaShop 8.2 and 9.x: amount field with quick amounts and live total, exact decimal stock and real shipping weight. No overrides.
Shoppers propose a price per item; the shop accepts, counters or declines, or rules answer at once. The agreed price is a one-time specific price for that customer's cart.
Text and monogram personalization with a live preview on the product image, 12 fonts, fixed or per-character fees and a printable production sheet.