用途
该技能用于在指定日期范围内,通过聚合所有订单的订单行项目和退款行项目,按收入、销量和退款率对商品进行排名。适合用于识别表现最佳的商品以及退款率偏高的商品。该技能为只读操作,不会执行任何变更。
主要能力
- 按收入(revenue)、销量(units)或退款率(refund_rate)对商品排名。
- 统计每个商品的销量、毛收入、退款金额、净收入和退款率百分比。
- 支持 human 和 json 两种输出格式。
- 可指定展示的 top_n 商品数量,默认 20。
- 支持 dry_run 预览操作而不执行变更。
使用方式
前置条件:
- 已认证的 Shopify CLI 会话:shopify auth login --store <domain>
- API 权限范围:read_orders
参数:
- store(string,必填):店铺域名,例如 mystore.myshopify.com
- format(string,可选,默认 human):输出格式,human 或 json
- dry_run(bool,可选,默认 false):预览操作而不执行变更
- date_range_start(string,必填):开始日期,ISO 8601 格式,例如 2025-01-01
- date_range_end(string,必填):结束日期,ISO 8601 格式,例如 2025-01-31
- top_n(integer,可选,默认 20):排名输出中展示的 top 商品数量
- sort_by(string,可选,默认 revenue):排名指标,revenue、units 或 refund_rate
工作流程:
- 执行 orders 查询,输入 first: 250、query: "created_at:>='<date_range_start>' created_at:<='<date_range_end>'" 以及分页游标。
- 获取范围内所有订单及其行项目(title、quantity、originalTotalSet、refundableQuantity)和退款行项目。
- 持续分页直到 hasNextPage: false。
- 在内存中按商品聚合:累加 originalTotalSet 得到毛收入,累加退款金额得到净收入,累加数量得到销量,并计算退款率。
输出格式:
- human 格式:以内联表格展示排名,截断至 top_n 条,列为 Rank、Product、Units Sold、Gross Revenue、Refunded Amount、Net Revenue、Refund Rate %。
- json 格式:results 为对象数组,键包括 rank、product_id、product_title、units_sold、gross_revenue、refunded_amount、net_revenue、refund_rate_pct。
适用场景
- 识别指定时间段内的畅销商品。
- 发现退款率偏高的商品,退款率高于 10% 值得进一步调查。
- 使用净收入(扣除退款后)进行更准确的盈利排名。
- 结合 discount-ab-analysis 查看哪些折扣码为 top 商品带来了最多收入。
限制
- 仅支持只读操作,不执行任何变更。
- 需要已认证的 Shopify CLI 会话和 read_orders 权限。
- 对于订单量较大的店铺,建议先使用 30 天窗口;更宽的窗口分页更频繁、耗时更长。
- 若行项目上的 variant 为 null(商品或变体已删除),仍会按标题聚合,但 product_id 将为 null。
- 遇到速率限制(429)时,建议缩小日期范围。
- 若日期范围内无订单返回,建议放宽日期范围。
- 收入数字分为毛收入(退款前)和净收入(退款后)。