跳到内容
All articles
Setup

电商(WooCommerce 与 Magento)

使用你自己的店铺(自带账号模式),将 WooCommerce 或 Magento 店铺的客户和订单同步到 CRM。

除了 Shopify 之外,CRM 还支持同步 WooCommerce 和 Magento 店铺(BYO 模式:自带店铺)。每个客户都会成为一个联系人,每个订单都会成为一个销售订单。我们这边没有任何费用、加价或中间环节:数据直接来自你的店铺。该集成初始状态为未激活:在你填写字段并激活之前不会发生任何事。密钥会加密存储在 CRM 中,且永远不会再次显示。

前置条件

  • WooCommerce:拥有管理员权限的 WordPress/WooCommerce 店铺(用于在 WooCommerce → 设置 → 高级 → Webhook 中创建 webhook)。
  • Magento(Adobe Commerce):可以安装/配置一个模块、集成或观察者(observer),以针对每个客户/订单发送 JSON POST 请求(Magento 没有标准化的原生 webhook)。
  • 在 Sellio 中,需要管理员权限才能保存凭据并在“设置 → 集成”中激活该集成。

WooCommerce

WooCommerce 会发送原生 webhook。你在店铺中创建指向 CRM URL 的 webhook,并定义一个“密钥(Secret)”;WooCommerce 会使用该密钥对每次调用进行签名(HMAC-SHA256,X-WC-Webhook-Signature 请求头),CRM 会在同步前验证该签名。

  1. 在 CRM 中,打开“设置 → 集成”,找到“电商(WooCommerce)”卡片。
  2. 填写店铺 URL(可选,仅供参考)和一个 Webhook 密钥(你自行选择的字符串),然后点击“保存凭据”。
  3. 复制出现的“Webhook URL(WooCommerce)”。
  4. 在你的店铺中,前往 WooCommerce → 设置 → 高级 → Webhook,为以下每个主题创建一个 webhook:Customer created、Customer updated、Order created、Order updated。在每一个中,将 CRM URL 粘贴为 Delivery URL,并使用与 CRM 中保存的相同密钥。
  5. 返回 CRM 并点击“激活”。

Magento(Adobe Commerce)

Magento 没有标准化的原生 webhook。你需要配置一个模块/集成(或一个观察者),针对每个客户或订单向 CRM URL 发起 JSON POST 请求。该 POST 请求通过密钥进行身份验证,有两种可能的方式(使用你的模块所支持的那种):在 X-Magento-Signature 请求头中以 base64 编码发送请求体的 HMAC-SHA256 签名,或在 X-Magento-Secret 请求头中直接发送明文密钥。

  1. 在 CRM 中,打开“设置 → 集成”,找到“电商(Magento)”卡片。
  2. 填写店铺 URL(可选)和一个身份验证密钥(你自行选择的字符串),然后点击“保存凭据”。
  3. 复制出现的“Webhook URL(Magento)”。
  4. 配置你的 Magento 模块/集成,针对每个客户和订单向该 URL 发送 POST 请求(JSON),并在 X-Magento-Signature 请求头(HMAC 签名)或 X-Magento-Secret 请求头(明文值)中发送密钥。
  5. 返回 CRM 并点击“激活”。

Magento 期望的 JSON 格式。客户:{ "type": "customer", "id", "email", "firstname", "lastname", "telephone", "street", "city", "region", "country_id" }。订单:{ "type": "order", "increment_id"(或 "entity_id"), "grand_total", "order_currency_code", "status", "customer_email", "customer_id", "customer_firstname", "customer_lastname" }。"type" 字段(customer 或 order)决定映射方式;缺失的字段会以空值处理。

每个事件会发生什么

  • 客户(Woo 中的 customer.created/updated;Magento 中 type 为 "customer"):客户会被创建或更新为一个联系人,以邮箱进行匹配。CRM 会存储店铺的客户 id(woo_customer_id / magento_customer_id),以避免在重复投递时产生重复记录。
  • 订单(Woo 中的 order.created/updated;Magento 中 type 为 "order"):订单会被创建或更新为一个销售订单(编号、金额、货币和状态),并在存在对应联系人时与其关联。在 Woo 中,“completed”会变为“已开票”,“cancelled/refunded/failed”会变为“已取消”;在 Magento 中,“complete/closed/invoiced”会变为“已开票”,“canceled/holded”会变为“已取消”;其余情况变为“已确认”。
💡 该同步是幂等的:如果店铺重新发送了同一个事件,CRM 会更新已有记录,而不是创建新记录(通过外部 id 识别记录)。只有来自店铺的字段会被更新,你在 CRM 中手动编辑的内容会被保留。

请将 webhook URL 和密钥视为机密信息。签名/密钥无效的调用会被拒绝。如果你未填写密钥就尝试激活,该集成会保持未激活状态,在一切配置就绪之前不会同步任何内容。

如何测试

  1. WooCommerce:在 WooCommerce → 设置 → 高级 → Webhook 中,编辑一个 webhook,并在创建测试客户/订单后检查“Webhook 日志”;在 CRM 中检查联系人/销售订单。
  2. Magento:针对一个测试客户和订单触发你的观察者/集成(带有 "type" 字段的 JSON POST 请求),并在 CRM 中检查记录。
  3. 重新发送同一个事件,确认 CRM 会进行更新(而非重复创建),因为其键值是外部 id。

故障排查

  • WooCommerce:签名无效:店铺中 webhook 的“Secret”必须与 CRM 中保存的 Webhook 密钥完全一致(HMAC-SHA256,X-WC-Webhook-Signature 请求头)。请在两端重新输入相同的值。
  • Magento:调用被拒绝:请正确发送密钥,可以是请求体的 base64 编码 HMAC-SHA256(在 X-Magento-Signature 请求头中),也可以是明文密钥(在 X-Magento-Secret 请求头中)——使用你的模块所支持的方式。
  • 未同步:确认 webhook/POST 请求覆盖了客户和订单(创建/更新两种),并指向了正确的“Webhook URL”;确认该集成已激活。
  • Magento:CRM 中字段为空:请核对预期的 JSON 格式(客户:id/email/firstname/lastname 等;订单:increment_id/grand_total/order_currency_code/status/customer_email 等)。"type" 字段(customer/order)决定映射方式。
  • URL 返回 404:集成已停用,或令牌已更改。请重新激活并重新复制 URL。

Open this article inside the system

Read it and want to see it working?

The account is free and the whole manual is available inside the system, with an assistant that answers from this very content.

免费创建账户
电商(WooCommerce 与 Magento) · Sellio