Commerce Operations
resource: commerce — catalogs, collections, products, and orders
create-catalog
Creates a product catalog under a business account.
| Field | Required | Description |
|---|---|---|
businessAccountId | ✓ Yes | WABA/business account ID. |
name | ✓ Yes | Catalog name. |
get-catalog
Fetches a catalog by ID.
| Field | Required | Description |
|---|---|---|
catalogId | ✓ Yes | Catalog ID. |
list-catalogs
Lists catalogs for a business account.
| Field | Required | Description |
|---|---|---|
businessAccountId | ✓ Yes | WABA/business account ID. |
delete-catalog
Deletes a catalog.
| Field | Required | Description |
|---|---|---|
catalogId | ✓ Yes | Catalog ID. |
add-product
Adds a product to a catalog.
| Field | Required | Description |
|---|---|---|
catalogId | ✓ Yes | Catalog ID. |
name | ✓ Yes | Product name. |
description | No | Product description. |
price | No | Price (numeric string, minor units per catalog config). |
currency | No | ISO currency code, e.g. USD. |
imageUrl | No | Product image URL. |
get-product
Fetches a single product.
| Field | Required | Description |
|---|---|---|
productId | ✓ Yes | Product ID. |
list-products
Lists products in a catalog.
| Field | Required | Description |
|---|---|---|
catalogId | ✓ Yes | Catalog ID. |
limit | No | Page size. |
cursor | No | Pagination cursor from a previous response. |
update-product
Updates product fields.
| Field | Required | Description |
|---|---|---|
productId | ✓ Yes | Product ID. |
name | No | Updated name. |
description | No | Updated description. |
price | No | Updated price. |
delete-product
Removes a product from its catalog.
| Field | Required | Description |
|---|---|---|
productId | ✓ Yes | Product ID. |
create-collection
Creates a named collection (curated product grouping) within a catalog.
| Field | Required | Description |
|---|---|---|
catalogId | ✓ Yes | Catalog ID. |
name | ✓ Yes | Collection name. |
productIds | No | Comma-separated product IDs to include. |
update-collection
Updates a collection's name or product membership.
| Field | Required | Description |
|---|---|---|
collectionId | ✓ Yes | Collection ID. |
name | No | Updated name. |
productIds | No | Updated comma-separated product IDs. |
delete-collection
Deletes a collection.
| Field | Required | Description |
|---|---|---|
collectionId | ✓ Yes | Collection ID. |
send-single-product
Sends a single-product message (product card) in a chat.
| Field | Required | Description |
|---|---|---|
to | ✓ Yes | Recipient phone number. |
catalogId | ✓ Yes | Catalog the product belongs to. |
productRetailerId | ✓ Yes | Merchant's own SKU/retailer ID for the product. |
bodyText | No | Message body text above the product card. |
footerText | No | Footer text below the product card. |
send-multi-product
Sends a multi-product message with sectioned product lists.
| Field | Required | Description |
|---|---|---|
to | ✓ Yes | Recipient phone number. |
catalogId | ✓ Yes | Catalog the products belong to. |
sectionsJson | ✓ Yes | JSON array of sections, each listing product retailer IDs. |
headerText | No | Header text. |
bodyText | No | Body text. |
footerText | No | Footer text. |
send-product-template
Sends an approved message template that references a specific catalog product.
| Field | Required | Description |
|---|---|---|
to | ✓ Yes | Recipient phone number. |
templateName | ✓ Yes | Approved template name. |
languageCode | ✓ Yes | Template language/locale code. |
catalogId | ✓ Yes | Catalog the product belongs to. |
productRetailerId | ✓ Yes | Merchant's retailer ID for the featured product. |
enable-commerce
Turns on cart/catalog visibility for the sending number.
| Field | Required | Description |
|---|---|---|
enableCart | No | Boolean — enables the in-chat cart. |
catalogVisible | No | Boolean — makes the catalog visible/browsable in-chat. |
get-commerce-settings
Returns current cart/catalog visibility settings for the sending number.
No fields beyond the shared credential pair.
receive-order
Parses an inbound WhatsApp Commerce order payload (already received via webhook) into a structured order.
| Field | Required | Description |
|---|---|---|
webhookPayload | ✓ Yes | Raw JSON payload containing the order (from Meta's webhook delivery). |
create-catalog through delete-collection) only needs accessToken —
they act on IDs owned by the business, not a specific phone number. Sending product messages
(send-single-product, send-multi-product, send-product-template) and
enable-commerce / get-commerce-settings need both accessToken and
phoneNumberId.
webhookPayload string you already have (e.g. captured by an upstream HTTP-trigger node) — it
makes no outbound API call. It does not itself listen for Meta's webhook deliveries; that piece is covered
under the pending Trigger operations in Roadmap.
Example receive-order output:
{
"success": true,
"orderId": "wamid.HBg...",
"catalogId": "1234567890",
"customerPhone": "14155551234",
"text": "Here's my order",
"items": [
{ "productRetailerId": "sku-001", "quantity": 2, "itemPrice": "19.99", "currency": "USD" }
],
"itemCount": 1,
"totalAmount": "39.98",
"currency": "USD",
"status": "ok"
}