扣子+Shopify API实战指南:订单自动查询全流程
订单状态查询慢?每次只能手动登录Shopify后台逐条翻查?完全可以通过Coze机器人自动搞定——调用Shopify私有应用API,机器人即可实时拉取订单的支付与发货状态,实现从“已付款”到“已发货”的自动流转,彻底解放人工盯单精力。
下面拆解具体搭建流程。核心思路分三步:申请API权限、在Coze工作流中配置HTTP请求、解析返回数据并生成自然语言回复。
准备工作:获取Shopify私有应用API权限
登录Shopify后台,依次进入「设置 → 应用和销售渠道 → 开发者服务 → 创建私有应用」。应用名称填写易记的名字,例如“Coze订单查询”。关键操作是在Admin API权限中勾选【Orders】→【Read products, customers, orders and more】——其他权限一律不选,遵循最小授权原则。这一步如果遗漏,后续所有请求都会返回403,踩过坑的都懂。
保存后页面会生成API Key、Password和Store Front URL。硬件提醒:Password属于永久密钥,泄露等于店铺数据完全暴露,严禁写入Bot代码、群聊或文档中。
在扣子中配置HTTP请求节点
新建Bot,编辑工作流,拖拽一个「HTTP 请求」节点。有两种调用Orders API的方式,选顺手即可。
方式一:直接硬编码URL
URL填写:https://{{store_name}}.myshopify.com/admin/api/2023-10/orders/{{order_id}}.json。{{store_name}}替换为你的店铺域名前缀(比如yourstore),{{order_id}}留作变量由用户输入。请求方式选GET,Headers添加一项 X-Shopify-Access-Token,值填入刚才记录的Password。
方式二:用变量拼接,更灵活
在Coze变量面板新增字符串变量shop_domain,值设为yourstore.myshopify.com;再新增order_id,由用户输入传入。HTTP节点的URL改为:https://{{shop_domain}}/admin/api/2023-10/orders/{{order_id}}.json。这样URL中无硬编码店铺域名,后续切换店铺只需修改变量值,无需改动工作流。
解析返回JSON并提取关键状态字段
Shopify返回的数据是嵌套JSON结构。订单支付状态和发货状态分别位于order.financial_status和order.fulfillment_status——注意,不是order.status,该字段根本不存在,新手常在此处卡壳。
在HTTP节点后添加「JSON解析」节点。路径填写$.order.financial_status,输出变量设为pay_status;再增加解析路径$.order.fulfillment_status,输出变量设为ship_status。
这里有个坑:若订单尚未发货,fulfillment_status会返回null。默认情况下解析节点遇到null会报错中断流程,因此务必勾选「允许空值」选项,否则Bot会卡死。
构造自然语言回复消息
最后加入「文本生成」节点,提示词直接书写:
“订单#{{order_id}}当前状态:支付{{pay_status}},发货{{ship_status | default: '未发货'}}。”
| default: '未发货'为Liquid语法,Coze原生支持——无需额外写if判断,空值自动兜底为“未发货”,简洁高效。将这段文字直接粘贴到提示框即可。
至此,完整查询流程串联完成。用户输入订单编号,机器人自动返回类似“支付已付款,发货已发货”或“支付已付款,发货未发货”的自然语言消息,彻底告别手动翻查后台。
