Skip to main content
WhatsApp has a native shop front: customers browse your catalogue without leaving the chat, add to a cart, and send you the cart as an order. DMLY picks it up from there: a flow thanks them, totals the order, and sends a Pay now button. This page walks the whole pipeline: switching commerce on, showing products, catching the cart, and taking the money. Three things need to exist before any of it works:
  1. A WhatsApp Cloud channel: see Connect WhatsApp.
  2. A product catalogue connected to your WhatsApp Business Account in Meta’s Commerce Manager. The catalogue is Meta’s, not DMLY’s. You build and connect it on Meta’s side, and the builder’s own hint says exactly that: “Requires a catalog connected to your WhatsApp Business Account in Commerce Manager.”
  3. A payment gateway, for the checkout at the end. See Payments and gateways.

Step 1: switch commerce on

Open Bot Setup on your WhatsApp channel and go to the Commerce tab: “Control how your catalog and cart appear to customers in chat.” Two switches:
  • Show catalog: “Let customers browse your connected product catalog.” The catalogue icon appears in your WhatsApp business profile and chats.
  • Enable cart: “Allow customers to add products to a cart and send an order.” Without it customers can look but not order.
Save changes writes both straight to WhatsApp: these are your number’s own commerce settings on Meta’s side, and DMLY is setting them for you. Enabling the cart is also what makes the Cart order received trigger available in the automation builder.

Step 2: put products in the conversation

The Catalog / Product step, in the flow builder’s WhatsApp group, sends the shop into the chat. What to send offers three shapes: The Body text above the products takes variables, so “Browse our products 🛍️” can just as well be “Hi {{first_name}}, here’s what’s new”. Wire it into a keyword flow: someone texts menu or shop, the catalogue appears.

Step 3: catch the cart

When a customer sends their cart, DMLY logs it in the Inbox as a 🛒 cart-order line and looks for an automation on the Cart order received trigger. In that flow, the cart is data. Type these into any message (they’re not in the {} picker):
  • {{cart.items_summary}} is the order in one line: 2× Blue Shirt, 1× Hat
  • {{cart.total}} and {{cart.currency}}
  • {{cart.item_count}}, and {{cart.note}} if they attached one
Build this flow in the flow builder, not as a quick automation. A quick automation on the cart trigger does fire, but the cart.* tokens don’t resolve in its reply; the customer would get a message with holes in it. The one-click template below is the fast way to get it right.
When DMLY won’t process a cart, it hands it to you instead. An empty cart, a currency your gateway doesn’t take, an out-of-stock or unrecognised product (or no cart automation published at all) pauses the bot on that conversation and drops a line in the thread: 🙋 WhatsApp cart needs a human (<reason>) — bot paused. A person finishes the sale, then selects Resume bot. So until your cart flow is live, every cart order lands with your team: nothing is lost, just manual.

Step 4: take the money

The Request Payment step (in the Finance group) turns the cart into cash. Give it the Amount {{cart.total}} and Currency {{cart.currency}}, pick the Gateway, and it mints a payment link and sends it as a tappable Pay now button. When the customer pays, the payment lands in Finance → Payments like any other gateway payment, and the Payment succeeded trigger can drive the follow-up if you want one. The step has a FAILED output for when the link can’t be minted. Wire it to a human handover rather than leaving the customer at a dead end.
A WhatsApp cart doesn’t become an order under Finance → Orders: no stock is committed and no order record is created. The cart’s money side is the payment. If you track stock through Finance orders, create the order by hand for what sold.

Or install the whole thing in one click

The template library ships this pipeline as WhatsApp Cart Checkout: “Turn a sent WhatsApp cart into a payment link, with a human fallback if anything goes wrong.” It wires: the cart trigger → a thank-you quoting {{cart.items_summary}} and the total → Request Payment with a Pay now button → a “once your payment clears” confirmation, with the failure path handing over to a human and pausing the bot. Install it from Templates (it needs the cart enabled and a gateway connected), reword the messages, publish.

Sending and requesting locations

Two more WhatsApp-group steps round out selling in chat, especially for pickup:
  • Send Location drops a real map pin in the conversation: a Place name, an Address, and the exact spot picked on a map. Put it after the payment confirmation for collection orders, or behind a “where are you?” keyword.
  • Request Location sends WhatsApp’s native prompt with a one-tap share-location button. The step’s own hint: “Shows a native ‘Send location’ button. The RECEIVED port continues once the contact shares it.” What they share is captured: it appears as a map pin in the Inbox, and on the RECEIVED path the coordinates are available as {{location.latitude}}, {{location.longitude}}, {{location.name}} and {{location.address}}, so the next step can echo the spot back, save it to a custom field, or send it to your own system with an HTTP Request. See the variables reference.
The RECEIVED port continues on any reply, not only a shared location. If the contact types a message instead of tapping Send location, the flow still moves on, but the {{location.*}} tokens come out empty. Branch on {{location.latitude}} being present if the next step depends on a real pin.

Templates

Install WhatsApp Cart Checkout and edit it on the canvas.

Variables reference

The cart tokens, and everything else.

Payments and gateways

Connect the gateway behind the Pay now button.

Store automations

Selling through Shopify or WooCommerce instead? Start here.