Automation
E-Commerce
Sell products and services through WhatsApp with catalogs, orders, fulfillment, receipts, and paid service sessions.
Overview
The E-Commerce toolkit lets your WhatsApp agent sell products and services without relying on conversation memory to track the order. Your catalog, carts, orders, payments, fulfillment states, and service sessions are stored as durable records, so your team can follow up from the dashboard and customers can ask about their order later.
Use E-Commerce when you want the agent to:
- Recommend products or services from a managed catalog
- Build a cart during a WhatsApp conversation
- Collect customer details before checkout, such as name and exact delivery location
- Create an order after the customer confirms
- Request payment through the active payment provider
- Send one PDF receipt message with the receipt summary as the WhatsApp caption
- Let employees prepare, dispatch, deliver, cancel, or review orders
- Start and enforce paid service sessions
Access E-Commerce from the E-Commerce link in the main dashboard sidebar. The link appears after the toolkit is installed and your user has permission to view it.
How E-Commerce works
E-Commerce has four main areas:
| Area | What it does |
|---|---|
| Catalog | Products and services the agent can sell |
| Orders | Confirmed customer purchases and payment state |
| Fulfillment | Preparing, pickup, delivery, and completion tracking |
| Services | Paid service sessions with a defined duration |
The agent can guide the customer, but the order record is the source of truth. If a customer says "I paid", the agent should check the order or payment status instead of assuming the payment happened.
Setting up your store
- Install the E-Commerce toolkit from Integrations
- Open E-Commerce -> Settings
- Add your store name, tagline, receipt logo, receipt footer, currency, and delivery defaults
- Confirm whether you support delivery, pickup, or both
- Set how long stock should be reserved while a customer is checking out
- Save the settings
If you also collect payments, configure the active provider in Payments. E-Commerce uses the platform payment bridge to request payment and confirm successful transactions. The provider can be the full Payments provider or M-Pesa, but the receipt and order update flow stays the same.
Adding products
Go to E-Commerce -> Catalog and create a product.
For each product, add:
- Name - The customer-facing product name
- Description - A short explanation the agent can use when recommending it
- Price - The price in your store currency
- SKU - Optional internal reference
- Product image - Optional image used in catalog views, order context, and receipts
- Stock on hand - How many units are available
- Status - Active, draft, or archived
Active products can be recommended and sold by the agent. Draft and archived products stay out of the customer flow.
Adding services
Services do not need product images. Instead, they need a clear description and a paid duration.
Example service:
| Field | Example |
|---|---|
| Name | Legal consultation |
| Description | One-hour consultation on contract review or business compliance |
| Price | KES 200 |
| Duration | 60 minutes |
| Status | Active |
When a customer pays for a service, the service session starts when the first paid service reply is given. This avoids charging the customer for time spent waiting during checkout.
Customer checkout flow
A typical customer flow looks like this:
- Customer messages your WhatsApp agent
- Agent searches the catalog for matching products or services
- Customer chooses what they want
- Agent collects required details, such as customer name and exact delivery address
- Agent shows the order total
- Customer confirms
- Agent creates the order and starts checkout
- Customer pays
- Customer receives one WhatsApp document message with the PDF receipt attached and the text receipt summary in the caption
- Your team fulfills the order from the dashboard
For products, the receipt includes item names, quantities, prices, and product details. For services, the receipt focuses on the service description, duration, and amount paid.
The agent should not ask the customer to type a payment phone number when the checkout is for the active WhatsApp chat. The payment request uses the number currently chatting with the WhatsApp number instance. This avoids a customer accidentally or intentionally sending a payment prompt to someone else.
Delivery details must be preserved exactly. If the customer says Beth House, Kasarani, House 16, the order and receipt should keep all of those parts, not shorten it to only Kasarani.
Using E-Commerce behind a business plugin
Some merchants install a specialist plugin that owns the customer-facing flow. For example, a gas merchant might install a Gas OS plugin that knows cylinder sizes, refill rules, deposits, accessories, and dispatch wording.
In that setup, the specialist plugin should usually be agent-facing, while E-Commerce and Payments stay dependency-only:
| Layer | Agent-facing? | Responsibility |
|---|---|---|
| Specialist plugin | Yes | Understand the business domain and expose safe tools such as list_products, quote_order, or create_b2c_order |
| E-Commerce | Usually no | Persist synced catalog items, create durable orders, track payment and fulfillment state |
| Payments or M-Pesa | No | Collect money through the platform bridge and report status back to the order |
This keeps the agent from choosing low-level payment or order tools directly when it should follow the plugin's business flow. The plugin can still ask the platform to create an order, request payment from the current WhatsApp customer, and receive payment events through bridge permissions.
Receipt branding
E-Commerce has its own store profile because an organization may collect standalone payments and also sell catalog orders.
Use E-Commerce -> Settings for:
- Store name and tagline used on order receipts
- Commerce receipt logo
- Commerce receipt footer
- Delivery, pickup, and reservation rules
Use Payments -> Settings for standalone payment receipts that are not tied to an E-Commerce order. If an order comes from E-Commerce, the E-Commerce receipt branding takes priority. If a payment is requested outside E-Commerce, Payments branding is used.
Internally, both E-Commerce receipts and provider webhook receipts use the same shared receipt action. Provider webhooks do not maintain a separate PDF renderer. This keeps the WhatsApp receipt format consistent across M-Pesa and Payments.
Managing orders
Open E-Commerce -> Orders to review customer orders.
Common statuses include:
- Awaiting payment - Order was created, but payment has not completed
- Paid - Payment was confirmed
- Preparing - Your team is working on the order
- Ready for pickup - Customer can collect it
- Out for delivery - The order is on its way
- Delivered - The customer received it
- Cancelled - The order was cancelled
- Refunded - Payment was refunded through Payments
Only employees with the right permissions can update fulfillment states, cancel orders, or approve refunds.
Handling paid services
Paid services are handled differently from physical products.
After payment:
- The service order becomes paid
- The first service reply starts the paid session
- The session stays active until the paid time runs out
- When time expires, the agent should ask the customer to renew before continuing the paid service
This is useful for lawyers, consultants, tutors, coaches, clinics, repair experts, and other businesses that sell time or expertise.
Team responsibilities
Use permissions to decide what employees can do.
Examples:
- Catalog managers can edit products and services
- Fulfillment staff can mark orders as preparing or delivered
- Service providers can run paid sessions
- Refund approvers can review refund requests
- Viewers can see orders without changing them
See Permissions & RBAC for the full setup guide.
Tips
Keep catalog names clear
The agent uses product and service names when helping customers. Clear names reduce confusion and make receipts easier to read.
Use services for paid expertise
If the customer is paying for time, access, consultation, or professional advice, create a service instead of a product.
Keep payment instructions simple
Tell the agent when to request payment, what customer details are required, and what to do after payment succeeds or fails.
Review orders daily
The dashboard is where your team tracks what needs to be prepared, delivered, cancelled, or refunded.
Next steps
- Payments - Configure collections, refunds, payouts, and receipts
- Permissions & RBAC - Set up employee access
- Integrations - Install and grant toolkits