WhatsAppWholesaleFlowsB2B

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:

  1. Create Flow → With endpoint (Data exchange) — do not pick a loan/credit starter template.
  2. Name e.g. `pp_wholesale_checkout_v1`
  3. Category: Shopping
  4. Paste endpoint URL with the correct `org_id`
  5. Import JSON from the repo: `docs/whatsapp_flow_wholesale_checkout.json`
  6. Confirm Flow JSON errors = 0, endpoint health check succeeds
  7. 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:

  1. Template Flow button is Navigate (no live catalog from endpoint), or
  2. Buyer is on B2B allow-list but no `wholesale_price > 0` products, or
  3. 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

  1. Test-send template to the allow-listed WA
  2. Open Flow → pick SKU (trade price in title) → fulfillment → payment (e.g. COD)
  3. WhatsApp Orders → Queue: order shows wholesale + company name
  4. 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.

Back to Resources
How to Test WhatsApp Wholesale Checkout Flow | ProfilePilot