How to Test WhatsApp Wholesale Checkout Flow
ProfilePilot Team | Sep 24, 2026 | 10 min read
Publish the wholesale With-endpoint Flow, attach Marketing template pp_wholesale_checkout_v1, allow-list a B2B buyer, and verify trade-priced catalog through to Queue.
Step 1: Prerequisites
Wholesale Flow reuses the same endpoint and signed keys as retail:
`https://profilepilotapp.com/api/whatsapp/flows?org_id=<client-org-uuid>`
Before testing:
- Organisation Selector = client org whose phone is connected
- WhatsApp Orders → Cloud API → Flows → Verify (health check green)
- At least one product with wholesale price > 0 (Products tab)
- Buyer WA on Catalog → Wholesale accounts (company name + number + tier)
Chat keyword RESTOCK should already work for allow-listed buyers even before the Flow UI is published.
Step 2: Publish the wholesale Flow
In WhatsApp Manager → Flows:
- Create Flow → With endpoint (Data exchange) — do not pick a loan/credit starter template.
- Name e.g. `pp_wholesale_checkout_v1`
- Category: Shopping
- Paste endpoint URL with the correct `org_id`
- Import JSON from the repo: `docs/whatsapp_flow_wholesale_checkout.json`
- Confirm Flow JSON errors = 0, endpoint health check succeeds
- Publish
Screens: CATALOG → FULFILLMENT → DATE|ADDRESS → PAYMENT (same pattern as retail).
Step 3: Marketing template
Create on the same WABA:
| Field | Value | | --- | --- | | Category | Marketing | | Name | `pp_wholesale_checkout_v1` | | Language | en | | Body | `Trade restock is ready for {{1}}. Tap below to order at your wholesale prices.` | | Sample | Acme Foods | | Button | Complete flow → published `pp_wholesale_checkout_v1` | | Button text | Restock now / Order Bulk |
Critical: Flow button must use Network request / Data exchange, not Navigate / pre-defined screen. Otherwise the SKU dropdown opens empty.
After APPROVED: Marketing → Sync from WhatsApp. Prefer test-send from ProfilePilot Marketing (attaches `pp.v1` flow_token).
Step 4: If SKU / product list is empty
Blank SKU / product list almost always means:
- Template Flow button is Navigate (no live catalog from endpoint), or
- Buyer is on B2B allow-list but no `wholesale_price > 0` products, or
- Wrong `org_id` on the Flow endpoint
Fix button mode first, then confirm wholesale prices and allow-list. Retail available products alone are not enough when the WA is treated as wholesale.
Step 5: End-to-end check
- Test-send template to the allow-listed WA
- Open Flow → pick SKU (trade price in title) → fulfillment → payment (e.g. COD)
- WhatsApp Orders → Queue: order shows wholesale + company name
- If OMS Generic JSON webhook is set on Payments, Zapier/middleware receives `whatsapp.wholesale.order.created`
Optional: reply RESTOCK in chat to confirm B2B pricing without the Flow UI.
Step 6: Naming tips
- Flow name: `pp_wholesale_checkout_v1` (like retail checkout)
- Template can share that name or use `pp_wholesale_restock_v1` — keep the `pp_` prefix
- Product dropdown titles are capped at 30 characters (ProfilePilot truncates)
- Do not mix Actonia lab keys with a client org `org_id` on the endpoint
Quick Tasks
- ✓Verify Flow keys on the client phone
- ✓Publish pp_wholesale_checkout_v1 from docs/whatsapp_flow_wholesale_checkout.json
- ✓Create Marketing template with Complete flow + Network request
- ✓Add B2B buyer + wholesale_price on SKUs
- ✓Test-send and place a small wholesale order
Keep learning
See the latest guides, experiments, and rollouts.