Carts: Track Shopping Activity

The Carts section shows you every shopping cart created by your visitors — whether they're actively shopping or have abandoned their cart. This is a goldmine for understanding buyer intent and recovering lost sales.

What Is a Cart?

A cart represents a visitor's selection of products they intend to purchase. Carts are created when visitors add items through your chat widget, WhatsApp, Instagram, or website. Each cart tracks the products, quantities, pricing, and the visitor who created it.

Accessing Carts

  1. Open your Workspace
  2. Go to Shop in the sidebar
  3. Click Carts

Cart Details

Each cart record shows:

Field Description
Visitor The person who created this cart
Product The product added to the cart
Item The specific item name
Price Unit price of the item
Qty Quantity added
Total Price × Quantity (with discounts and VAT applied)
Source Where the cart was created: WhatsApp, Instagram, Facebook, or Website
Active Whether the cart is still active

Filtering

Filter carts by:

  • Source — Show carts from a specific channel (WhatsApp, Instagram, Facebook, Website)
  • Visitor — Find carts belonging to a specific visitor
  • Active — Show only active or inactive carts

Why Carts Matter

  • Abandoned cart recovery — Reach out to visitors who added items but didn't complete their purchase
  • Buying intent signals — A cart tells you exactly what a visitor is interested in
  • Channel insights — See which channels drive the most shopping activity
  • Product popularity — Identify which products are being added to carts most often

Best Practices

  • Follow up on abandoned carts — Use broadcasts or automated workflows to send a gentle reminder to visitors with inactive carts
  • Track cart-to-order conversion — Compare cart activity with completed orders to understand your sales funnel
  • Monitor by source — If most carts come from WhatsApp, consider investing more in your WhatsApp presence

Technical Details

Service: app/Modules/Commerce/Services/CartService.php Model: app/Models/Cart.php

How the Cart Works

  • Each WhatsApp visitor has their own cart, identified by phone number + company ID
  • Cart items are stored in the carts table with is_active flag
  • Max 20 items per cart (configurable via COMMERCE_MAX_CART_ITEMS)
  • Supports variant pricing via the options JSON column (variant_price, variant_name)
  • Stock is validated before adding items; decremented on order creation; restored on cancellation
  • The CartUpdated and CartCleared events are dispatched for each action

Partial Checkout

The Catalogue Flow supports partial checkout — customers can select specific items to check out while leaving others in the cart. This is handled via selected_cart_ids in the checkout data.

WhatsApp Formatting

CartService::formatForWhatsApp() generates a WhatsApp-friendly cart summary:

🛒 *Your Cart*

1x Product Name — ₦1,500
2x Another Item — ₦3,000

Total: ₦4,500

Test Coverage

  • tests/Feature/Modules/Commerce/InteractiveMessageHandlerTest.php — Cart button handlers
  • tests/Feature/Modules/Commerce/CommerceTextCommandTest.php — Cart text commands

Related

  • Products — Manage your product catalog
  • Orders — Track completed sales
  • Broadcasts — Send cart recovery messages
  • Visitors — Manage your contact pipeline

Keywords

shopping carts, abandoned carts, cart recovery, buyer intent, ecommerce carts, cart tracking, shopping activity