电商(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 会在同步前验证该签名。
- 在 CRM 中,打开“设置 → 集成”,找到“电商(WooCommerce)”卡片。
- 填写店铺 URL(可选,仅供参考)和一个 Webhook 密钥(你自行选择的字符串),然后点击“保存凭据”。
- 复制出现的“Webhook URL(WooCommerce)”。
- 在你的店铺中,前往 WooCommerce → 设置 → 高级 → Webhook,为以下每个主题创建一个 webhook:Customer created、Customer updated、Order created、Order updated。在每一个中,将 CRM URL 粘贴为 Delivery URL,并使用与 CRM 中保存的相同密钥。
- 返回 CRM 并点击“激活”。
Magento(Adobe Commerce)
Magento 没有标准化的原生 webhook。你需要配置一个模块/集成(或一个观察者),针对每个客户或订单向 CRM URL 发起 JSON POST 请求。该 POST 请求通过密钥进行身份验证,有两种可能的方式(使用你的模块所支持的那种):在 X-Magento-Signature 请求头中以 base64 编码发送请求体的 HMAC-SHA256 签名,或在 X-Magento-Secret 请求头中直接发送明文密钥。
- 在 CRM 中,打开“设置 → 集成”,找到“电商(Magento)”卡片。
- 填写店铺 URL(可选)和一个身份验证密钥(你自行选择的字符串),然后点击“保存凭据”。
- 复制出现的“Webhook URL(Magento)”。
- 配置你的 Magento 模块/集成,针对每个客户和订单向该 URL 发送 POST 请求(JSON),并在 X-Magento-Signature 请求头(HMAC 签名)或 X-Magento-Secret 请求头(明文值)中发送密钥。
- 返回 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”会变为“已取消”;其余情况变为“已确认”。
请将 webhook URL 和密钥视为机密信息。签名/密钥无效的调用会被拒绝。如果你未填写密钥就尝试激活,该集成会保持未激活状态,在一切配置就绪之前不会同步任何内容。
如何测试
- WooCommerce:在 WooCommerce → 设置 → 高级 → Webhook 中,编辑一个 webhook,并在创建测试客户/订单后检查“Webhook 日志”;在 CRM 中检查联系人/销售订单。
- Magento:针对一个测试客户和订单触发你的观察者/集成(带有 "type" 字段的 JSON POST 请求),并在 CRM 中检查记录。
- 重新发送同一个事件,确认 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。