Skip to content

经营自己的店铺 ​

给谁看

已经在 网页端卖配方 走过一遍,现在想把上架、发码、补图这些重复动作交给脚本的卖家。

museav shop 是卖家侧的命令行:建商品、建壁纸专题、上传私有原图、发发货码。 成交仍然发生在闲鱼/小红书,CLI 只负责把物料和码算好交给你。

先分清两种身份 ​

你要做的用哪把钥匙
经营自己的店铺museav login(个人登录)
查团队产出的参考商品租户 Key(museav products)

店铺管理只认个人登录。如果你环境里设了 MUSEAV_API_KEY / STUDIO_API_KEY, 它会盖掉登录态,管理类命令会失败 —— 先 unset 掉再跑。

查看公开合集是匿名只读的,不读本机任何凭据:

bash
museav shop collections list --owner <作者UUID>
museav shop collections show <合集UUID> --public

三种可卖的东西 ​

商品的 kind 有三种,别混:

kind卖的是什么怎么交付
credits出图额度发码,买家核销后到账
wallpaper壁纸原图合集里逐张下载
bundle安装指导 + 自有资产核销后下载一个文本文件

商品与发码 ​

bash
museav shop show
museav shop products list
museav shop products create --file credits.json
museav shop products update <商品UUID> --file patch.json
museav shop products archive <商品UUID>

museav shop codes list
museav shop codes issue --product <商品UUID> --channel xianyu \
  --external-order XY20261019001 --request-id seller-20261019-001
museav shop codes revoke <发货码>

credits.json 长这样:

json
{"title":"100积分创作包","kind":"credits","credits":100,"channel":"xianyu","benefits":["100积分"],"status":"active"}

发码动了真钱,两个细节别省

重试必须带同一个 --request-id。 发码时服务端会从你的真实余额里预留积分, 同一请求号重试不会扣两次、也不会出两个码。换新订单才换新请求号。

撤销只对没被领的码有效。 已被买家核销的码不能撤销,积分也不会回来。

发码返回的 code、claim_url、reply_text、product_copy、product_images 是给外部平台的物料,建议整份存成订单 JSON。返回成功只代表码生成了, 闲鱼/小红书上架、成交、把码发给买家,仍然要你手工做。

壁纸专栏 ​

一个 wallpaper 商品是一个专栏,它下面挂的每个合集是一期专题 —— 对应小红书的「专栏 / 说说」。

完整流程走一遍:

bash
# 1. 先建草稿商品
museav shop products create --file wallpaper-draft.json

# 2. 把公开预览图放进个人素材库
museav projects assets add ./preview.png

# 3. 建合集草稿
museav shop collections save --file collection-draft.json

# 4. 逐张上传付费原图(单张 ≤ 32 MiB)
museav shop collections upload <合集UUID> <条目UUID> ./original.png

# 5. 发布合集
museav shop collections save --file collection-published.json

# 6. 商品上架
museav shop products update <商品UUID> --file wallpaper-active.json

wallpaper-draft.json:

json
{"title":"十月壁纸一期","kind":"wallpaper","credits":0,"status":"draft"}

collection-draft.json —— workspace_id 填 null 表示素材来自个人素材库 (自己发壁纸走这条),填项目 UUID 表示来自某个项目:

json
{"title":"十月一期","issue_key":"2026-10-01","description":"自制壁纸原图","access_mode":"product","status":"draft","product_id":"<商品UUID>","workspace_id":null,"cover_asset_id":null,"asset_ids":["<预览素材UUID>"]}

发布用同一份规格、补上 id、status 改成 published; 最后 wallpaper-active.json 启售:

json
{"collection_ids":["<已发布合集UUID>"],"status":"active"}

save 是全量覆盖,不是打补丁

更新时必须带上完整规格 —— asset_ids、描述、封面,少传一个字段就是把它清空。 少传一个 asset_ids 等于删掉一张已经卖出去的壁纸,服务端会直接拒。

给已发布的专题补图 ​

append 和 save 语义完全不同:它只在末尾追加,已有条目的位置、原图、预览一个都不动。 已购买这一期的买家也能下载新追加的图。

bash
museav shop collections append <合集UUID> ./01.jpg ./02.jpg \
  --preview <素材UUID1> --preview <素材UUID2>

每个 --preview 按顺序对应一张原图,是这张图在个人素材库里的预览素材 id。

免费合集反而要传原图 ​

access_mode: public 的合集不需要 shop collections upload —— 服务端直接把素材库里的母版当公开可下载原图。所以必须把全尺寸原图传进素材库, 传一张降采样预览等于把糊图发出去。

付费合集才逐张上传私有原图,且公开预览不能和付费原图是同一张。

专题怎么排序 ​

专栏内专题的展示顺序按小红书选题笔记的发布时间(合集 JSON 里的 xhs_note_published_at)排,没填就回落到建档时间。

排序在读取侧做,不动 collection_ids 数组 —— 那个数组是交付清单,顺序对交付没有语义。

价格别写死 ​

价格配在商品的 price_cny 上(可空)。没配时平台不显示任何价格数字, 只说「以小红书商品页公布的价格为准」。

平台替你写一个 ¥1.00 出去,和你官方号的真实出手价对不上就是失真。

CLI 组合包 ​

组合包卖的是安装指导 + 自有模板/资产 + 可选积分,不是软件本体。 CLI 本身开源,谁都能装 —— 它没有积分什么都干不了。所以别宣称这是独占授权。

content 是核销后下载的 UTF-8 正文(≤ 200KB),不是本地路径; 下载后由买家自己阅读安装,不会自动执行。

json
{"title":"自有壁纸工作流入门包","kind":"bundle","credits":0,"bundle_content":{"filename":"README.md","content":"# 安装指导\n运行 npm install -g museav-cli,再用 museav login 登录自己的账户。"},"status":"active"}

只放自己有权交付的内容。共享私钥一律不放。

在代码里用 ​

同一套认证,直接调:

ts
import { StudioClient } from 'museav-cli'

const shop = new StudioClient({ baseUrl, token }).shop

方法:show / products / create / update / archive / codes / issue / revoke, 以及 collections.list / show / save / upload / listPublic / showPublic。

公开接口只用 Studio base URL 匿名发 GET。

相关 ​