安全地做 Shopify API 做不到的事
一套浏览器自动化(RPA)方案,把历史客户订单追溯关联到 Shopify 后台的 B2B 公司地点——而这恰恰是 Shopify API 根本不提供的那个操作。
问题
在 Shopify B2B 场景里,客户常常在账户被关联到"公司地点"之前就已经下过单。这些订单成了孤儿——享受不到企业价、不出现在公司采购历史里、无法统一开票。而这样的订单可能有成百上千笔。
约束
难点在于:Shopify 的 Admin API(GraphQL 和 REST 都是)没有任何接口能把已存在的订单追溯关联到 B2B 公司。官方唯一支持的路径,是在后台界面里走一套精确的点击流程——解除客户关联、保存、重新关联、并在确认弹窗里勾选"把该客户的订单加入此地点"。这套流程 API 脚本化不了,纯手工又慢得让人崩溃。
方案:精确复刻 UI 流程的 RPA
一个 Playwright 引擎驱动后台界面,走完精确的 5 步向导,由一个携带公司 ID 和客户 ID 的简单 API 调用触发。它被设计成能扛住那些让粗糙脚本崩溃的情况:
- 自动过 2FA——且无需长期持有客户密码。当 Shopify 要求登录时,脚本用密钥种子(pyotp)现算当前的 TOTP 验证码,让多因素认证永远不会卡住无人值守的运行。
- 会话持久化。首次登录成功后,浏览器状态序列化为 JSON 复用,避免反复登录触发 Shopify 的限流和验证码。
- 抗失效选择器。按钮通过 ARIA 角色和标签文本定位,而不是脆弱的 CSS 类名——这样 Shopify 一次界面改版不会悄无声息地弄坏脚本。
- 云端就绪。通过安全 WebSocket 在 Browserless 上无头运行,不用伺候本地 Chrome 的维护。
信任要点:无需共享密码
把店铺密码和 2FA 种子交给一个自动化外包,是实实在在的安全顾虑。这个设计把风险降到最低:客户可以改用一键 Cookie 刷新流程,我无需长期持有任何凭据。解决客户的安全焦虑,是交付的一部分——而不是事后才想起的补丁。
证明
在任何生产运行之前,先在沙箱中验证。随附技术设计与验证文档:完整的 5 步 UI 流程、登录/2FA/重试流程的时序图、抗失效选择器策略,以及一份确认端到端关联成功、成功提示被正确捕捉的沙箱验证报告。机制在碰真实店铺之前就已被证明可行。
还能用在哪
任何 SaaS 后台里、厂商 API 就是不开放的操作:批量后台编辑、跨平台同步(Amazon、HubSpot、POS 系统)、只以手工向导形式存在的数据迁移。如果你的团队在把同一套点击重复几百遍,它就能变成一个安全、无人值守的脚本。
如果你造的机器需要一套界面、一个设备连接,或者数据必须落到别处去——告诉我它现在正让你付出什么代价。你会得到一个诚实的判断:能不能解;通常还会收到一个能跑的东西。从这里开始 →