

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 为 Shopify 设置集成，以便定期更新 Amazon Connect Customer Profiles
<a name="integrate-customer-profiles-shopify"></a>

要定期更新 Amazon Connect 客户资料，您可以使用亚马逊与 Shopify 集成 AppIntegrations。您首先在 Amazon Connect 和 Shopify 中设置连接，然后验证 Shopify 集成。

## 在 Amazon Connect 和 Shopify 中设置连接
<a name="setup-connection-shopify"></a>

1. 打开 Amazon Connect 控制台，网址为[https://console.aws.amazon.com/connect/](https://console.aws.amazon.com/connect/)。

1. 在“实例”页面上，选择实例别名。实例别名也是您的**实例名称**，该名称显示在您的 Amazon Connect URL 中。下图显示了 **Amazon Connect 虚拟联系中心实例**页面，其中，实例别名周围有一个方框。  
![“Amazon Connect 虚拟联系中心实例”页面, 实例别名。](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/instance.png)

1. 在导航窗格中，选择 **Customer Profiles**。

1. 在 **Customer Profiles 配置**页面上，选择**添加集成**。  
![“Customer Profiles 配置”页面，“添加集成”按钮。](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/customer-profiles-enable-addintegration.png)

1. 在**选择源**页面上，选择 **Shopify**。查看**选择应用程序**页面上列出的应用程序要求。  
![“选择源”页面。](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/customer-profiles-cp-shopify-source.png)

1. 在**建立连接**页面上，选择以下选项之一：
   + **使用现有连接**：这允许您重复使用您可能在中创建的现有 Amazon EventBridge 资源 AWS 账户。
   + **创建新连接**：输入外部应用程序所需的信息。  
![“建立连接”页面。](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/customer-profiles-enable-shopify-establish-connection.png)
     + **连接名称**：提供您的连接的名称。连接名称由使用此连接的集成引用。
     + **连接 URL**：输入您的应用程序连接 URL。此 URL 用于深度链接到在外部应用程序中创建的对象。连接 URL 是应用程序网站上提供的 Shopify Partner 应用程序 URL。

       查找您的 Shopify Partner 应用程序 URL：
       + 登录您的 partners.shopify.com 账户。
       + 转至您的应用程序。
       + 从浏览器中复制 URL。
     + **客户端 ID**：输入您的应用程序客户端 ID。这是一个字符串，用于唯一区分外部应用程序中的客户端。此客户端 ID 是应用程序网站上提供的源名称。您可以使用此处指定的 ID 来标识您希望 Customer Profiles 从中摄取对象的客户端。按照源设置步骤操作后，您的客户端 ID 可能可用。

       查找您的源名称：
       + 登录您的 partners.shopify.com 账户。
       + 转至您的应用程序。
       + 从您的 Amazon EventBridge 事件源中复制源名称。

1. 在**来源设置**页面上，将您的 AWS 账户 身份证复制到剪贴板，然后选择**登录 Shopify**。

1. 按照以下说明设置 Shopify：

   1. 登录 partners.shopify.com。

   1. 在 Amazon 下 EventBridge，选择**创建来源**。

   1. 粘贴您的 AWS 账户 ID 并选择您所在 AWS 的地区。

   1. 设置事件源目标后，返回 Customer Profiles。您将会看到一条提示，指示 Amazon Connect 已成功连接到 Shopify。

1. 在**集成选项**页面上，选择要摄取的源对象并选择其对象类型。

   对象类型可存储您摄取的数据。它们还可定义来自集成的对象在摄取时如何映射到资料。Customer Profiles 提供了默认的对象类型模板，您可以使用这些模板来定义如何将源对象中的属性映射到 Customer Profiles 中的标准对象。您也可以使用从中创建的对象映射。[PutProfileObjectType](https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_PutProfileObjectType.html)  
![“集成选项”页面。](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/customer-profiles-integration-options-shopify.png)

1. 对于**摄取开始日期**，Customer Profiles 开始摄取在添加集成之后创建的记录。
**注意**  
如果您需要历史记录，可以[使用 Amazon S3 作为集成源来导入历史记录](customer-profiles-object-type-mappings.md)。

1. 在**查看和集成**页面上，检查**连接状态**是否显示**已连接**，然后选择**添加集成**。
**注意**  
 添加此集成后，您需要[设置 webhook 订阅](#shopify-webhook-subscriptions)以允许事件开始流入此集成。  
![“查看和集成”页面。](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/customer-profiles-enable-shopify-webhook.png)

1. 设置集成后，返回 **Customer Profiles 配置**页面，**集成**分区将显示当前设置的集成。**上次运行**和**集成运行状况**目前不适用于此类集成。  
![“集成”分区。](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/customer-profiles-enable-shopify-integrations-view-card.png)

   要查看正在发送哪些数据，请选择“集成”，然后选择**查看对象**。

1. 转到下一步，使用 API 设置 **webhook 订阅**，以便事件可以开始流入此集成。

## 设置 webhook 订阅
<a name="shopify-webhook-subscriptions"></a>

1. 使用以下 URL 确保您的应用程序具有所需的权限：

   ```
   https://{shop}.myshopify.com/admin/oauth/authorize?client_id={api_key}&scope={scopes}&redirect_uri={redirect_uri}&state={nonce}
   ```

   其中：
   + `shop` 是您的 Shopify 商店的名称。
   + `api_key` 是您的 Shopify 应用程序的 API 密钥。您可以在 Shopify **应用程序**详细信息页面上找到此信息。
   + `scopes` 的值应为 `read_customers,read_orders,read_draft_orders`。
   + `redirect_uri` 是您在创建应用程序时为其指定的重定向 URI。出于我们的目的，它可以是任何有效的 URL。
   + `nonce` 可以是任何唯一值，用于标识来自其他人的给定授权请求。建议使用时间戳。

   构建 URL 后，将其粘贴到浏览器中。将显示一个与下图类似的 installation/authorization 页面，要求商店所有者为定义的范围提供权限。  
![用于安装和授权应用程序的 shopify 页面示例。](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/customer-profiles-enable-shopify-webhook-embedded-app.png)

1. 选择**安装未列出的应用程序**，以代表您的商店安装和授权应用程序。

   您将进入您输入的重定向 URI，并将授权代码附加到重定向 URI 中作为查询参数。例如：

   ```
   https://example.org/some/redirect/uri?code={authorization_code}&hmac=da9d83c171400a41f8db91a950508985&host={base64_encoded_hostname}&timestamp=1409617544&state={nonce}&shop={shop_origin}&host={host}
   ```

1. 从此 URI 中复制 `authorization_code`。在后续步骤中，您将使用它来获取永久访问令牌。

1. 转到您用于进行 API 调用的任何工具。例如 [CURL](https://curl.se/) 或 [POSTMAN](https://www.postman.com/)。

1. 要获取永久访问令牌，向此端点发出对 Shopify `Admin` API 的 POST 请求：

   ```
   https://{shop}.myshopify.com/admin/oauth/access_token
   ```

   请求正文如下：

   ```
   {
       "code": "authorization_code_received_from_redirect_uri",
       "client_id": "your_app_api_key",
       "client_secret": "your_app_api_secret"
   }
   ```

   此请求返回以下响应：

   ```
   {
       "access_token": "permanent_access_token",
       "scope": "read_customers,read_orders,read_draft_orders"
   }
   ```

1. 记下 `access_token`。这是一个永久令牌，具有上一步中提供的范围。现在，您已准备好创建 webhook 订阅。

1. 对于以下 API 调用，请务必将 HTTP 标头键 `X-Shopify-Access-Token` 设置为从先前调用的响应中收到的 `access_token`。

1. 要设置 webhook 订阅，请对下一步中列出的每个 `topic` 值发出以下 POST 请求：

   端点：`https://{shop}.myshopify.com/admin/api/2021-04/webhooks.json`

   请求正文：

   ```
   {
       "webhook": {
           "topic": "replace_this_with_one_of_the_topics_in_the_list_below",
           "address": "this_is_the_event_source_arn_generated_when_you_created_the_event_integration",
           "format": "json"
       }
   }
   ```

1. 对于每个订阅，将 `topic` 的值替换为以下值：
   + `customers/create`
   + `customers/enable`
   + `customers/update`
   + `draft_orders/create`
   + `draft_orders/update`
   + `orders/cancelled`
   + `orders/create`
   + `orders/fulfilled`
   + `orders/paid`
   + `orders/partially_fulfilled`
   + `orders/updated`

现在，您已经准备好接收来自您的 Shopify 商店的事件。接下来，验证您的 Shopify 集成。

## 验证您的 Shopify 集成
<a name="verify-customer-profile-shopify-connection"></a>

1. 以管理员身份登录您的 Shopify 商店。

1. 在左侧导航菜单中，选择**客户**。

1. 选择**添加客户**。

1. 输入您的客户详细信息。请务必输入电话号码和电子邮件。这些信息不一定属于真实的客户。验证集成后，您将删除此客户输入条目。

1. 保存客户对象。

1. 事件传送应该几乎可以在瞬间完成，但要等一分钟才能传送并创建客户资料。

1. 打开 Amazon Connect 座席体验，然后通过您在 Shopify 商店中输入的电子邮件或电话号码查找用户。您应该能够看到具有相同电子邮件或电话号码的客户资料。

1. 如果您看不到客户资料，则说明您的集成存在问题。故障排除：

   1. 前往 Amazon EventBridge 控制台。

   1. 检查是否 EventSource 处于活动状态，匹配项是否 EventBus 存在且正在运行。

    如果这些方法奏效，请联系 支持 寻求帮助以调查问题。

## 监控您的 Customer Profiles 集成
<a name="monitor-customer-profile-connection-shopify"></a>

建立连接后，如果连接停止运行，请删除集成，然后重新建立集成。

## 如果没有发送对象该怎么办
<a name="fix-customer-profile-connection-shopify"></a>

如果对象发送失败，请选择**流详细信息**以详细了解出了什么问题。

您可能需要删除配置并重新连接到外部应用程序。