文档已更新。
中文(简体) 译文尚未完成。
英语更新时间:3月28日

我们将弃用本地 API。请参阅我们的本地 API 弃用文档,了解弃用详情以及如何迁移到我们的下一代云端 API。

与客户共享商品

企业可以通过多种方式与客户共享商品:

  • 目录消息 — 包含一个按钮的自由格式消息。当客户点按该按钮时,系统会在 WhatsApp 中显示您的商品目录。
  • 目录模板消息 — 包含一个按钮的模板消息。当客户点按该按钮后,系统会在 WhatsApp 中显示您的商品目录。
  • 目录链接消息 — 包含目录缩略图和整个商品目录链接的消息。
  • 商品消息 — 包含商品目录中单件商品或最多 30 件商品的相关信息的消息。
  • 多件商品模板消息 — 单条消息中包含您电子商务目录中最多 30 件商品(商品最多可分为 10 个组)的相关信息的模板消息。

目录消息

目录消息是自由格式的消息,您可通过目录消息在 WhatsApp 中完整地展示商品目录。

目录消息会显示您选择用作标题图片的商品缩略图、自定义正文文本、固定文本标题、固定文本子标题,以及一个查看目录按钮。

当客户点按查看目录按钮时,系统随即会在 WhatsApp 中显示您的商品目录。

要求

您必须将库存上传到 Meta 的电子商务目录,并将该目录与您的 WhatsApp Business 商业帐号关联

限制

该功能在印度不可用。

请求语法

使用 WhatsApp Business 电话号码 > 消息端点发送目录消息。

POST /<WHATSAPP_BUSINESS_PHONE_NUMBER_ID>/messages

POST 请求正文

