场景应用:顾客查询订单 & 包裹

特定场景配置指南:顾客查询订单 & 包裹信息。

“我的订单到哪儿了?”

这是电商客服最常遇到问题,约占总问题数的 20%+。

如果机器人能够很好地解决这类问题,将帮助你节省 20% 的人工客服时间。

为此,我们设计了一套订单 & 包裹查询流程。接入电商机器人的商家完成一定配置后,都能够实现如下效果:

在电商机器人中,我们提供了 2 种查询订单方式:

  • 点击菜单中的 My Orders,回调触发流程

  • 输入 查订单 意图的句子,AI 触发流程

下面,我将分5个步骤,为你详细说明订单 & 物流查询的配置方法:

  1. 验证接口有效性

  2. 获取订单

  3. 获取物流信息

  4. 订单号格式配置

  5. 真实情况测试

开始前,你需要准备一个 Webhook URL。以验证 Webhook 的有效性,并在实际使用中返回正确值。

验证接口有效性

为了便于你了解 Bothub 的请求结构,签名算法等,并验证 Webhook 的有效性,你需要验证测试接口。前往 “API 对接” -> 密钥管理 -> Webhook 管理 下方,填写 Webhook URL。我们在 params 字段中放置了随机生成的 test_token 字段。你需要读取该字段并返回。

请求

{
  "request":{
    "category": "ecommerce",
    "method": "test",
    "id": "test_12582312",
    "page_id": "231231232134111",
    "meta": ""
  },
  "params": {
    "test_token" : "12345"
  }
}

返回

{
  "success": true,
  "object": "test",
  "test_token" : "12345"
}

如果返回值正确,则验证通过。

验证通过后,我们继续进行订单接口的配置。

获取订单

接口

{
  "request":{
    "category": "ecommerce",
    "method": "orders",
    "id": "order_list_12582312",
    "page_id": "231231232134111",
    "meta": ""
  },
  "params": {
    "user_account" : "jicheng@bothub.ai"
    "filter": "open",
    "order_number": 12344556, // user_account和order_number只能取一个
  },
  "pagination": {
    "page": 1,
    "limit": 3
  }
}

接口说明

这个接口将用于,根据顾客输入的订单号 / 账号(默认为邮箱),获取对应的订单详情 / 订单列表。

  • 如果根据顾客的账号获取,params 中是 user_account,代表用户账号,filter 则代表订单类型:

    • open 为进行中订单

    • unpaid 为未支付订单

    • past 为已完成订单

  • 如果根据订单号获取,params 中是 order_number,代表订单号。

  • user_account 和 order_number 仅可指定一个。

  • pagination 用于分页。比如顾客提供账号,调取订单列表时,page 表示页数,limit 表示一页的订单数。

返回值

成功

{
  "success": true,
  "object": "orders",
  "has_next_page" : true,
  "orders" : [
    {
      "recipient_name":"Stephane Crozatier", // 收货人姓名
      "order_number":"12345678902",  // 订单号
      "currency":"USD",   // 订单货币
      "payment_method":"Visa 2345",         // 支付方式 
      "order_url":"http://petersapparel.parseapp.com/order?order_id=123456", // 订单Url,订单详情卡片会将此链接以按钮形式展示,供用户点击跳转
      "timestamp":"1428444852",        // 订单发生的时间戳
      "status": "unpaid",  // 订单状态
      "address":{       // 订单地址
        "street_1":"1 Hacker Way",
        "street_2":"",
        "city":"Menlo Park",
        "postal_code":"94025",
        "state":"CA",
        "country":"US"
      },
      "summary":{     // 订单金额总结
        "subtotal":75.00,     // 订单金额
        "shipping_cost":4.95,     // 运费
        "total_tax":6.19,     // 税费
        "total_cost":56.14     // 实付金额,包括订单金额、运费、税费
      },
      "adjustments":[  // 订单使用优惠情况
        {
          "name":"New Customer Discount",
          "amount":20
        },
        {
          "name":"$10 Off Coupon",
          "amount":10
        }
      ],
      "elements":[   // 订单货品
        {
          "title":"Classic White T-Shirt",   
          "subtitle":"100% Soft and Luxurious Cotton",
          "quantity":2,
          "price":50,
          "currency":"USD",
          "image_url":"http://petersapparel.parseapp.com/img/whiteshirt.png"
        },
        {
          "title":"Classic Gray T-Shirt",
          "subtitle":"100% Soft and Luxurious Cotton",
          "quantity":1,
          "price":25,
          "currency":"USD",
          "image_url":"http://petersapparel.parseapp.com/img/grayshirt.png"
        }
      ]
    },  
    {
      "recipient_name":"Stephane Crozatier",
      "order_number":"12345678902",
      "currency":"USD",
      "payment_method":"Visa 2345",        
      "order_url":"http://petersapparel.parseapp.com/order?order_id=123456",
      "timestamp":"1428444852",       
      "status": "unpaid",
      "address":{
        "street_1":"1 Hacker Way",
        "street_2":"",
        "city":"Menlo Park",
        "postal_code":"94025",
        "state":"CA",
        "country":"US"
      },
      "summary":{
        "subtotal":75.00,
        "shipping_cost":4.95,
        "total_tax":6.19,
        "total_cost":56.14
      },
      "adjustments":[
        {
          "name":"New Customer Discount",
          "amount":20
        },
        {
          "name":"$10 Off Coupon",
          "amount":10
        }
      ],
      "elements":[
        {
          "title":"Classic White T-Shirt",
          "subtitle":"100% Soft and Luxurious Cotton",
          "quantity":2,
          "price":50,
          "currency":"USD",
          "image_url":"http://petersapparel.parseapp.com/img/whiteshirt.png"
        },
        {
          "title":"Classic Gray T-Shirt",
          "subtitle":"100% Soft and Luxurious Cotton",
          "quantity":1,
          "price":25,
          "currency":"USD",
          "image_url":"http://petersapparel.parseapp.com/img/grayshirt.png"
        }
      ]
    }  
  ]
}

