DEV Community

Wabbiyo
Wabbiyo

Posted on

6 Edge Cases That Break Abandoned Cart Reminders (and How to Handle Them)

Sending a reminder when a cart is abandoned sounds simple. In production, these six cases cause most of the complaints.

  1. They already ordered (race condition)
    The customer pays a few seconds before the reminder job runs.
    Fix: cancel scheduled jobs on order creation and re-check for an order inside the job before sending.

  2. They ordered on another device
    Cart on mobile, order on laptop. Your cart ID never gets linked to the order.
    Fix: before sending, look for a recent order matching the phone number or email, not just the cart ID.

  3. The cart changed after capture
    They added two more items after you saved the first snapshot.
    Fix: update the snapshot on every checkout update and reset the timer each time.

  4. An item went out of stock
    Reminding someone to buy something they can’t buy is worse than no reminder.
    Fix: check stock in the job; skip the message or remove that item from it.

  5. The message lands at 2 AM
    Timers don’t know the customer’s time of day.
    Fix: add quiet hours and push messages into the next allowed window.

  6. The customer replied STOP
    Consent can be withdrawn at any time.
    Fix: store consent per contact, handle opt-out replies, and check consent right before every send.

Bonus: duplicate carts. One shopper can create several carts in a session. Deduplicate by phone so they get one sequence, not three.

If you’re building this yourself, the architecture (Action Scheduler + WhatsApp Cloud API) is here: read on Hashnode

If you’d rather see the full recovery strategy (timing, copy, coupons): WhatsApp cart recovery for WooCommerce

Top comments (0)