{
  "messaging_product": "whatsapp",
  "recipient_type": "individual",
  "to": "<TO>",
  "type": "interactive",
  "interactive" : {
    "type" : "catalog_message",
    "body" : {
      "text": "<BODY_TEXT>"
    },
    "action": {
      "name": "catalog_message",
      "parameters": {
        "thumbnail_product_retailer_id": "<THUMBNAIL_PRODUCT_RETAILER_ID>"
      }
    },

    /* Footer object is optional */
    "footer": {
      "text": "<FOOTER_TEXT>"
  }
}

属性

占位符描述值示例

<BODY_TEXT>

字符串

必要。


消息正文中显示的文本。


不超过 1,024 个字符。

Hello! Thanks for your interest. Ordering is easy. Just visit our catalog and add items to purchase.

<FOOTER_TEXT>

字符串

可选。


消息页脚中显示的文本。


不超过 60 个字符。

Best grocery deals on WhatsApp!

<THUMBNAIL_PRODUCT_RETAILER_ID>

字符串

必要。


商品的 SKU 编号。在电商管理工具中标记为内容编号


此商品的缩略图将用作消息的标题图片。


如果您省略了 parameters 对象,系统将使用目录中第一件商品的商品图片。

2lc20305pt

<TO>

字符串

客户的电话号码。

16505551234

请求示例

{
  "messaging_product": "whatsapp",
  "recipient_type": "individual",
  "to": "16505551234",
  "type": "interactive",
  "interactive": {
    "type": "catalog_message",
    "body": {
      "text": "Hello! Thanks for your interest. Ordering is easy. Just visit our catalog and add items to purchase."
    },
    "action": {
      "name": "catalog_message",
      "parameters": {
        "thumbnail_product_retailer_id": "2lc20305pt"
      }
    },
    "footer": {
      "text": "Best grocery deals on WhatsApp!"
    }
  }
}'

响应示例

{
  "messaging_product": "whatsapp",
  "contacts": [
    {
      "input": "16505551234",
      "wa_id": "16505551234"
    }
  ],
  "messages": [
    {
      "id": "wamid.HBgLMTY1MDM4Nzk0MzkVAgARGBI0ODVEREUwQzEzQkVBRjQ1RUUA"
    }
  ]
}

目录模板消息

目录模板消息是包含一个按钮的模板消息。当客户点按该按钮时,系统会在 WhatsApp 中显示您的商品目录。

如要发送目录模板消息,您需要使用目录模板。请参阅我们的目录模板文档,了解如何创建目录模板,以及如何在模板消息中发送目录模板。

目录链接消息

通过整合出一条 wa.me 链接,并将其置于标准文本消息中,企业便可发送整个商品目录的链接。发送文本消息时,企业可以使用可选的 preview_url(应设为 true),让消息显示出消息 body 字符串中任意网址所代表的一组商品目录缩略图。

请注意,如果企业禁用目录,在目录链接消息中轻触 wa.me 链接和查看目录按钮时,系统将显示目录链接无效消息。

如要整合出 wa.me 链接,请将商家的企业电话号码(含国家/地区代码)附加到以下字符串的末尾:

https://wa.me/c/

例如:

https://wa.me/c/15555455657

商品消息

多件商品消息和单件商品消息都属于 interactive 消息类型。

多件商品消息示例:
单件商品消息示例:
用户点击“开始购物”时触发的菜单:
商品详情页面示例:

概览

收到多件和单件商品消息的用户可以执行 3 个主要操作:

  1. 查看商品:客户可以看到商品列表或只看到一件商品。每当用户点击某个特定商品时,我们都会获取该商品的最新信息,并以商品详情页面 (PDP) 的格式显示该商品。目前,PDP 仅支持商品图片,为该商品添加的任何视频和/或动图都不会显示在 PDP 中。
  2. 将商品加到购物车:用户可以直接在清单或商品详情页面中将商品加到自己的购物车,或者修改数量。每当用户向购物车中添加商品时,我们都会获取该商品的最新信息。如果任何商品有状态变化,我们会显示一个对话框,告知“购物车中的一件或多件商品已更新”。详情请参阅商品更新。购物车会一直保留在企业与客户之间的聊天对话中,直到客户将其发送至企业为止。详情请参阅购物车体验
  3. 向企业发送购物车:在添加所有需要的商品后,客户可以将购物车发送至与其进行消息通信的商家。企业收到购物车后便可确定后续步骤,例如请求获取配送信息或提供支付选项。

如果客户在同一个 WhatsApp 帐号下关联了多件设备,则多件商品和单件商品消息会在各设备之间同步。但是,对于每个特定设备而言,购物车为本机特有。详情请参阅购物车体验

目前,以下平台可接收上述类型的消息:

  • iOS:2.21.100(多件商品消息)和 2.21.210(单件商品消息)。
  • Android:2.21.9.15(多件商品消息)和 2.21.19(单件商品消息)。
  • 网页端:已推出支持上述功能的网页客户端。

如果收信人的应用版本不支持多件或单件商品消息,他们会收到一条消息,告知他们因使用了过时的 WhatsApp 版本而无法收到消息。企业也会收到 Webhooks 通知,表明由于收信人使用了过时的 WhatsApp 版本,消息无法送达。

针对消息的预期行为

多件商品消息和单件商品消息支持以下操作:

  • 由某一用户转发给另一用户。
  • 由同一对话中的用户重新打开。

目录消息、多件商品消息和单件商品消息不支持以下行为:

  • 作为通知发出。这些消息仅可作为现有对话的一部分发出。

商品更新

商家可能需要更新目录中商品的属性。对于提到该商品的任何消息,我们会根据更新的属性,按照以下方式处理:

更新的属性更新流程

商品的价格、名称、描述和图片。

  1. 商家发送一条包含商品 A 的多件或单件商品消息。
  2. 商家更新目录中商品 A 的属性。
  3. 客户的客户端从服务器获悉此更新之后,显示该商品的页面将立即更新。

可用数量更新

  1. 商家向客户发送一条包含商品 B 的多件或单件商品消息。
  2. 商家售出商品 B 的所有可用量。然后,商家更新其目录,表明商品 B 已无货
  3. 如果有客户将商品 B 加入购物车,则系统会将该商品从购物车中移除。购物车将显示一个对话框,告知“购物车中的一件或多件商品已更新”。
  4. 如果客户未将商品 B 加入购物车,则多件或单件商品消息当前会显示该商品无货。

购物车体验

查看商品之后,客户可以将其加入购物车,并将购物车发送至企业。就 WhatsApp 商务而言,购物车具备以下特点:

  • 对于特定设备中的个人/企业聊天对话而言是唯一的:在客户与企业之间的每个聊天对话中,系统仅会创建一个购物车,并且购物车不会在多个设备上持续显示。发送购物车之后,客户可立即在与企业的对话中打开另一个购物车,再次启动该流程。
  • 无到期日:购物车会一直保留在聊天对话中,直到客户将其发送到企业为止。购物车一旦发送,随即清空。

客户向购物车中添加商品时,对于单件目录商品,最多可以添加 99 个,但是对于可以加入购物车的不同商品数量并不设限。

购物车一旦发送,便无法编辑。如果客户需要新商品或希望更改订单,可发送新购物车。商家无法向客户发送购物车。

购物车体验示例和针对商品状态更改的预期行为。

您应该使用商品消息的原因

多件和单件商品消息都能带来简单且个性化的用户体验。它们能引导客户浏览与自身最相关的商品子集而非商家的完整库存,让客户获得更出色的体验。

简单高效

如果将这两类消息与自然语言处理 (NLP)、文本搜索或清单消息和回复按钮等导航工具结合使用,能够快速找出客户正在寻找的内容。

个性化

商品消息为动态填充,因此可根据客户或情况进行定制。例如,您可以显示一条包含某客户最常订购商品的多件商品消息。

取得业务成效

商品消息是可提高订单量的一个有效渠道。在测试期间,从发出的多件商品消息到收到的购物车,商家取得的平均转化率为 7%。

无需模板

无需模板或经过预先批准,即可使用互动消息。这类消息实时生成,并始终显示最新商品详情、定价和仓库中的库存水平。

适用场景

多件商品消息最适合引导客户浏览商家库存的特定子集,在以下场景中尤为有用:

  • 以对话的形式购物。例如,使用搜索功能,让客户可以输入购物清单,然后系统使用多件商品消息进行回复。
  • 导航至某个特定类别,如健身服。
  • 提供个性化的优惠或推荐。
  • 再次订购之前订购的商品。举例来说,用户可以再次订购少于 30 件商品的常点外卖。

单件商品消息最适合引导客户浏览商家库存中的一款特定商品,通过给予有限的选项提供快速回复方式,例如:

  • 响应客户的特定要求。
  • 给出推荐。
  • 再次订购之前订购的商品。

这两个功能还可用于人工客服流程,但是您需要构建工具,以支持人工客服在对话中生成多件商品消息或单件商品消息。

入门指南

在发送每条消息之前,您需要向 /contacts 节点发出调用,以获取接收人的 WhatsApp 编号。

我们建议设置 Webhooks,以接收消息状态和消息入站通知。您可以通过这种方式追踪消息是否已发送以及客户的回答。

第 1 步:整合 Interactive 对象

单件商品消息

如要发送单件商品消息,应将以下组件整合成一个 product 类型的 interactive 对象:

对象描述

body

可选。

body 对象。查看 body 对象的所有选项

footer

可选。

footer 对象。查看 footer 对象的所有选项

action

必要。

此操作字段必须包含以下项目:

  • catalog_id:要用于此消息的目录编号。请通过电商管理工具检索此编号。
  • product_retailer_id:商品的唯一标识符。

查看 action 对象的所有选项

最后,interactive 对象应如下所示:

"interactive": {
    "type": "product",
    "body": {
      "text": "text-body-content"
    },
    "footer": {
      "text": "text-footer-content"
    },
    "action": {
      "catalog_id": "catalog-id",
      "product_retailer_id": "product-SKU-in-catalog"
    }
}

多件商品消息

如要发送多件商品消息,应将以下组件整合成一个 product_list 类型的 interactive 对象:

对象描述

header

必要。

必须将标题的 type 设为 text。务必添加包含所需内容的 text 对象。查看所有可用的 header 字段

body

必要。

body 对象。查看 body 对象的所有选项

footer

可选。

footer 对象。查看 footer 对象的所有选项

action

必要。

此操作字段必须包含以下项目:

  • catalog_id:要用于此消息的目录编号。请通过电商管理工具检索此编号。
  • sections:版块对象的数组。您必须至少添加一个版块。

在每个版块中,您可以添加以下项目:

  • title:如果计划使用多个版块,请为每个版块添加标题。
  • product_items:应显示的商品对象的数组。

每个商品对象都包含一个 product_retailer_id,与商品的唯一标识符对应。请通过电商管理工具检索此编号。查看 action 对象的所有选项

最后,interactive 对象应如下所示:

"interactive": 
    {
    "type": "product_list",
    "header":{
       "type": "text",
        "text": "text-header-content"
     },
     "body":{
        "text": "text-body-content"
      },
     "footer":{
        "text":"text-footer-content"
     },
     "action":{
        "catalog_id":"catalog-id",
        "sections": [
             {
             "title": "the-section-title",             
             "product_items": [
                  { "product_retailer_id": "product-SKU-in-catalog" },
                  { "product_retailer_id": "product-SKU-in-catalog" },
                            ...
              ]},
              {
              "title": "the-section-title",
              "product_items": [
                 { "product_retailer_id": "product-SKU-in-catalog" }
                           ...
              ]},
               ...
       ]
     },  
    }

商品缺失

如果上述 API 调用中提供的所有商品与商家 Facebook 目录中的任意商品都不相符,系统将发送错误消息,且不会向用户发送多件或单件商品消息。

对于多件商品消息,商品列表中必须至少有一件商品与商家 Facebook 目录中的商品相符。在此情况下:

  • 消息将发送成功;
  • 系统会删除不相符的商品;
  • 商家会收到一条要求更新目录的错误消息。

第 2 步:添加常用消息参数

interactive 对象整合完成后,请附加组成消息其他参数:recipient_typetotype。记得将 type 设为 interactive

{
  "recipient_type": "individual",
  "to" : "whatsapp-id", // WhatsApp ID of the recipient
  "type": "interactive",
  "interactive":{
    // The interactive object  
   }
  }

请在此处查看所有消息类型的通用参数。

第 3 步:向 /messages 发出 POST 调用

使用您在第 1 步和第 2 步中整合的 JSON 对象,向 /messages 发出 POST 调用。如果消息发送成功,您将收到以下响应:

{
  "messages": [{
    "id": "{message-id}"
  }]
  }

多件商品模板消息

如要发送多件商品模板消息,您需要使用多件商品消息模板。请参阅我们的多件商品消息模板文档,了解如何创建多件商品消息模板,以及如何在模板消息中发送多件商品消息模板。