- A WhatsApp Cloud channel: see Connect WhatsApp.
- 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.”
- 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.
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
🙋 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.

