取消订单预构建组件

取消订单预构建组件会检查用户的身份验证级别。用户通过身份验证后,该组件会提供有关用户最近或过往订单的信息。然后,用户可以选择取消整个订单或取消订单中的特定商品。此组件使用 Retail 身份验证预构建组件对用户进行身份验证。该组件还使用生成器进行调用后摘要。

限制

除了常见的预构建组件限制之外,此预构建组件还具有以下限制:

  • 此组件不会对任何数据进行加密。

示例对话框

以下示例对话框演示了此预构建组件处理的常见场景。这些示例对话框演示了使用电话调用组件时的行为,该行为会在对话开始时触发“默认欢迎意图”和第一个代理响应。

取消最近订单中的单件商品

最终用户之前已经过身份验证。代理会确认应取消最近一次订单中的哪些商品。代理会检查原始付款方式,并向用户确认取消详情。

用户输入 代理响应
您是否来电咨询的是您最近在 2023 年 11 月 9 日晚上 8:00 下的订单(尾号为 12978),其中包含 5 个水瓶和 1 件 T 恤?
我们在您的订单中找到了一些符合条件的商品。请告诉我们您想取消的商品。
商品 1:Google 水瓶;商品 2:Google T 恤。

请说出或输入您要选择的商品的商品编号,或者说“下一步”以显示更多商品。
下一个
我们在记录中未找到任何其他内容。请从共享列表中进行选择。
产品 1:Google 水壶,产品 2:Google T 恤。

请说出或输入您要选择的商品的商品编号,或者说“下一步”以显示更多商品。
1
为了进行验证,您有意向取消 Google 水壶。是这样吗?
我们可以看到,您选择的商品的可售数量为 5。请指定要取消的商品数量。
4
请说明取消原因。你可以这样说:“我改变主意了、不再需要了、我想再买一件商品、延迟送达、不小心买了东西、想更改付款方式,或者说其他人。
我想再买一件商品
感谢您告知我们。

要取消其他产品吗?
使用电子钱包购物时,退款会存入电子钱包或商店抵用金帐号。退款需要 3 到 5 个工作日才能显示在您的账号中。请注意,退款金额不包括运费和手续费。

取消整个订单

最终用户之前已经过身份验证。代理确认用户要取消特定订单,然后收集取消原因。代理会检查原始付款方式,并向用户确认取消详情。

用户输入 代理响应
您是否来电是为了咨询您最近的尾号为 12345 的订单,其中包含 2023 年 11 月 10 日下午 06:00 下的 1 件衬衫?
要取消其他订单吗?
您能否提供要跟踪的订单 ID 的后 5 位数字?
12346
我们得到的订单 ID 的最后五位数是 12346,对吗?
太好了,我们已完成订单 ID 的收集。

要取消整个订单吗?
请说明取消原因。你可以这样说:“我改变主意了、不再需要了、我想再买一件商品、延迟送达、不小心买了东西、想更改付款方式,或者说其他人。
不再需要
感谢您通知我们。

您的取消请求已生成。

命名惯例

此预构建组件使用以下命名惯例:

特征 形式 示例
[组件名称] 取消订单
实体类型 prebuilt_components_[component_name]_[entity_type] prebuilt_components_product_cancel_reason
Webhook prebuilt_components_[component_name]:[webhook_action] prebuilt_components_cancel_order:post_cancellation_details

输入参数

输入参数是用于配置组件某些行为的参数。流中的一个或多个条件将使用这些参数来确定组件的行为方式。流范围的参数必须在组件的初始页上设置。会话级范围的参数可以通过调用流程设置,也可以在此组件的初始页上设置。

此预构建组件接受以下输入参数:

参数名称 说明 输入格式
$session.params.phone_number (可选)用于识别用户的用户本地手机号码(不含国家/地区代码)。 字符串
$session.params.all_recent_order_id (可选)此参数会列出与已验证用户相关联的订单 ID,并按订单展示位置日期降序排序。数组的第一个元素表示最新顺序。如果用户没有订单,则此参数的值为 null 列表(字符串)
$session.params.email (可选)注册帐号时使用的电子邮件地址。 字符串
$session.params.user_first_name (可选)用户的名字,用于问候和确认对帐号的所有权。 字符串

此预构建组件允许以下可选参数配置组件的行为,包括重试。

