拓竹有赞库存监控

有赞 MW 拓竹商品库存监控

脚本:single/youzan-mw-inventory.js (opens in a new tab)

这是一个独立的 WPS AirScript 2.0 库存监控脚本,面向拓竹有赞店铺中的 MW 商品。脚本已纳入仓库并保留用户原有的业务逻辑和字段;仅将旧版工作表创建调用改为 AirScript 2.0 官方支持的 Sheets.Add() 后设置 .Name。本页面说明配置和运行方式。

当前状态:🟡 可用(代码验证)。2026-08-03 有赞公开接口只读核对返回 code=0 和 22 条商品记录;AirScript 表格调用、默认配置和通知分支已通过脱敏模拟测试。真实 WPS 表格权限与 Bark Key 仍需由使用者在自己的文档中确认。

功能

脚本每次运行会:

  1. 从有赞公开商品接口读取店铺 125189737 的 MW 商品,默认读取第 1 页最多 100 条。
  2. 只保留商品标题以 MW 开头的商品,读取商品 ID、库存、价格和商品图片。
  3. 根据标题识别拓竹型号和“官翻 / 全新”,按价格和型号整理商品列。
  4. 自动维护 MW库存MW配置 两张工作表,保存每日库存和价格历史。
  5. 按配置选择“只监控官翻”或“全部MW商品”。
  6. 可选通过 Bark 推送补货、有货、价格变化、新品和商品标题变化。

脚本不是每日签到任务,不会加入 polymerization/daily.jsdaily 表。

这是公开商品查询脚本,不需要登录有赞账号、Cookie 或抓包。电脑端、iOS 和 Android 抓包教程只适用于需要登录态的每日签到任务;本脚本只需在 AirScript 中授权“网络 API”。

准备工作

  1. 在金山文档中新建智能表格。
  2. 打开“效率 - 高级开发 - AirScript 脚本编辑器”,创建文档共享脚本。
  3. 在服务中授权“网络 API”。
  4. 打开 single/youzan-mw-inventory.js (opens in a new tab),复制完整内容并保存。
  5. 手动运行一次。脚本会自动创建或切换到 MW配置MW库存 工作表。
  6. 确认库存历史正常写入后,再在 WPS 高级开发中创建每天执行的定时任务。脚本说明默认按 Asia/Shanghai 时区每天 08:00 执行。

脚本中的有赞店铺 ID、商品关键词、接口地址和工作表名称已经按原文件保留,不要在配置表中重复填写。

MW配置 字段

脚本会在 MW配置 的 A1:C9 写入配置说明。只填写 B 列,自动维护的字段不要手动修改。

单元格字段填写内容默认值 / 说明
B2Bark KeyBark 的设备 Key留空也可以;Bark 关闭时不会发送推送
B3Bark 启用;只有填写 Key 且为 才发送
B4执行说明说明文字脚本写入“每天 08:00”,仅作提示
B5监控商品 ID一个或多个有赞商品 ID用英文逗号、中文逗号、分号、空格或换行分隔;留空则不推送
B6推送模式补货时推送有货就推送补货时推送
B7上次监控 ID不填写脚本自动保存上一次的 B5,用于识别新启用的商品
B8新品 / 内容变动推送;推送新品和标题/内容调整
B9商品范围只监控官翻全部MW商品只监控官翻;标题含“官翻”或“翻新”才算官翻

B2 也兼容粘贴完整 Bark URL,脚本会尝试提取 URL 路径中的 Key;推荐直接填写 Bark Key。B7 是自动字段,脚本每次运行后会覆盖它。

MW库存 表结构

  • A1:拓竹监控。
  • A2:记录时间。
  • A3:商品 ID。
  • 从 B 列开始,每个商品占两列:一列“库存”,一列“价格(元)”。商品名称和商品 ID 会合并显示在两列上方。
  • 第 4 行开始是每日历史记录,A 列写入执行时间。
  • 库存增加显示为绿色,库存减少显示为蓝色,价格上涨显示为红色。
  • 当前接口没有返回的历史商品保留在末尾并显示“未返回”,避免接口短暂缺货时丢失历史列。

MW配置 的 A10:C10 及以下还会保存商品 ID、核心名称和完整标题,用于识别新品和商品内容调整。

推送规则

  • 第一次建立历史基线时不推送,避免把初始化当作补货。
  • 补货时推送:监控商品上一条记录为 0、本次库存大于 0 时推送。
  • 有货就推送:监控商品本次有库存时推送。
  • 价格与上一次记录不同、商品新增、标题或内容变化时,会把对应原因写入通知;是否推送商品变化由 B8 控制。
  • B5 中没有商品 ID、商品 ID 本次没有返回或商品不在 B9 范围内时,不发送 Bark。
  • Bark 推送默认关闭,脚本每次只发送 1 条通知。

旧表迁移

如果旧版 MW库存 使用 A1=记录时间A2=商品ID 的单库存列格式,脚本会在不删除历史时间的前提下迁移到库存 + 价格双列结构,旧记录的价格显示为“未记录”。如果 A1 已有其他内容、商品列缺少 ID,或库存列与价格列的 ID 不一致,脚本会停止以避免覆盖数据。

安全与限制

  • 有赞接口和 Bark Key 都由脚本直接访问;Bark Key 会以明文保存在 MW配置!B2,请限制文档共享权限。
  • 不要把 Bark Key 放入 Git、Issue、截图或公开聊天;需要分享表格时先清空 B2。
  • 有赞商品接口、商品字段和店铺展示可能变化。HTTP 错误、库存字段缺失或商品范围为空时,脚本会停止并在 AirScript 日志中给出原因。
  • 脚本只做商品库存和价格查询及可选通知,不执行下单、付款或修改商品操作。

官方依据与接口

本地检查

node --check single/youzan-mw-inventory.js
node tests/youzan-mw-inventory.test.js

请在 poboll/wps_script 根目录执行以上命令。回归测试使用脱敏的本地响应,覆盖建表、默认官翻范围、范围切换和 Bark 分支;真实接口返回、WPS 表格权限和 Bark 通知仍需在你自己的 AirScript 文档中运行确认。