Build an Online Store with WhatsApp Checkout
In many markets the real storefront is a WhatsApp thread: shoppers discover a product, then finish the sale in chat over a mix of bank transfer, payment link and cash on delivery. That works until volume grows — screenshots pile up, stock is guessed, and there is no record of who ordered what. This scenario builds the missing layer: a hosted catalog on your own domain that hands checkout to WhatsApp while quietly keeping a real order and inventory database behind it.
The problem
- Orders live in the chat: quantities, addresses and 'is this one paid?' are scattered across screenshots and voice notes, and something always gets missed at dispatch.
- There is no real inventory, so staff promise stock they do not have — or two customers 'buy' the last unit before either order is confirmed.
- Marketing blasts go to every number that ever messaged you, with no opt-in record, which cuts your WhatsApp number's quality rating and gets business messaging temporarily blocked.
- The native WhatsApp catalog has no order history, stock counts or reporting, so you cannot see today's revenue, your best-sellers, or who still needs a follow-up.
What you’d build
A fast, mobile-first product catalog with categories, variants, prices and live stock — served on your own domain, not a marketplace listing or a WhatsApp catalog card.
A 'Checkout on WhatsApp' button that opens the shopper's WhatsApp to your business number with a pre-filled order summary and reference number, while the pending order is saved to your admin so it exists even if they never hit send.
An admin to confirm orders, mark them paid, decrement stock, advance status, send order-status messages and track opt-in — the operational spine that WhatsApp on its own never gives you.
The data model
A day in the system
- Morning open: a staffer logs into the admin on your domain and finds every order that came in overnight through WhatsApp checkout, each already parsed into an order with line items, a customer number and a status of awaiting confirmation.
- A shopper lands on the storefront from an Instagram link, filters by category, opens a product with variants and price, and adds two items to the cart.
- At checkout they tap Checkout on WhatsApp; the store opens their WhatsApp to your business number with a pre-filled summary and an order reference, and saves the pending order so it exists even if they never send the message.
- The customer sends the message, which opens a 24-hour service window; the staffer replies for free to confirm stock, quote the delivery fee, and share payment options — bank transfer, a payment link, or cash on delivery.
- Once the transfer lands or COD is agreed, the staffer marks the order paid; only now does stock decrement, so nothing is oversold while confirmations sit half-finished in the thread.
- On dispatch the order moves to out for delivery, which sends an order-update utility message with the courier and ETA — a category that is allowed and cheap because it is tied to the customer's own order.
- Carts that reached WhatsApp but were never confirmed surface in an abandoned list; opted-in numbers get one follow-up nudge, using an approved template if the free window has already closed.
- At close, the dashboard shows orders by status, today's revenue, low-stock items to reorder, and a growing opt-in list you can later use for genuine broadcasts.
Where AI trips up
- Opt-in is not implied by ordering. Meta requires an explicit WhatsApp opt-in before you send marketing templates; blasting promos to everyone who ever messaged you cuts your number's quality rating and can trigger a 1-3 day block on business-initiated messages. Store the opt-in source and timestamp per customer, and gate all marketing on it.
- The 24-hour window and template categories are real billing and policy rules, not trivia. Replies are free only inside the service window a customer opens; after that you must use an approved template, and dressing a promotion up as a utility order update is a misclassification that gets templates rejected or the account penalised. Record when each window opened and which category every send used.
- Do not decrement stock at the WhatsApp handoff. Because confirmation happens asynchronously in chat, two shoppers can both hand off an order for the last unit; reserve or decrement only on payment confirmation, and show honest availability so you are not apologising after the fact.
- Payment is off-platform and manual. COD and bank transfer mean paid is a human decision, not a webhook, so keep an explicit payment_method and a manual paid flag, and never let an order be marked shipped before paid unless COD was chosen — a naive build that auto-advances status will ship unpaid goods.
- WhatsApp's commerce policy bans whole verticals — alcohol, tobacco, drugs, supplements, and downloadable digital goods such as PDFs, subscriptions and accounts. Routing any of these through the channel risks the entire account, so flag restricted products and keep them off the handoff. And store every number in E.164 with country code, or the wa.me link and template sends silently break.
- Storefront with cart and a Checkout on WhatsApp deep link that pre-fills the order and saves a matching pending order in the admin.
- Order admin: confirm, mark paid, advance status, decrement stock only on paid, plus a low-stock view to reorder from.
- Customer records with E.164 numbers, opt-in capture (source and timestamp), and one order-status utility message on dispatch.
- Automated marketing broadcasts and segmented flows — add them later, once you have a healthy opted-in list.
- In-chat or native WhatsApp Pay collection — keep payment manual via transfer, link or COD in v1.
- A multi-agent shared inbox, chatbot auto-replies and multi-language template sets.
FAQ
Do customers actually pay inside WhatsApp?
In v1, no. The store hands off a pre-filled order to your WhatsApp number and you confirm payment — bank transfer, a payment link, or cash on delivery — in the chat. The difference is that the order, its line items, the amount and the status all live in your admin on your domain, so nothing is lost in the thread.
Can I message customers again after they leave without replying?
Only if they opted in to WhatsApp, and outside the 24-hour service window you must use a Meta-approved template in the correct category. The system stores the opt-in and the window timing so you do not accidentally break policy or get your number's quality rating cut.
Why not just use WhatsApp's built-in catalog?
The native catalog has no real inventory, no order records, no stock decrement and no reporting. This gives you a proper storefront on your own domain plus an order and customer database behind it; WhatsApp stays as the checkout and confirmation channel, which is what it is genuinely good at.
What stops two people from buying the last item?
Stock is not reduced at the WhatsApp handoff. It decrements only when you mark an order paid, so asynchronous chat confirmations cannot oversell, and the storefront shows availability you can actually honour.
Can I sell anything through the WhatsApp checkout?
No. Meta's commerce policy prohibits categories such as alcohol, tobacco, drugs, supplements and downloadable digital goods, and selling them puts your whole WhatsApp account at risk. The build lets you flag restricted products and keep them off the WhatsApp handoff while still listing compliant items.
Sources
- WhatsApp Business Platform — Pricing (Meta for Developers) — Official per-message pricing, the marketing / utility / authentication / service categories, and the free 24-hour service window.
- WhatsApp Business Platform policy and spam enforcement (Meta for Developers) — Opt-in and approved-template rules, quality rating, and the escalating blocks that follow spam or marketing violations.
- WhatsApp KPIs in E-Commerce: Benchmarks 2025 (Chatarmin) — Ecommerce benchmarks — high open rates, 3-7% broadcast conversion, and abandoned-checkout flows as the top performer.
Describe it, go live on your own domain in one pass — hosted, full-stack, no server. Free to start.