---
name: r2-goods
version: 1.0.0
category: 开发编程
trigger_words:
tags:
platform: coze
source: DeepseekModel
source_url: https://deepseekmodel.com/skill?id=round2ai-r2-cli-skills-r2-goods-skill-md
---

name r2-goods version 1.3.0 description R2-CLI 商品管理：上架、下架、改价、编辑、挂售、查询。当用户提到商品、上架、下架、改价、修改商品、挂售、选品、库存、店铺、淘宝阿里资产、SPU、SKU、商家编码等关键词时使用此 skill。覆盖闲鱼、淘宝两个平台的所有商品操作。即使用户只是说'帮我看看商品'或'查一下上架情况'，也应触发此 skill。 metadata {"requires":{"bins":["r2-cli"]},"cliHelp":"r2-cli goods --help","related":["r2-shared","r2-auth"]} R2-Goods (v1.3) 商品管理：覆盖闲鱼、淘宝两大平台的商品上架、下架、改价、编辑、挂售、查询。 前置 ：先读取 r2-shared skill（执行规则、版本检查、错误格式、Token 恢复），再读取 r2-auth skill 确保已登录。 Tip ：获取数据后展示给用户选择，不要让用户自己提供 ID。遵守「友好输出原则」（r2-shared）。 Tip ：上架、改价、编辑提交前，必须提醒用户可选 --transport-fee （运费，默认 0 包邮）和 --yhb （验货宝）。 平台路由决策 闲鱼、淘宝是两套独立体系，ID 互不通用。 通用判断规则 条件 判断 用户明确说了平台（"闲鱼下架"、"淘宝改价"） 用对应平台的命令 用户从之前的列表中选了商品 从数据推断：有 jbpSpuId → 淘宝，有 stockGoodsId + status → 闲鱼 用户未指定且无上下文 先查所有平台列表 ，让用户选商品，再根据平台执行 禁止 ：凭上下文猜测平台。刚操作过淘宝不意味着"下架"就一定是淘宝。 上架路由 条件 方式 流程 "选品上架" 或商品在选品库 goods xianyu up 店铺 → 仓库 → 选品 → 价格 → 提交 "挂售" 或用户提供了图片 goods xianyu hang-up 上传图片 → AI 读图 → 类目/属性 → 提交 "阿里资产" 或 "alzc" goods taobao alzc SPU 查询 → SKU 详情 → 选择+价格 → 申请 用户只说"上架"未指定方式 → 必须询问 ："选品上架、挂售上架还是阿里资产上架？" 平台明确但方式未定 ： 用户说了 判断 回复 "闲鱼上架" / "上架到闲鱼" 平台=闲鱼，方式未定 询问 ："选品上架还是挂售上架？" "淘宝上架" / "上架到淘宝" 淘宝只有阿里资产 直接走 goods taobao alzc 查询路由 用户说"查上架列表"/"查询上架情况"且未指定平台： r2-cli goods shops --json → 按 platform 分组 有 xianyu 店铺 → r2-cli goods xianyu listing --json 有 taobao 店铺 → r2-cli goods taobao listing --shop-id <id> --json （每个淘宝店铺都要查） 分区块展示 查询意图细化 ： 用户措辞 判断 命令 "可以上架的"、"选品"、"仓库里的" 选品商品 goods list --stock-id <id> "已上架的"、"上架列表"、"在卖的" 已上架 走查询路由（多平台） "卖出去的"、"已售出" 已售出 goods xianyu listing --status sold 模糊（仅"商品"、"看看商品"） 先问 "看选品商品还是已上架商品？" 按名称定位商品 ：用户提名称没给 ID → 先查列表模糊匹配 goodsName / brand ，匹配到多个展示候选，未匹配到自动展示完整列表。 下架/改价路由 用户说"下架"或"改价"且未指定平台 → 先查所有平台列表 → 用户选择 → 根据平台执行。 操作 闲鱼 淘宝 下架 goods xianyu down --id <id> goods taobao down --jbp-spu-id <> --shop-id <> 改价 goods xianyu price --id <id> --price <> goods taobao price --jbp-spu-id <> --jbp-sku-id <> --shop-id <> --price <> 修改信息 goods xianyu edit --id <id> ... 需通过 SPU 重新申请 命令概览 查询 命令 说明 详细文档 goods shops [--json] 查看已授权店铺 r2-goods-query goods stocks [--json] 查看仓库 r2-goods-query goods list [--stock-id <id>] [--json] 查看选品商品 r2-goods-query goods xianyu listing [--status <>] [--json] 闲鱼上架列表 r2-goods-listing goods taobao listing --shop-id <id> [--json] 淘宝上架列表 r2-goods-alzc 闲鱼操作 命令 说明 详细文档 goods xianyu up --stock-goods-id <> --shop-id <> --price <> --json 选品上架 r2-goods-listing goods xianyu down --id <id> --json 下架 r2-goods-listing goods xianyu price --id <id> --price <> --json 改价 r2-goods-listing goods xianyu edit --id <id> [...] --json 修改商品信息 r2-goods-listing goods xianyu hang-up submit [...] --json 挂售上架 r2-goods-hangup 淘宝阿里资产 命令 说明 详细文档 goods taobao alzc spu-query --shop-id <> --goods-no <> --json 查询可申请 SPU r2-goods-alzc goods taobao alzc spu-detail --shop-id <> --jbp-spu-id <> --json SPU 详情（含 SKU） r2-goods-alzc goods taobao alzc apply --shop-id <> --jbp-spu-id <> --apply-skus '<>' --json 申请上架 SKU r2-goods-alzc goods taobao price --jbp-spu-id <> --jbp-sku-id <> --shop-id <> --price <> --json 改价 r2-goods-alzc goods taobao stock --jbp-spu-id <> --jbp-sku-id <> --shop-id <> --quantity <> --json 改库存 r2-goods-alzc goods taobao down --jbp-spu-id <> --shop-id <> --json 下架 r2-goods-alzc 选品上架 4 步流程 r2-cli goods shops --json → 展示店铺 → 用户选择 shopId r2-cli goods stocks --json → 展示仓库 → 用户选择 stockId r2-cli goods list --stock-id <id> --json → 展示商品 → 用户选择 stockGoodsId r2-cli goods xianyu up --stock-goods-id <id> --shop-id <id> --price <amount> --json → 提交 必填： --stock-goods-id 、 --shop-id （取 shopId 不是 id ）、 --price 提交前提醒：运费默认包邮（ --transport-fee 0 ），可选开启验货宝（ --yhb ）。 详细参数、返回字段和友好输出格式见 r2-goods-listing 。 修改商品信息（edit） 修改已上架商品的标题、描述、品牌、类目、图片、属性等。 不支持改价 ，改价用 goods xianyu price 。 路由决策 ： 用户意图 流程 提供了图片文件 全自动：读图识别 → 上传图片 → 匹配类目/属性/品牌 → 展示变更 → 确认 → 提交 指定了具体字段（"改标题为X"） 直接修改指定字段 说"修改商品信息"但没给细节 提示可提供图片或指定字段 关键约束 （完整流程和参数见 r2-goods-listing ）： 定位优先用 --id <goodsListingId> ，备选 --stock-goods-id + --shop-id --category-id 和 --channel-cat-id 后端必填 ，即使不改类目也要传当前值 --item-attrs 必须包含 props 中所有属性 ，不只是修改的那一个。后端替换整个列表，漏传的属性会被清除 改品牌时建议同时传 --item-attrs （含全部属性+最新品牌值） AI 读图识别后的字段需展示给用户确认 带图片的全自动 8 步流程和详细注意事项见 r2-goods-listing 和 scenes/r2-scene-edit-with-images 。 挂售（hang-up） 挂售模式支持完整商品信息（图片、类目、属性、品牌），与普通上架是不同流程。 核心原则 ： 图片里能看到的，就别问用户 。只问价格和商家编码，其他全部从图片自动提取。 关键注意事项 （完整流程和参数见 r2-goods-hangup ）： 品牌必须双传 ： --brand-name + --item-attrs 中的品牌项（含 propName/channelCatId） 描述自动生成 ：品牌+款式+颜色+材质+货号自动组合 标题自动组合 ：品牌+款式+颜色+尺码+成色，最长 30 单位（半角 0.5/全角 1） stuff-status 成色映射 ：100=全新、-1=准新、99=99新、95=95新、90=9新 价格必填 ：用户不提供时暂停流程，不要替用户决定价格 完整的 3 步流程、属性匹配、必填/可选参数表、常见错误见 r2-goods-hangup 。 场景指南 场景 指南 服装/鞋包挂售 scenes/r2-scene-hangup-fashion.md 带图片修改商品 scenes/r2-scene-edit-with-images.md 批量操作 scenes/r2-scene-batch-operations.md 错误处理 统一错误格式见 r2-shared skill。 错误 恢复 请先运行 r2-cli auth login 登录 执行 r2-cli auth login --json Agent 模式需要 --stock-goods-id, --shop-id, --price 补齐参数 请指定下架条件：--id 或 --stock-goods-id + --shop-id 补充定位参数 --price <amount> 为必填参数 询问用户新价格 getCategoryId() is null edit 缺少 --category-id ，必须传 商家编码重复 更换唯一编码 该商品已上架 更换 out-item-no 标题过长 缩短标题，保留品牌和核心款式 ITEM_CONDITION_NOT_SUPPORT_SIGN 默认关闭售后 YHB_PRICE_NOT_SUPPORT 验货宝价格不在允许范围，调整价格或关闭验货宝 轮询超时 稍后用 listing 命令查看 商品不存在 确认 id 值是否正确