English · 页面右上角的「English / 中文」按钮可以切换界面语言。
English summary — A Chrome (Manifest V3) extension for small resellers on Poshmark, Mercari, Depop and Whatnot. It pulls every "to ship" order and its prepaid shipping label from the seller dashboards you are already logged into, then builds one zip per batch: a packing checklist (HTML/CSV) with item photos, SKUs and per-package checkboxes, all labels merged into one print-ready PDF with lookup cards, and instructions for the person who packs. An optional macOS helper (Python, stdlib only) emails the zip through Gmail and can run the whole flow remotely when you email it a command. The UI and docs are in Chinese. Not affiliated with any of these platforms — see "需要注意" below.
把 Poshmark、Mercari、Depop、Whatnot 的待发货订单和预付面单收进一个"批次",检查后一键生成发货文件,可以直接发邮件给打包的同事;人不在电脑旁时,还可以发一封邮件远程触发整个流程。
发货_2026-10-14_183508.zip
├── 打包清单.html ← 每个编号一个包裹:商品图、SKU、数量、订单号链接;
│ 可勾「已拣货 / 缺货」「已打包 / 有问题」、写备注、点「打开面单」,
│ 做完生成「发货结果」表格,复制或存成 PDF 发回给老板
├── 打包清单.csv ← 同样内容,可导入 Google Sheets / Excel
├── 打印-面单带对照卡.pdf ← 推荐打印:每个包裹先一张对照卡(编号 + SKU + 数量 + 商品名),后面紧跟它的面单
├── 打印-packing slip(缺面单).pdf ← 只在有缺面单的包裹时才有:每个缺面单的包裹一张同样格式的卡,
│ 先照着拣货、装袋,袋上写编号,面单补好再贴
├── 使用说明.txt ← 给打包同事的步骤
└── 面单/
├── P01_Poshmark_xxxx.pdf
├── M01_Mercari_xxxx.pdf
└── W01_Whatnot_xxxx.pdf
编号规则:P = Poshmark,M = Mercari,D = Depop,W = Whatnot。一个编号 = 一个包裹 = 一张面单;同一订单里的多件商品共用一个编号。打包清单不含买家姓名和地址。
开发过程和每个版本改了什么见 docs/DEVELOPMENT.md 和 CHANGELOG.md。
- 解压
pack-helper-V版本号.zip,得到pack-helper文件夹,把它放到个人文件夹:/Users/你的用户名/pack-helper(不要放在「下载」里)。 - Chrome 地址栏打开
chrome://extensions,右上角打开 开发者模式。 - 点 加载已解压的扩展程序,选择
pack-helper文件夹。 - 点浏览器右上角的拼图图标,把"发货助手"固定到工具栏。
- 解压新版 zip,得到
pack-helper文件夹。 - 把它拖到个人文件夹,弹出「已存在」时选 替换。
- 在
chrome://extensions点发货助手上的 ↻ 重新加载。
发件邮箱、收件人、批次表格、已打包记录都存在 Chrome 里,重新加载不会丢;Gmail 密码在钥匙串里,邮件程序装在 ~/Library/Application Support/PackHelperMailer/,也不受影响。
注意: 不要在 chrome://extensions 里点「移除」再重新加载,那样会清空设置和已打包记录。只有更新说明里写了「需要重新运行 install.sh」时,才需要重装邮件程序。
当前版本号显示在页面左上角「发货助手」旁边和 chrome://extensions 里。
点扩展图标打开首页:最上面是「需要处理」(平台要重新登录、缺面单、心跳失败等,点一下直接跳过去;没事就显示「一切正常」),下面的「全部功能」列出所有功能卡片。
首页
├─ 🚚 发货 ① 拉取订单 · ② 批次与打包 · ⚙ 发货设置(保存位置、列表地址、链接规则、已打包记录)
├─ 📨 远程指令 开关、白名单、暗号、打包后发给谁
├─ 🩺 运行监控 掉线报警和登录检查 · 远程指令记录 · 诊断
└─ ⚙ 设置(右上角) 邮件账号 · 邮件标题和正文 · 功能管理 · 关于
功能管理(⚙ 设置 → 功能管理):不用的功能可以关掉,关掉后首页不显示,它的定时任务也会停;设置会保留。每个功能都是一个独立的模块,想加自己的功能见 docs/MODULES.md。
点浏览器工具栏上的扩展图标,打开发货助手首页(已经开着就切过去),点「🚚 发货」→「① 拉取订单」→「▶ 一键拉取订单」(旁边的下拉菜单可以只拉某一个平台),扩展会:
- 依次打开 Poshmark、Mercari、Depop、Whatnot 的待发货列表页(Depop 会先自动点「To ship」,只抓没发货的订单;Whatnot 打开 Seller Hub → Shipments 的「All Shows & Marketplace」+「Unfulfilled」,直播和 Marketplace 的待发货包裹都在;已寄出 / 已送达的自动跳过);
- 逐单打开订单详情,读取商品名、图片、SKU、数量、订单号;
- 在订单页找「打印 / 下载面单」并抓取 PDF;
- 每次运行在
发货/下新建一个文件夹发货_日期_时间/,里面放发货发货_日期_时间.zip和报告报告_日期_时间.txt; - 想发邮件就点「✉ 打包并发邮件」(见下面「发邮件」)。
运行期间请保持发货助手页面打开(可以切到别的功能页,顶部会显示进度),Chrome 会在后台开关标签页,这是正常的。拉取顺利结束会自动切到「② 批次与打包」;有问题时留在拉取页,先看「本次拉取情况」。
几个规则:
- 绝不替你花钱:带 Buy / Purchase / Pay / Confirm / Upgrade / $ 字样的按钮一律不点。
- Whatnot:每件商品是一个单独的订单(Order #),同一买家的几件会合进一个 Shipment(打包号)= 一个包裹,编号 W 开头。
- 面单:你先在 Whatnot 确认重量尺寸、点「Generate Label」,扩展只下载已经生成好的面单(状态「Ready to Ship」,按钮「Print Shipping Label」)。这个 PDF 前面是 Whatnot 的 packing slip、最后一页是面单,扩展会自动拆开,打印文件里只放面单页。还是「Needs Label」的包裹标「缺面单」——扩展不会替你点「Generate Label」,也不会点「Generate New Label」「Mark Package as Shipped」。
- SKU:先看标题里的方括号
[…];没有的话,已生成面单的从面单 PDF 里自带的 packing slip 读,还没生成的点「Generate Packing Slip」读(Attributes 里的「SKU」,按订单号对应到每件商品)。官方 packing slip 只用来读 SKU,不会放进发货包(里面有价格和地址)。
- 不重复:进过发货(且有面单)的订单会被记住 45 天,平台上还显示待发货也不会再打包。需要重打时,在「发货 → ⚙ 发货设置 → 清除已打包记录」;只想重打某一单,点那一行「已打包 / 之前打包过」标记上的 ×。
- 缺面单的订单会留在批次里,补上面单后会进入下一个发货文件;本次打包清单上会标红"先不要发"。发货包里另有「打印-packing slip(缺面单).pdf」:每个缺面单的包裹一张卡,格式和对照卡一样(编号、「订单 #…」、SKU × 数量、商品名;Whatnot 每件商品下面写它自己的「Order #…」),同事可以先拣货装袋,袋上写编号;你补好面单、再拉取一次,面单会进下一个发货包,按编号贴上就行。
- 登录过期的平台会被跳过,并写进报告。
第一次使用前:打开「发货 → ⚙ 发货设置」,把「待发货列表页地址」换成你在各平台"待发货 / 需要寄出"页面地址栏里的实际地址,保存。
「发货 → ② 批次与打包」里的「✉ 打包并发邮件」:先打包,再直接交给 Mac 上的邮件程序,用「⚙ 设置 → 邮件账号」里的发件邮箱把 zip 发到你选的邮箱。只点「⬇ 打包下载」不会发邮件。
页面上会一步一步显示:① 正在打包 → ② 正在发送邮件 → ③ 发送成功 ✅ / 发送失败 ❌。失败时会显示具体原因(比如没装邮件程序、密码不对、网络不通),并有「↻ 重新发送」按钮,用刚打好的同一个包重发,不会重新打包。
- 发件邮箱和收件人:「⚙ 设置 → 邮件账号」。发件邮箱需要是 Gmail;收件人每行一个(最多 5 个)。按钮左边的下拉菜单选发给谁,也可以「发给以上全部」。
- 邮件标题和正文可以在「⚙ 设置 → 邮件标题和正文」里改,支持占位符 {日期} {包裹数} {件数} {附件} {缺面单提醒} {包裹清单},下面有实时预览;「恢复默认标题和正文」一键还原。默认正文只有包裹数、件数和三步做法,不列包裹清单。平台统计和调试信息只在电脑上的报告里。
- 密送(BCC):在「⚙ 设置 → 邮件账号」填你自己的邮箱,每封都会悄悄抄一份给你,员工看不到。
- 附件是发货 zip(Gmail 限制附件不能超过约 24MB,超过会显示发送失败,这时请用「打包下载」的文件手动发)。
- 第一次使用要在 Mac 上装一次邮件程序:在「终端」运行
bash ~/pack-helper/mailer/install.sh,发件邮箱填扩展设置里的那个,再粘贴它的 Gmail 应用专用密码(https://myaccount.google.com/apppasswords)。换发件邮箱、或者要用好几个发件邮箱,就为每个邮箱运行一次 install.sh(之前保存的密码不会丢)。 - 装完后完全退出 Chrome 再打开(Chrome 启动时才会读到新装的邮件程序),然后在「⚙ 设置 → 邮件账号」点「测试邮件连接」,显示 ✅ 就可以用了。
- 从 V0.1.21 及以前升级的:要重新运行一次这个版本的 install.sh(旧版是监视下载文件夹,新版是扩展直接调用,旧的监视会被自动删掉)。不再需要给 Python「完全磁盘访问权限」。
- 日志:
~/Library/Application Support/PackHelperMailer/mailer.log。卸载:bash mailer/uninstall.sh。
人不在电脑旁时,用手机给发件邮箱(「⚙ 设置 → 邮件账号」里的那个 Gmail)发一封邮件,这台电脑会自动拉取、打包、发邮件,再回信告诉你结果。
设置:首页「📨 远程指令」
- 开启远程指令,填允许的邮箱(只有这些邮箱发来的指令才执行,比如你的个人邮箱、国内的 QQ / 163 邮箱)。
- 暗号:自己填,或点「随机生成」。指令邮件的标题里要带上暗号。
- 检查间隔:每 1 / 2 / 5 / 10 分钟查一次收件箱。
- 打包后发给:从「邮件」的收件人里选。发件邮箱、密送、邮件标题和正文都和「邮件」共用。
- 勾「开启远程指令」时会自动检查上面几项(以及「邮件」里的发件邮箱)有没有填好:填好就自动保存,没填好会提示缺哪几项、不会开启。默认是关闭的。
- 开启后可以点「立即检查一次收件箱」确认能连上;之后改了暗号、间隔等再点「保存远程设置」。
指令(写在邮件标题里,正文随意):
暗号 打包:拉取三个平台 → 打包有面单的订单 → 发邮件给「打包后发给」的收件人 → 回信告诉你结果。缺面单的不打包,回信里会列出来。默认全选(包括之前打包过的,回信里会注明);设置里取消「远程打包时全选」后只打包表格里勾选的。暗号 拉取:打包前预览。拉取全部平台,不打包、不发邮件,回信列出会打包哪些订单(编号、SKU、商品名、是否之前打包过)、缺不缺面单、有没有平台要重新登录。- 「打包」和「拉取」每次都会把全部平台重新拉一遍(最新状态),不会用批次里的旧数据。
暗号 状态:回信告诉你电脑、插件、邮件程序、平台登录、上次运行的情况。暗号 重发:上次邮件没发出去时,把同一个发货文件再发一次。
每封指令都会先回一封「收到」,做完再回一封结果(接在同一个邮件对话里)。 安全:只认白名单邮箱,而且要通过 Gmail 的发件人验证(DKIM/DMARC),冒充你邮箱的邮件会被忽略;3 小时以前的指令不执行;同一封指令只执行一次。
前提:这台电脑开着、不睡眠,Chrome 开着(可以没有窗口),三个平台在 Chrome 里保持登录。执行时 Chrome 会自动打开一个发货助手页面,做完 10 秒后自动关闭。指令记录在「🩺 运行监控 → 远程指令记录」。
第一次用(或从 V0.1.x 升级)要重新运行一次 mailer/install.sh。
「发货 → ⚙ 发货设置 → 发货文件保存位置」:发货文件保存在 Chrome 的「下载内容」文件夹 / 子文件夹 / 发货_日期时间 /。子文件夹可以改(可以多层,比如 发货/2026)。要换整个根目录,到 Chrome「设置 → 下载内容 → 位置」里改(Chrome 只允许扩展把文件存在下载文件夹里面)。改了子文件夹不影响发邮件。
「发货 → ② 批次与打包」订单表格下面「+ 手动添加订单」:平台拉不到、或者线下卖出的订单在这里加。
- 打包编号:选「新包裹」(打包时自动编号),或者加进表格里已有的某个包裹(和它装同一个箱子、共用面单,平台和订单号自动跟它一样)。
- 平台:Poshmark / Mercari / Depop / Whatnot / 其他(其他的编号以 X 开头)。
- 商品图片、商品名、SKU、数量、订单号、面单(PDF 或图片):商品名和 SKU 至少填一个,其余都可以不填;面单之后也可以拖到表格的「面单」格里。
- 手动加的行重新拉取时不会被删掉或覆盖。
Chrome 设置:如果开了「下载前询问每个文件的保存位置」,请关掉(设置 → 下载内容),否则每次生成都会弹出保存窗口。
- SKU 记忆:Poshmark / Mercari / Depop / Whatnot 没有 SKU 时,在「② 批次与打包」的表格里填一次,下次同名商品自动带出。
- 多件订单:点该行的「+件」,在同一个包裹下再加一件商品。
首页「🩺 运行监控」:「掉线报警和登录检查」、「远程指令记录」、「诊断」(当前状态一览,点「打开完整诊断页」可以导出 / 复制诊断信息)。
掉线报警(心跳):电脑睡眠、断电、断网时插件自己发不出任何提醒,所以要借助外部监控服务。插件每隔几分钟访问一次监控服务给的「心跳网址」报平安,超过设定时间没收到,就由监控服务发邮件 / 推送给你。
- 注册一个免费的监控服务,比如 healthchecks.io(Better Stack、Cronitor 等也可以),新建一个检查(check),「周期」设 5 分钟,「宽限时间」设 10~30 分钟,通知方式选你的邮箱或手机 App。
- 复制它给的网址(比如
https://hc-ping.com/……),填进「心跳网址」,勾「开启掉线报警」,点「立即报一次平安」,监控服务那边显示收到就好了。 - 宽限时间是为了避免偶尔网络慢误报:超过「周期 + 宽限时间」都没收到心跳才会提醒。
每日登录检查:每天定时在后台打开一次 Poshmark、Mercari、Depop、Whatnot 的待发货列表,跳到登录页就用「邮件」里的发件邮箱发一封提醒到「提醒发给」的邮箱(留空就只记录在诊断页面)。只看有没有登录,不点任何按钮、不改批次。一键拉取或远程指令正在运行时,会推迟 15 分钟再查。点「立即检查一次登录」可以马上试一次。前提是电脑开着、装好了邮件程序。
诊断页面:集中显示插件版本、邮件程序、各平台登录状态(每日检查或上次拉取,哪个新显示哪个)、心跳、远程指令、上次拉取的报错和面单抓取失败原因、批次里还缺面单的订单。遇到问题点「⬇ 导出诊断信息」或「复制诊断信息」发给开发者:里面的邮箱已打码,不含暗号、心跳网址的密钥、买家姓名和地址。
远程指令「暗号 状态」的回信里也会写上次心跳和上次登录检查的结果。
整套流程依赖这台电脑上的 Chrome 一直开着、三个平台一直登录着。人不在电脑旁(甚至在国外)时,建议这样准备:
出门前在电脑前做好(远程做不了)
- 「系统设置 → 能量」:关闭自动睡眠,打开「停电后自动启动」;「用户与群组」里打开自动登录。
- Chrome 和远程桌面软件都设成开机自动打开(「系统设置 → 通用 → 登录项」)。
- 装好远程桌面:主力用 ToDesk 或向日葵(国内外都能连),备用 Tailscale + Mac 自带「屏幕共享」。第一次授权「屏幕录制」「辅助功能」权限必须在电脑前点。
- 关闭 macOS 大版本自动升级(升级可能重置这些权限)。有条件的话用有线网络、加一个小 UPS。
- 平台的短信验证码会发到你的手机号,人在外地时要保证还能收到。
出了问题怎么发现、怎么修
| 情况 | 怎么发现 | 怎么修 |
|---|---|---|
| 平台登录失效 | 每日登录检查的提醒邮件;远程指令的回信、「暗号 状态」回信里也会写「XX 需要重新登录」 | 用远程桌面连上这台电脑,在 Chrome 里重新登录,再发一次指令 |
| 网络临时不通 | 回信 / 页面显示发送失败的具体原因 | 自动重试;不行就发「暗号 重发」 |
| 电脑睡眠、断电、Chrome 被关 | 开了掉线报警的话,监控服务会主动发邮件 / 推送;否则就是发指令后一直收不到「收到」回信 | 远程桌面唤醒或打开 Chrome;断电的话靠「停电后自动启动」;实在连不上,请在现场的同事按一下电源键 |
| 平台改版读不到 | 回信 / 「本次拉取情况」/ 诊断页面里有读取失败和诊断信息 | 在诊断页面点「导出诊断信息」,发给开发者调整规则(见下方联系方式) |
- 定时运行:比如每周一、四早上自动拉取并打包。
- 非官方工具:和 Poshmark、Mercari、Depop、Whatnot 没有任何关系。它只是在你已经登录的 Chrome 里,替你打开你自己的卖家后台、读页面、点「下载面单」,节奏和人工操作差不多。各平台的服务条款对自动化工具有不同规定,请自己判断、自担风险;不要高频运行。
- 绝不替你花钱:带 Buy / Purchase / Pay / Upgrade / QR 等字样的按钮一律不点,只下载已经买好的预付面单。
- 页面会改版:读取规则是按 2026 年 10 月的页面写的(Poshmark 订单页、Mercari 订单页 + 商品页、Depop sellinghub 列表)。平台改版后可能读不到,「发货 → ① 拉取订单」的「本次拉取情况 → 详细诊断」会列出页面结构,方便调整;列表页地址和订单链接规则也可以在「⚙ 发货设置」里改。
- 数据只在本机:订单、图片、面单存在这台电脑的 Chrome 里(chrome.storage + IndexedDB);Gmail 应用专用密码只存在 macOS 钥匙串里;不上传到任何服务器。发货文件里不含买家姓名和地址(面单 PDF 本身除外)。
- 固定的扩展 ID:manifest 里的
key让扩展 ID 固定为ohpffalnkclojleccgidgjnlggnpjfab,邮件程序靠它识别扩展。自己 fork 修改时可以删掉key,再把mailer/install.sh里的EXT_ID改成你自己的扩展 ID。 - 邮件程序目前只支持 macOS + Gmail(用钥匙串存密码、用 Chrome Native Messaging 和扩展通信)。
MIT,见 LICENSE。内置的 pdf-lib 也是 MIT 协议(见 lib/pdf-lib.LICENSE.md)。
如果使用中有任何问题,欢迎通过下面的邮箱进行联系和反馈: kiki.redbook@gmail.com