Wapzio logo

Create the WhatsApp templates Commerce needs

Ready-to-copy message copy for cart reminders, order updates and COD — plus the Meta rules that get templates rejected.

4 min read Updated 19 Sept 2026TemplatesMeta approval
On this page (5)

WhatsApp will not let anyone send free-form marketing to a shopper who has not written in recently. Every Commerce message is therefore a template: copy you submit once, Meta approves, and Wapzio then fills in the shopper's name, their cart total and their tracking link at send time.

So templates come first. A recovery flow cannot be switched on without one, and Meta's review takes anywhere from a few minutes to a few hours.

Where you build them

Templates → Message Templates → Create template. Commerce only offers you templates that Meta has marked Approved.

Pick the right category

MessageCategoryWhy
Cart remindersMarketingIt is a nudge to buy. Needs marketing consent, and WhatsApp limits how much marketing one person receives.
Order placed, COD confirmation, shipped, delivered, cancelledUtilityIt is about an order the shopper made. Cheaper, and it still reaches shoppers who have had a lot of marketing.
Feedback request, reorder reminderMarketingBoth are promotional, so both respect opt-outs and quiet hours.
Do not send order updates as marketing

A marketing template about an order costs more and is the one most likely to be blocked by WhatsApp's per-person marketing limit — the shopper then never learns their parcel shipped. Keep order updates in Utility.

The rules that cause rejections

  • The template name is lowercase letters, numbers and underscores only: cart_reminder_1, order_shipped_update.
  • The body cannot start or end with a variable. "{{1}}, your order shipped" is refused; "Hi {{1}}, your order shipped." is fine.
  • Variables are numbered from {{1}} with no gaps, in the order they appear.
  • Button labels carry no emoji and no variables, and stay under 25 characters.
  • A URL button whose link contains a variable needs a sample of the finished link. Meta opens it, so it has to be a real working address.
  • Give every variable a realistic sample value. "Asha" and "₹1,559.00" get approved; "xxx" and "test" get rejected.

Cart reminder — the one with the button back to the cart

This is the only Commerce template with a hard requirement: it needs a URL button whose link ends in a variable. That variable is what carries each shopper back to their own cart.

  1. 1

    Category and name

    Marketing, named cart_reminder_1. Later reminders can reuse the same copy under cart_reminder_2, cart_reminder_3.

  2. 2

    Body

    Body
    Hi {{1}}, you left {{2}} in your cart at {{3}}.
    
    Your cart total is {{4}}. Tap below to finish checkout — we have saved everything for you.
    VariableMap it toSample
    {{1}}Shopper's first nameAsha
    {{2}}Name of the first itemCast Iron Kadai 10 inch
    {{3}}Your store nameKitchen Kraft
    {{4}}Cart total with currencyINR 1,559.00
  3. 3

    Button

    Add a URL button labelled Complete my order, and set the URL to the recovery link with a variable on the end:

    Button URL
    https://api.wapzio.com/c/{{1}}
    Good to know

    Wapzio fills that variable with a code unique to the shopper's cart, and the link then redirects them to their own checkout. The exact address for your account is shown on Commerce → Recovery Flows, next to any reminder whose template is missing this button.

  4. 4

    Submit and wait for Approved

    Until Meta approves it, the template does not appear in the Recovery Flows template list.

No URL button, no recovery

A reminder whose template has no URL button with a variable still sends, but the shopper has no way back to their cart. Recovery Flows warns you in amber when the template you picked is missing it.

Order messages — copy you can paste

All of these are Utility except the last two. The variable names in brackets are what you pick on the Order Messages screen when mapping each placeholder.

order_placed_update
Hi {{1}}, we have received your order {{2}} for {{3}}.

We will message you here as soon as it ships. Thank you for shopping with {{4}}.

{{1}} first name · {{2}} order number · {{3}} order total · {{4}} store name.

cod_order_confirmation — add two Quick reply buttons: Confirm order, Cancel order
Hi {{1}}, your Cash on Delivery order {{2}} for {{3}} is ready to be packed.

Please confirm below so we can dispatch it today.
order_shipped_update
Hi {{1}}, good news: your order {{2}} has shipped with {{3}}.

Track it at {{4}} to see when it arrives.

{{3}} is the courier name and {{4}} the tracking link. Shopify supplies both from the fulfilment; a custom store sends tracking_company, tracking_number and tracking_url on its order_shipped event. Leave a variable out of the copy if your store cannot provide it — a message reading "Track it at -" is worse than no tracking line at all.

order_cancelled_update
Hi {{1}}, your order {{2}} has been cancelled.

Anything already paid will be refunded to the original payment method. Reply here if this was not expected.
order_feedback_request — Marketing
Hi {{1}}, we hope order {{2}} arrived safely.

How did we do? Reply with a rating from 1 to 5 — it takes a second and it genuinely helps us.
order_reorder_reminder — Marketing, with a URL button to your store
Hi {{1}}, running low on {{2}}?

Reordering takes one tap, and we have kept your last order handy at {{3}}.

Common approval problems

"There is already English (US) content for this template"

That name already exists on your WhatsApp account, usually from an earlier attempt. Wapzio now adopts Meta's existing copy when you publish, so the error clears itself — if you actually wanted different copy, submit it under a new name.

Rejected for "variable parameter mismatch"

A sample value is missing, or the numbering has a gap. Every {{n}} needs a sample, and they must run 1, 2, 3 with nothing skipped.

Rejected as "abusive content" or for policy

Usually promotional pressure in a Utility template, or a URL button pointing somewhere Meta cannot open. Move the promotion into a Marketing template and check the sample link loads in a browser.

Approved, but not in the Commerce list

Commerce only lists templates on the same WhatsApp number as the store's messages, and only ones in a language you send. Re-check the number and the language on the template.