You installed an OpenCart Abandoned Cart Extension, configured your email templates, and watched carts pile up in the abandoned list, but no recovery emails are going out. No errors in the panel. No bounces in your inbox. Just silence.
In most cases, the cause is not the module. The Knowband abandoned cart recovery solution for OpenCart depends on three things working correctly underneath it: both required cron jobs must be running, OpenCart's SMTP must be properly configured, and the module's own send conditions must all be met. If any one of these is wrong, the module skips sending with no visible alert.
This guide works through each failure point in order of how commonly it causes the problem.
The Two Cron Jobs the OpenCart Abandoned Cart Extension Requires
Most admins configure one cron and assume the setup is complete. The Knowband OpenCart Abandoned Cart Extension requires two separate cron jobs, one to mark carts as abandoned and one to send the reminder emails. Running only one of them means the other half of the process never executes.
Cron 1: Update Abandoned Carts
This cron scans your store and marks carts as abandoned based on your configured inactivity window. Without it, the abandoned cart list never populates, and the send cron has nothing to work with.
5 * * * * wget -O /dev/null "https://yourstore.com/index.php?route=kbabandoned_cart/kbabandoned_cart/updateAbandonedCart"
Cron 2: Send Reminder Emails
This cron reads the abandoned cart list and triggers the email sequences configured in your serial reminders.
10 * * * * wget -O /dev/null "https://yourstore.com/index.php?route=kbabandoned_cart/kbabandoned_cart/cron"
Both run hourly. Set them 5 minutes apart, Cron 1 at the 5-minute mark, Cron 2 at the 10-minute mark, so the list is updated before the send job reads it. Reversing the order means the send cron always reads stale data.
If your hosting control panel only supports URLs rather than shell commands, use the same route paths directly:
https://yourstore.com/index.php?route=kbabandoned_cart/kbabandoned_cart/updateAbandonedCart
https://yourstore.com/index.php?route=kbabandoned_cart/kbabandoned_cart/cron
How the Mark Abandoned Cart Timing Window Causes Missed Sends

Even with both crons running, a timing mismatch between the cron schedule and the Mark Abandoned Cart setting can make emails appear stuck. This setting controls how old a cart must be before the system flags it as abandoned.
The logic works like this: if your update cron runs at 11:05 and Mark Abandoned Cart is set to 1 hour, the cron picks up carts abandoned between 9:05 and 10:05, not anything newer. Carts abandoned in the most recent hour window are always excluded from the current run and picked up on the next one.
If Mark Abandoned Cart is set to 0 hours, the cron picks up carts from the current window (10:05 to 11:05). For most stores, 1 hour is the right value; it gives customers time to complete the purchase on their own before the first reminder goes out.
A common mistake is setting Mark Abandoned Cart to 1 hour but expecting emails to be sent within minutes. They will not. The first send only happens after the full delay window has passed, and the next cron run executes after it.
SMTP Misconfiguration, Why the OpenCart Abandoned Cart Plugin Drops Emails Silently
The OpenCart Abandoned Cart Plugin sends emails through your store's SMTP settings, not through an independent mail server. If SMTP is broken at the OpenCart level, the module has no delivery path, and the abandoned cart panel shows no error because the failure happens before the module even tries to send.
Check SMTP under Advanced Parameters > Email in your OpenCart back office. The four most common misconfigurations are:
- Wrong port. Port 25 is blocked by most shared hosts. Use port 587 for STARTTLS or port 465 for SSL/TLS. Using port 25 produces a silent connection timeout.
- Missing credentials. Authenticated SMTP servers reject connections with no username or password. Leaving these fields blank causes every send attempt to fail without a bounce.
- Incorrect SMTP host. Gmail requires smtp.gmail.com. Outlook requires smtp.office365.com. If your store is on shared hosting and you are pointing to Gmail's host, the connection fails at the handshake. Use your hosting provider's SMTP host unless you have explicitly configured an external sender.
- Protocol mismatch. If your host requires SSL but OpenCart is set to TLS or None, the SSL handshake fails before any data transfers. Match the protocol setting exactly to what your SMTP provider requires.
Test the SMTP configuration directly from Advanced Parameters > Email using OpenCart's built-in mail test before debugging inside the module. If that test email does not arrive, the problem is at the OpenCart level. Fix it there first.
Module Conditions That Block OpenCart Cart Abandonment Emails Without Any Error
Three conditions inside the OpenCart Email Follow up module silently prevent emails from sending, even when SMTP and cron jobs are both working correctly.
Minimum cart value not met
If you set a minimum cart value of $50 inside a serial reminder and a customer abandons a $45 cart, the module skips that cart entirely. There is no notification; the cart simply stays in the abandoned list without triggering a send. During testing, either lower the minimum cart value to $0 or use a test cart that meets the threshold.
A guest customer with no email captured
When a guest shopper abandons a cart before reaching the email field at checkout, the module has no address to send to. Email capture only happens when the customer starts the checkout flow and enters their details. Carts abandoned from the product page or the cart page, before checkout begins, are tracked but cannot receive emails.
Reminder delay has not elapsed
If your serial reminder is set to send after 24 hours and the cart was abandoned 3 hours ago, the send cron skips it. The email queues correctly and sends in the next cron run after the 24-hour window closes. This is expected behavior, not a bug, but it is frequently mistaken for a misconfiguration.
Using Test Mode to Isolate Email Delivery Issues
Before pushing your configuration live, use the Test Mode option inside the module settings. Test Mode redirects all reminder emails to a single test address instead of sending to real customers, so you can verify template rendering, subject line, and email deliverability without touching your actual customer list.
Set a test address, then manually trigger a send from the View Abandoned Cart tab using the bell icon (non-discount) or gift icon (discount). If the test email arrives at your test address, SMTP is working, and the cron setup is correct. If it does not arrive, check your server's mail log for entries such as "Connection refused" or "Authentication failed," which will point directly to the SMTP issue.
One important detail: the test bypasses the serial reminder delay conditions. They send immediately regardless of how long the cart has been abandoned, which makes them useful specifically for confirming SMTP and template output rather than cron timing.
What a Correctly Configured OpenCart Abandoned Cart Extension Actually Delivers
Cart abandonment rates across eCommerce average around 70 percent. A working abandoned cart email sequence recovers a meaningful share of that. Industry benchmarks put recovery rates for well-timed sequences at 5 to 11 percent of abandoned carts. For a store processing 500 abandoned carts a month, that is 25 to 55 recovered orders without any additional traffic.
Once SMTP is verified, both crons are running on the correct schedule, and the serial reminder conditions are set accurately, the OpenCart Abandoned Cart Plugin handles everything automatically. Discount and non-discount email sequences, generated coupon codes, and the analytics dashboard comparing abandoned versus converted carts all operate without manual input.
Knowband's OpenCart Abandoned Cart Extension supports multi-language stores, tracks conversion performance in the built-in analytics panel, and gives admins full visibility into which coupons were used and which are still outstanding, all from the module back office.
Top comments (0)