SuperAPI AI 工具集

shopify-admin-refund-rate-analysis

数据与分析

查看项目

更新于 10-15 09:36

技能介绍

用途

该技能用于分析带有退款的订单,按商品、时间段和渠道计算退款率,揭示哪些商品或商品组产生了最多的退款活动。它是只读的,不会执行任何变更操作。

主要能力

  • 按商品、供应商(vendor)或时间段(period)对退款数据进行分组统计。
  • 计算退款率:refund_rate = refunded_units / total_units_sold × 100。
  • 输出整体退款率、退款订单数、退款总额等汇总信息。
  • 生成 CSV 文件,包含分组、分组名称、总售出件数、退款件数、退款率、退款总额、货币等列。
  • 支持 human(默认)和 json 两种输出格式。

使用方式

前置条件

  • 已认证的 Shopify CLI 会话:shopify store auth --store <domain> --scopes read_orders
  • API 权限范围:read_orders

参数

参数 类型 必填 默认值 说明
store string 是 — 店铺域名(例如 mystore.myshopify.com)
days_back integer 否 30 回溯窗口
group_by string 否 product 分组方式:product、vendor 或 period
min_orders integer 否 5 纳入退款率计算的最小订单数
format string 否 human 输出格式:human 或 json

工作流程

  1. 查询订单:使用查询条件 created_at:>='<NOW - days_back days>',每次取 250 条,选择 refunds { refundLineItems }、lineItems,并使用分页游标,直到 hasNextPage: false。
  2. 对每个退款行项目记录:商品、供应商、退款数量、退款金额。
  3. 按 group_by 聚合,计算退款率。

GraphQL 操作

# orders:query — validated against api_version 2025-01
query OrdersWithRefunds($query: String!, $after: String) {
  orders(first: 250, after: $after, query: $query) {
    edges {
      node {
        id
        name
        createdAt
        lineItems(first: 50) {
          edges {
            node {
              id
              quantity
              product {
                id
                title
                vendor
              }
              variant {
                id
                sku
              }
            }
          }
        }
        refunds {
          id
          createdAt
          totalRefundedSet {
            shopMoney {
              amount
              currencyCode
            }
          }
          refundLineItems(first: 50) {
            edges {
              node {
                quantity
                lineItem {
                  product {
                    id
                    title
                    vendor
                  }
                  variant {
                    id
                    sku
                  }
                }
              }
            }
          }
        }
      }
    }
    pageInfo {
      hasNextPage
      endCursor
    }
  }
}

会话跟踪

Claude 必须在每个阶段输出以下内容,这是强制要求。

开始时输出:

╔══════════════════════════════════════════════╗
║  SKILL: Refund Rate Analysis                 ║
║  Store: <store domain>                       ║
║  Started: <YYYY-MM-DD HH:MM UTC>             ║
╚══════════════════════════════════════════════╝

每步之后输出:

[N/TOTAL] <QUERY|MUTATION>  <OperationName>
          → Params: <brief summary of key inputs>
          → Result: <count or outcome>

完成时输出:

format 为 human(默认)时:

══════════════════════════════════════════════
REFUND RATE ANALYSIS  (<days_back> days)
  Orders analyzed:       <n>
  Orders with refunds:   <n>
  Overall refund rate:   <pct>%
  Total refunded:        $<amount>

  By <group_by>:
    "<name>"   Sold: <n>  Refunded: <n>  Rate: <pct>%
  Output: refund_rate_<date>.csv
══════════════════════════════════════════════

format 为 json 时输出:

{
  "skill": "refund-rate-analysis",
  "store": "<domain>",
  "period_days": 30,
  "orders_analyzed": 0,
  "orders_with_refunds": 0,
  "overall_refund_rate_pct": 0,
  "total_refunded": 0,
  "currency": "USD",
  "output_file": "refund_rate_<date>.csv"
}

输出格式

CSV 文件 refund_rate_<YYYY-MM-DD>.csv,列包括: group, group_name, total_units_sold, refunded_units, refund_rate_pct, total_refund_amount, currency

适用场景

  • 识别退款率异常偏高的商品或商品组。
  • 按供应商分组,判断质量问题是否集中在某个供应商。
  • 在季度供应商评审前运行,为关于商品质量和退单的数据驱动讨论提供支持。
  • 与 return-reason-analysis 交叉参考,判断问题属于商品质量、尺码错误还是客户预期不符。

限制与安全

  • 只读技能,不执行任何变更操作,可随时安全运行。
  • 需要已认证的 Shopify CLI 会话和 read_orders 权限。
  • 错误处理:
    • THROTTLED(API 速率限制):等待 2 秒,最多重试 3 次。
    • 窗口内无退款:正常情况,以 0% 退款率退出。
    • 退款行项目上的商品已删除:在分组中记录为 "deleted product"。

最佳实践

  • 特定商品退款率高于 5–10% 通常意味着商品详情页、质量或预期不符问题。
  • 使用 group_by: vendor 识别质量问题是否集中在特定供应商。
  • 与 return-reason-analysis 交叉参考,理解问题根源。
  • 在季度供应商评审前运行,支持数据驱动的对话。