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