参数名称 说明 形式
$flow.max_retry_another_account_counter 指定选择是否继续使用备用账号时允许的重试次数。默认值为 2 整数
$flow.max_retry_order_number 指定提供订单号的最后五位数时允许的重试次数。默认值为 2 整数
$flow.max_retry_another_order 指定在找不到订单 ID 或订单不符合取消条件的情况下,选择其他订单时允许的重试次数。默认值为 2 整数
$flow.max_retry_select_order_number 指定在有多个订单具有相同的最后 5 位数字的情况下,提供完整订单号时允许的重试次数。默认值为 2 整数
$flow.max_product_display_counter 指定在单个轮流中展示的商品数量上限。默认值为 2 整数
$flow.max_product_display 指定在整个对话中展示的商品数量上限。默认值为 9 整数
$flow.max_retry_product_number_counter 指定选择要取消的产品时允许的重试次数上限。默认值为 2 整数
$flow.max_product_cancel_confirm_counter 指定确认所选商品时允许的重试次数上限。默认值为 2 整数
$flow.max_retry_select_quantity 指定选择要取消的产品数量时允许的最大重试次数。默认值为 2 整数
$flow.order_product_cancel_reason_others 指定 prebuilt_components_product_cancel_reason 实体的值,指明用户已选择“其他”取消原因。默认值为 "others" 字符串
$flow.max_retry_cancel_reason 指定确认取消原因时允许的重试次数。默认值为 2 整数
$flow.order_payment_mode_COD 指定 get_order_details 网络钩子返回的 order_payment_mode 字段的值,用于指明货到付款 (COD) 付款方式。默认值为 "COD" 字符串
$flow.order_payment_mode_store_credit 指定 get_order_details 网络钩子返回的 order_payment_mode 字段的值,该值表示商店抵用金付款方式。默认值为 "store_credit" 字符串

如需配置此组件的输入参数,请展开查看相关说明。

  1. 打开 Dialogflow CX 控制台
  2. 选择您的 Google Cloud 项目。
  3. 选择您的代理。
  4. 选择 Build 标签页。
  5. 部分中,点击导入的组件。
  6. 点击网页部分中的初始页。
  7. 点击初始页中的 true 路由。
  8. 在“路由”窗口中,根据需要修改参数预设值。
  9. 点击保存

输出参数

输出参数是退出组件后将保持有效的会话参数。这些参数包含该组件收集的重要信息。此预构建组件提供了以下输出参数的值:

参数名称 说明 输出格式
phone_number 用户的本地手机号码(不含国家/地区代码),用于识别用户。 字符串
all_recent_order_id 此参数会列出与已验证用户相关联的订单 ID,并按订单展示位置日期降序排序。数组的第一个元素表示最新顺序。如果用户没有订单,则此参数的值为 null 列表(字符串)
email 在该帐号中注册的电子邮件地址。 字符串
user_first_name 用户的名字,用于问候和确认对帐号的所有权。 字符串
transfer_reason 此参数表示流程退出的原因(如果失败的话)。返回值为以下值之一:

agent:最终用户在对话期间的某个时刻请求人工客服。

denial_of_information:最终用户拒绝分享该组件请求的信息。

max_no_input:对话已达到无输入事件的重试次数上限。请参阅无输入内置事件

max_no_match:对话已达到非匹配事件的重试次数上限。请参阅无匹配的内置事件

webhook_error:发生网络钩子错误。请参阅 webhook.error 内置事件

webhook_not_found:某个网络钩子网址无法访问。请参阅 webhook.error.not-found 事件
字符串

生成器

此组件使用生成器来实现对话的特定部分。

总结

Summarization 生成器用于生成调用后摘要,用于描述该组件处理的对话。

基本设置

如需设置此预构建组件,请执行以下操作:

  1. 导入预构建组件
  2. 使用描述 Dialogflow 外部服务的配置来配置所提供的灵活 webhook,请参阅网络钩子设置。

网络钩子设置

为了使用此组件,您需要配置所包含的灵活 webhook,以从外部服务中检索所需信息。

Authentication

如果您之前未配置身份验证所需的外部服务,则需要对其进行配置,以便为此组件启用用户身份验证。如需查看详细说明,请参阅零售身份验证网络钩子设置

获取订单详情

该组件使用 prebuilt_components_cancel_order:get_order_details 网络钩子来检索指定订单的订单详情。

API 请求参数

以下参数由组件提供,作为 API 请求的输入。

参数名称 说明 输入格式
$flow.order_id 要为其检索详细信息的订单 ID。 字符串

API 响应参数

以下参数是从 API 响应中提取的,供组件使用。

参数名称 说明 输出格式
order_date 下单日期,采用 YYYY-MM-DD 格式。 字符串
order_time 下单时间,采用 HH:MM 格式。 字符串
order_product_count 订单中唯一商品的数量。 整数
order_payment_mode 表示下单时使用的付款方式。 字符串
cancelable_product_id 订单中可取消产品的产品 ID 列表。 列表(字符串)
cancelable_product_name 订单中可取消商品的商品名称列表。 列表(字符串)
cancelable_product_brand_name 订单中可取消商品的品牌名称列表。 列表(字符串)
cancelable_product_quantity 订单中可取消商品的数量列表。 列表(字符串)

