电商(Shopify)
使用你自己的店铺(自带账号模式),将 Shopify 店铺的客户和订单同步到 CRM。
电商集成使用你自己的 Shopify 店铺(BYO 模式:自带店铺)。它会监听你店铺的 webhook 并同步到 CRM:每个客户都会成为一个联系人,每个订单都会成为一个销售订单。我们这边没有任何费用、加价或中间环节:数据直接来自你的店铺。
该集成初始状态为未激活:在你填写字段并激活之前不会发生任何事。Webhook 密钥和管理令牌会加密存储在 CRM 中,且永远不会再次显示。
前置条件
- 拥有管理员权限(Shopify 后台)的 Shopify 店铺,以便创建 webhook 并查看签名密钥。
- 店铺的 .myshopify.com 域名。
- 在 Sellio 中,需要管理员权限才能保存凭据并在“设置 → 集成”中激活该集成。
需要填写的内容
- 店铺域名:你店铺的 .myshopify.com 地址(例如 mystore.myshopify.com)。
- Webhook 密钥(API 密钥):Shopify 用于对 webhook 签名的密钥。在 Shopify 后台 → 设置 → 通知 中会显示 webhook 的“签名密钥”(或者,如果你使用自己的应用,则是其 API 密钥)。CRM 使用该值来验证每次调用的签名(HMAC)。
- Admin API 访问令牌(可选):仅当你未来希望 CRM 通过 API 读取店铺数据时才需要。如果只是接收 webhook,留空即可。
如何配置
- 打开“设置 → 集成”,找到“电商(Shopify)”卡片。
- 填写店铺域名和 webhook 密钥,然后点击“保存凭据”。
- 复制出现的“Webhook URL(Shopify)”。
- 在 Shopify 后台 → 设置 → 通知 → Webhook 中,为以下每个主题创建一个指向该 URL 的 webhook(JSON 格式):customers/create、customers/update、orders/create、orders/paid。
- 返回 CRM 并点击“激活”。
每个事件会发生什么
- customers/create 和 customers/update:客户会被创建或更新为一个联系人,以邮箱进行匹配。CRM 会存储 Shopify 的客户 id,以避免在重复投递时产生重复记录。
- orders/create 和 orders/paid:订单会被创建或更新为一个销售订单(编号、金额、货币和状态),并在存在对应联系人时与其关联。当订单已付款时状态变为“已开票”,已取消时变为“已取消”,其余情况为“已确认”。
💡 该同步是幂等的:如果 Shopify 重新发送了同一个 webhook,CRM 会更新已有记录,而不是创建新记录(通过 Shopify id 识别记录)。只有来自店铺的字段会被更新,你在 CRM 中手动编辑的内容会被保留。
请将 webhook URL 和 webhook 密钥视为机密信息。CRM 会用你的 webhook 密钥验证每次调用的 X-Shopify-Hmac-Sha256 签名;签名无效的调用会被拒绝。如果你未填写密钥就尝试激活,该集成会保持未激活状态,在一切配置就绪之前不会同步任何内容。
如何测试
- 在集成已激活且 webhook 已创建的情况下,在 Shopify 后台 → 设置 → 通知 → Webhook 中,对某个 webhook 使用“发送测试通知”(或在店铺中创建一个测试订单/客户)。
- 在 CRM 中,检查联系人对象(针对客户)和销售订单(针对订单):对应的记录应当会出现。
- 重新发送同一个测试,确认不会出现重复。CRM 通过 Shopify id 识别记录。
故障排查
- 签名无效(调用被拒绝):CRM 中保存的 webhook 密钥与 Shopify 的签名密钥不一致。重新复制该密钥(设置 → 通知,或你应用的 API 密钥)并粘贴到 CRM 中。
- 什么都没有同步:确认你为每个主题都创建了一个(JSON 格式的)webhook:customers/create、customers/update、orders/create、orders/paid,且都指向“Webhook URL(Shopify)”。
- URL 返回 404:该集成已停用,或 URL 中的令牌已更改。重新激活并将 URL 重新复制到 Shopify 中。
- 订单没有关联的联系人:关联是通过客户邮箱进行匹配的;如果该客户尚不是联系人,订单会在未关联的状态下被创建,你可以之后再关联。
- 我编辑过的字段被覆盖了:只有来自店铺的字段会被更新,其余内容会被保留。如果某个店铺字段发生了变化,按设计会反映店铺的最新值。