有赞 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 仍需由使用者在自己的文档中确认。
功能
脚本每次运行会:
- 从有赞公开商品接口读取店铺
125189737的 MW 商品,默认读取第 1 页最多 100 条。 - 只保留商品标题以
MW开头的商品,读取商品 ID、库存、价格和商品图片。 - 根据标题识别拓竹型号和“官翻 / 全新”,按价格和型号整理商品列。
- 自动维护
MW库存与MW配置两张工作表,保存每日库存和价格历史。 - 按配置选择“只监控官翻”或“全部MW商品”。
- 可选通过 Bark 推送补货、有货、价格变化、新品和商品标题变化。
脚本不是每日签到任务,不会加入 polymerization/daily.js 的 daily 表。
这是公开商品查询脚本,不需要登录有赞账号、Cookie 或抓包。电脑端、iOS 和 Android 抓包教程只适用于需要登录态的每日签到任务;本脚本只需在 AirScript 中授权“网络 API”。
准备工作
- 在金山文档中新建智能表格。
- 打开“效率 - 高级开发 - AirScript 脚本编辑器”,创建文档共享脚本。
- 在服务中授权“网络 API”。
- 打开
single/youzan-mw-inventory.js(opens in a new tab),复制完整内容并保存。 - 手动运行一次。脚本会自动创建或切换到
MW配置和MW库存工作表。 - 确认库存历史正常写入后,再在 WPS 高级开发中创建每天执行的定时任务。脚本说明默认按 Asia/Shanghai 时区每天 08:00 执行。
脚本中的有赞店铺 ID、商品关键词、接口地址和工作表名称已经按原文件保留,不要在配置表中重复填写。
MW配置 字段
脚本会在 MW配置 的 A1:C9 写入配置说明。只填写 B 列,自动维护的字段不要手动修改。
| 单元格 | 字段 | 填写内容 | 默认值 / 说明 |
|---|---|---|---|
B2 | Bark Key | Bark 的设备 Key | 留空也可以;Bark 关闭时不会发送推送 |
B3 | Bark 启用 | 是 或 否 | 否;只有填写 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 日志中给出原因。
- 脚本只做商品库存和价格查询及可选通知,不执行下单、付款或修改商品操作。
官方依据与接口
- AirScript 2.0 概述 (opens in a new tab)
- AirScript 2.0 网络 API (opens in a new tab)
- Sheets.Add 方法 (opens in a new tab)
- Range.Value2 属性 (opens in a new tab)
- 有赞商品搜索页:https://shop125381905.m.youzan.com/wscshop/showcase/feature/search?q=MW&kdt_id=125189737&words_type=common (opens in a new tab)
本地检查
node --check single/youzan-mw-inventory.js
node tests/youzan-mw-inventory.test.js请在 poboll/wps_script 根目录执行以上命令。回归测试使用脱敏的本地响应,覆盖建表、默认官翻范围、范围切换和 Bark 分支;真实接口返回、WPS 表格权限和 Bark 通知仍需在你自己的 AirScript 文档中运行确认。