Abandoned Carts
Abandoned Carts lists shopping carts customers started on your online storefront/portal but never finished checking out, so you can send a one-click WhatsApp reminder and track which ones you eventually recovered.
Overview
Three tabs — Active, Recovered and Dismissed — separate carts that still need follow-up from ones that converted or that you chose to ignore.
Each card shows the customer's name and phone (if captured), how long ago they were last active on the cart, the item list, the cart total, and — once sent — a note of when a reminder was last sent.
Clicking Remind builds a personalised WhatsApp message (the first three items plus the cart total) and opens it in wa.me in a new tab so you can send it with one more tap; the reminder timestamp is then recorded against that cart.
Clicking Dismiss removes a cart from the Active list without messaging the customer, moving it to the Dismissed tab.
Before You Start
- Requires the Advanced plan tier or above, same as the rest of Online Channels.
- A customer phone number must have been captured on the cart for the Remind button to be enabled — carts with no phone show it disabled.
- Carts only appear here once a customer has started (but not completed) checkout on your connected online storefront or Online Portal.
Step-by-Step Guide
1 Review today's abandoned carts
- Open the Active tab (default view).
- Scan each card's "time ago" note to prioritise the most recent abandonments, since intent is freshest right after they leave.
2 Send a WhatsApp recovery reminder
- Click Remind on a cart — a WhatsApp chat opens in a new tab pre-filled with a message naming up to three items and the cart total.
- Send the message from WhatsApp as normal.
- Back in BazaarPOS, the card now shows "Reminder sent [time] ago" so you know not to message again too soon.
3 Dismiss a cart you don't want to follow up on
- Click the ✕ icon on the cart card.
- The cart disappears from Active and can be found later under the Dismissed tab.
4 Check which carts were eventually recovered
- Switch to the Recovered tab to see carts whose customers later completed checkout.
Every Field & Button, Explained
| Field / Button | What it does |
|---|---|
Active / Recovered / Dismissed tabs | Filters the cart list by its current recovery status. |
Customer name / phone / time ago | Who the cart belongs to and how long since their last activity on it. |
Item summary line | Quantity × product name for every item left in the cart. |
Cart total | Formatted total value of the abandoned cart via the shared currency formatter. |
"Reminder sent … ago" note | Shown once a reminder has been sent for that cart, with a relative timestamp. |
Remind button | Opens a pre-filled WhatsApp chat (wa.me link) with the customer's captured phone number; disabled if no phone number was captured. |
Dismiss (✕) button | Removes the cart from the Active list into Dismissed, without sending anything to the customer. |
Tips & Best Practices
- Follow up within a few hours of abandonment while the customer's intent is still fresh — the "time ago" label makes it easy to triage the newest carts first.
- The reminder message auto-includes up to three items and the total so customers instantly recall what they left, without you typing anything.
- If Remind is disabled, no phone number was captured for that cart — there is nothing actionable from this screen for it specifically.
Troubleshooting & FAQ
The Remind button is disabled/greyed out.
I dismissed a cart by mistake.
Nothing shows up in Active even though I know customers abandoned carts.
I clicked Remind but the reminder timestamp didn't save.
🧑💻 Developer Notes
Source component(s):
frontend-app/packages/pos-react-lib/src/pages/AbandonedCartsPage.jsx
Backend endpoints used:
GET /marketing/abandoned-cartsPATCH /marketing/abandoned-carts/:id/remindPATCH /marketing/abandoned-carts/:id/dismiss
Related tables (db-core repositories):
AbandonedCart
Feature flag key: integrations (requires advanced plan tier or above)
The WhatsApp link is built entirely client-side with wa.me/<digits>?text=<encoded message> — no WhatsApp Business API call is made from this page. Recording the reminder timestamp via PATCH …/remind is treated as best-effort: its failure is silently swallowed since the WhatsApp tab has already been opened by that point. All money values use the shared storeFmt.currency() helper.