失败

{
  "success": false,
  "error": {
    "code": 14222,
    "message": "User not found".
  }
}

Error Code

10001 : User not found

测试

这部分接通后,你可以在 “API 对接” -> “Webhook 管理” 中测试真实订单的返回情况。

调整完成后,我们继续添加物流信息的查询接口

获取物流信息

接口

{
  "request":{
    "category": "ecommerce",
    "method": "packages",
    "id": "packages_213124",
    "page_id": "231231232134111",
    "meta": ""
  },
  "params": {
    "order_number": "12345"
  },
  "pagination" : {
    "page": 1,
    "limit" : 3
  }
}

接口说明

当用户想查询一个订单的所有包裹,或是查看某个特定包裹的送达情况时,我们会向你的 Webhook 发出此接口进行查询。params 字段为顾客的查询依据:

  • order_number 查询该订单的所有包裹。

  • package_number 查询该包裹的状态。

  • 两者不兼容,仅可指定一个。

返回值

成功

{
  "success": true,
  "object": "packages",
  "has_next_page": true,
  "packages": [
    {
      "order_number": 12345,  // 订单号
      "package_number" : "A1231411",  // 包裹编号
      "product_name": "Classic White Shirt",  // 包裹中主要商品的名字
      "carrier": "UPS",  // 承运商
      "tracking_number": "UPS11012", // 承运商包裹编号
      "tracking_url": "http://www.ups.com?id=aaaaaa", // 包裹在承运商处的追踪地址
      "package_status": "on the Way", //包裹状态
      "exp_delivery": "2017-12-12",  // 预订送达日期。如果包裹是已送达状态,即为送达日期
      "image_url" : "http://image.com/image1" // 包裹图片
    },
    {
      "order_number": 23456,
      "package_number": "A12345zzz",
      "product_name": "Classic White Shirt 2",
      "carrier": "USPS",
      "tracking_number": "USPS12345",
      "tracking_url": "http://www.ups.com?id=aaaaaa",
      "package_status": "delivered",
      "exp_delivery": "2018-01-11",
      "image_url" : "http://image.com/image1"
    }
  ]
}

失败

{
  "success": false,
  "error": {
    "code": 14223,
    "message": "Order not found".
  }
}

Error Code

11001 : Order not found

测试

同样地,设置完成后,你可以对这部分消息进行真实情况的测试。

现在,我们已经完成了 订单 & 物流查询流程 的大半。还有最后一个步骤即可大功告成啦:

订单号格式配置

查询的过程是这样的:顾客想要查询订单 -> 机器人询问订单号 / 账号 -> 顾客给到格式正确的信息 -> 机器人识别 -> 返回对应订单信息。

我们已为你创建好了整个流程,你需要做的是在 “Another Account” 的用户输入组件中,设置你网站订单号的简易正则表达式。让机器人在这个流程中,识别订单号并发送请求。

我们提供了两种推荐查询方式:订单号和邮箱。如果你希望增减查询方式,也可以通过调整这里的用户输入组件与对应内容块来实现。具体操作方法见 用户输入插件 说明文档。

如果你选择用两种已有方式,那么现在我们已经可以与 Page 对话,来完成查询:

真实情况测试

我们点击“测试机器人”,开始对话。

如果你还没有发布欢迎消息,你将不会收到机器人的欢迎消息。没关系,我们可以通过测试发送来走通流程。

当然,如果你的 Bot 还没有接入真实顾客,你可以大胆地发布欢迎设置,来测试更真实的情况。

我们为你提供了不同订单状态的所有消息样式,你可以照着测试。在确保没有问题后,即可向所有用户开放。

锦上添花

如果你希望自定义消息内容,我们也为你留出足够的发挥空间。

前往 “API 对接” -> “Webhook 管理” 编辑订单 / 物流状态卡片后的提示内容。你可以随意编辑——添加图片卡片、快速回复、甚至是高级插件!我们对消息类型没有做任何限制,你可以尝试任何新鲜的玩法:)。

以上便是接入订单 & 物流查询的所有设置步骤,有任何疑问,点击这里 联系我们。

Last updated