You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Shopify是否支持实时数据变更通知?Node.js后端实现问询

Shopify实时订单通知方案(Node.js)

Shopify提供两种可靠的实时数据变更通知方案,完全可以满足你搭建Node.js服务器接收订单实时通知的需求:

1. Webhooks(HTTP触发,官方推荐)

这是Shopify最常用的实时通知方式,当店铺发生orders/create等事件时,Shopify会主动向你配置的后端URL发送POST请求,携带完整订单数据。

Node.js实现步骤:

  • 在Shopify后台的「设置」→「通知」→「Webhooks」中,添加orders/create事件,填写你的Node.js服务器公网URL(需HTTPS,本地调试可使用Ngrok映射)。
  • 用Express搭建服务,重点要做Webhook签名验证(防止恶意请求),示例代码:
const express = require('express');
const crypto = require('crypto');
const app = express();

// 解析原始请求体(Shopify Webhook要求)
app.use('/shopify-webhook', express.raw({ type: 'application/json' }));

app.post('/shopify-webhook', (req, res) => {
  // 验证签名
  const hmacHeader = req.headers['x-shopify-hmac-sha256'];
  const webhookSecret = '你的Shopify Webhook密钥';
  const generatedHash = crypto
    .createHmac('sha256', webhookSecret)
    .update(req.body)
    .digest('base64');

  if (generatedHash !== hmacHeader) {
    return res.sendStatus(403);
  }

  // 处理新订单数据
  const newOrder = JSON.parse(req.body);
  console.log(`收到新订单: ${newOrder.name}`);
  res.sendStatus(200);
});

app.listen(3000, () => console.log('服务器运行在3000端口'));

2. GraphQL Subscriptions(WebSocket实时推送)

如果你需要真正的Socket(WebSocket)实时连接,可以使用Shopify的GraphQL订阅功能,建立长连接后,Shopify会主动推送订单创建等事件数据。

Node.js实现思路:

  • 使用Shopify API客户端(如shopify-api-node)获取有效访问令牌。
  • 通过WebSocket连接Shopify的GraphQL端点,发送订阅查询:
subscription OrderCreated {
  orderCreated {
    id
    name
    email
    createdAt
  }
}
  • 监听WebSocket消息,实时处理推送的订单数据。

可行性说明

两种方案都完全可行:Webhooks实现简单、可靠性高;GraphQL Subscriptions则是原生WebSocket实时推送,更符合你提到的Socket需求。根据你的业务场景选择即可。

内容的提问来源于stack exchange,提问作者localdata01

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 11:28:06