如需为此组件配置“获取订单详情”网络钩子,请展开查看相关说明。

  1. 打开 Dialogflow CX 控制台
  2. 选择您的 Google Cloud 项目。
  3. 选择您的代理。
  4. 选择管理标签页。
  5. 点击网络钩子
  6. 选择 preview_components_cancel_order:get_order_details webhook。
  7. 将 Dialogflow 网络钩子网址字段中的网址替换为您要集成的服务的端点。从下拉菜单中选择合适的方法
  8. 查看并更新请求正文,为网络钩子构建正确的请求格式。
  9. 查看并更新响应配置,以从 webhook 的响应中提取特定字段。请勿修改参数名称,因为组件需要这些名称才能访问返回的字段值。
  10. 查看并视需要更新 Authentication 设置。
  11. 点击保存

获取重复的订单详情

当多个订单号的最后五位数相同时,该组件会使用 prebuilt_components_retail_services:get_duplicate_order_details 网络钩子检索详细信息。

API 请求参数

以下参数由组件提供,作为 API 请求的输入。

参数名称 说明 输入格式
$flow.duplicate_order_id 包含用户的一个或多个订单之间共享的订单号的最后五位数的列表。 列表(字符串)

API 响应参数

以下参数是从 API 响应中提取的,供组件使用。

参数名称 说明 输出格式
all_order_date 重复订单的订单日期列表,其中最后五位数(采用 YYYY-MM-DD 格式)。此数组中的每个元素都对应于 all_order_time 数组中的同一元素。 列表(字符串)
all_order_time 重复订单的订单时间列表,其后五位数字为 HH:MM,格式为。此数组中的每个元素都对应于 all_order_date 数组中的同一元素。 列表(字符串)

若要为此组件配置“获取重复订单详情”网络钩子,请展开查看相关说明。

  1. 打开 Dialogflow CX 控制台
  2. 选择您的 Google Cloud 项目。
  3. 选择您的代理。
  4. 选择管理标签页。
  5. 点击网络钩子
  6. 选择预构建_组件_retail_services:get_duplicate_order_details webhook。
  7. 将 Dialogflow 网络钩子网址字段中的网址替换为您要集成的服务的端点。从下拉菜单中选择合适的方法
  8. 查看并更新请求正文,为网络钩子构建正确的请求格式。
  9. 查看并更新响应配置,以从 webhook 的响应中提取特定字段。请勿修改参数名称,因为组件需要这些名称才能访问返回的字段值。
  10. 查看并视需要更新 Authentication 设置。
  11. 点击保存

帖子取消详情

该组件使用 prebuilt_components_cancel_order:post_cancellation_details 网络钩子来提交取消请求。

API 请求参数

以下参数由组件提供,作为 API 请求的输入。

参数名称 说明 输入格式
$session.params.phone_number 用户的本地手机号码(不含国家/地区代码),用于识别用户。 字符串
$flow.order_id 要为其提交工单的订单 ID。 字符串
$flow.cancel_product_id_list 用户要取消的商品 ID 列表。 列表(字符串)
$flow.cancel_product_quantity_list 用户要取消的商品数量列表,与 $flow.cancel_product_id_list 中的每个元素相对应。 列表(字符串)
$flow.cancel_reason_list 每个已取消商品的取消原因列表,与 $flow.cancel_product_id_list 中的每个元素相对应。 列表(字符串)
$flow.order_refund_mode 退款的付款方式。有效值由 prebuilt_components_cancel_mode_of_refund 实体定义。 字符串

API 响应参数

以下参数是从 API 响应中提取的,供组件使用。

参数名称 说明 输出格式
order_cancellation_ticket_id 已提交的取消请求对应的工单 ID。 字符串

如需为此组件配置“取消发布详情”网络钩子,请展开查看相关说明。

  1. 打开 Dialogflow CX 控制台
  2. 选择您的 Google Cloud 项目。
  3. 选择您的代理。
  4. 选择管理标签页。
  5. 点击网络钩子
  6. 选择 preview_components_cancel_order:post_cancellation_details 网络钩子。
  7. 将 Dialogflow 网络钩子网址字段中的网址替换为您要集成的服务的端点。从下拉菜单中选择合适的方法
  8. 查看并更新请求正文,为网络钩子构建正确的请求格式。
  9. 查看并更新响应配置,以从 webhook 的响应中提取特定字段。请勿修改参数名称,因为组件需要这些名称才能访问返回的字段值。
  10. 查看并视需要更新 Authentication 设置。
  11. 点击保存

完成

现在,您的代理及其 webhook 应该已设置完毕,可以进行测试了。