Shopify is the dominant Indian D2C storefront in 2026. WhatsApp is the dominant Indian customer channel. Connecting them turns abandoned-cart recovery, order updates, and post-purchase upsell from a 2% email-conversion grind into a 25–40% WhatsApp-conversion lift. This is the 2026 India setup guide — the four integration points every Shopify D2C should wire (cart abandonment, order confirmation, shipping update, post-purchase), the data flow between Shopify webhooks and WhatsApp BSP, the variables to map for personalisation, and the production gotchas that break first launches.
The Four Shopify-to-WhatsApp Integration Points
- Cart abandonment recovery. Shopify fires a
checkouts/createwebhook when a customer starts checkout. Wait 30–60 minutes; if noorders/createfollows for the same checkout token, send an abandoned cart WhatsApp template. - Order confirmation. Shopify fires
orders/createwhen a payment completes. Send a utility template with order number, items, total, and tracking-link placeholder. - Shipping notification. Shopify fires
fulfillments/createwhen an order ships. Send a utility template with carrier, tracking number, and ETA. - Post-purchase upsell. 7 days after order delivered, fire a marketing template with cross-sell recommendations or a loyalty point unlock.
Webhook Subscription Setup
# Subscribe to Shopify webhooks via Admin API:
POST /admin/api/2024-10/webhooks.json
{
"webhook": {
"topic": "checkouts/create",
"address": "https://yourbackend.com/webhooks/shopify",
"format": "json"
}
}
# Repeat for: checkouts/update, orders/create, orders/updated,
# fulfillments/create, refunds/create
Each webhook is signed with HMAC-SHA256 in the X-Shopify-Hmac-Sha256 header. Verify against your Shopify app secret before processing — same idempotency rules as Meta webhooks apply.
Cart Abandonment Recovery Flow
Trigger
Shopify checkouts/create webhook fires. Persist the checkout payload with checkout token and customer phone number. Schedule a 45-minute delayed job.
Check
At T+45 minutes, query Shopify for any order with the same checkout token. If none, customer abandoned. If yes, cancel the abandonment send.
Send
Marketing template "abandoned cart" with variables: customer name, top item name, cart total, recovery link. Recovery link is the same Shopify checkout URL — Shopify keeps it active for 24 hours.
Conversion benchmark
Indian D2C apparel + beauty: 18–28% recovery rate on first WhatsApp template within 1 hour of abandonment. Email recovery in same segment: 4–8%. WhatsApp lifts conversion 3–5x.
Order Confirmation Template (Utility)
Body:
Hi {{1}}, your order #{{2}} is confirmed.
Items: {{3}}
Total: ₹{{4}}
Estimated delivery: {{5}}
Reply HELP if you need assistance.
Buttons: URL "Track Order" → https://yourdomain.com/track/{{2}}
Map Shopify order.name to {{2}}, order.line_items[].title joined to {{3}}, order.total_price to {{4}}, computed delivery date to {{5}}.
Shipping Update Template (Utility)
Body:
Order #{{1}} shipped via {{2}}.
Tracking: {{3}}
Expected delivery: {{4}}
Buttons: URL "Track Live" → tracking URL
Source data from Shopify fulfillment.tracking_company, fulfillment.tracking_number, fulfillment.estimated_delivery_at.
Post-Purchase Upsell Flow
Wait 7 days after fulfillment.delivered_at. Pull cross-sell recommendation via Shopify recommendations endpoint or your own ML service. Send marketing template with discount code unique to that customer (Shopify Discount API POST /admin/api/2024-10/price_rules.json + discount_codes.json).
Catalog Sync (for WhatsApp Native Payments)
If you ship WhatsApp Native Payments + UPI checkout (separate guide), sync your Shopify product catalog to Meta Commerce Manager via the Catalog API. Run a daily diff:
1. Pull all products from Shopify Admin API
2. Pull current Meta Catalog state via Graph API
3. Diff: new SKUs, updated prices, inventory changes, deleted products
4. Push diffs to Meta Catalog API in batches of 4,999 (Meta limit per call)
5. Log every catalog event for audit
Three Production Gotchas That Break First Launches
- Shopify rate limit on Admin API. 40 requests / 30 seconds per shop on the standard plan. Bulk catalog operations easily hit this. Use the Bulk Operations API for catalog syncs above 1,000 SKUs.
- Customer phone normalisation. Shopify stores phone in formats like
+919876543210,9876543210,91-98765-43210. Meta WhatsApp API requires919876543210(no plus, no separators). Normalise at the integration layer. - Discount code expiry mismatch. If your post-purchase template offers a discount code that expires before the customer reads the WhatsApp message, conversion dies. Set discount codes to 7-day expiry minimum and surface the expiry in the template body.
Wire Shopify + WhatsApp on RichAutomate.
Pre-built Shopify webhook handlers, abandonment scheduler, catalog sync helper, and the discount-code-by-customer pattern — production-tested across Indian D2C apparel and beauty.