用途
该技能用于按订单来源渠道分析订单,生成每个渠道的收入、销量和客单价(AOV)拆分报告。它帮助多渠道商家了解收入来自哪里——在线商店、POS、草稿订单(B2B)、移动应用或第三方渠道。只读,不执行任何变更操作。
前置条件
已认证的 Shopify CLI 会话:shopify store auth --store <domain> --scopes read_orders
API 权限范围:read_orders
参数
store(字符串,必填,无默认值):商店域名(例如 mystore.myshopify.com)
days_back(整数,可选,默认 30):回溯窗口天数
format(字符串,可选,默认 human):输出格式,human 或 json
安全性
只读技能——不执行任何变更操作,可随时安全运行。
工作流程
-
操作:orders — 查询 输入:query: "created_at:>='<NOW - days_back days>'", first: 250, select channelInformation { channelDefinition { handle, displayName } }, totalPriceSet, lineItems { quantity }, 分页游标 预期输出:带渠道归属的订单;分页直到 hasNextPage: false
-
按 channel.displayName 分组;计算每个渠道:订单数、总收入、总销量、AOV
GraphQL 操作
orders:query — 已针对 api_version 2025-01 验证
query OrdersByChannel($query: String!, $after: String) { orders(first: 250, after: $after, query: $query) { edges { node { id name createdAt totalPriceSet { shopMoney { amount currencyCode } } channelInformation { channelDefinition { handle displayName } } lineItems(first: 50) { edges { node { quantity } } } } } pageInfo { hasNextPage endCursor } } }
会话跟踪
Claude 必须在每个阶段输出以下内容。这是强制性的。
开始时输出:
╔══════════════════════════════════════════════╗ ║ SKILL: Sales by Channel Report ║ ║ 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(默认):
══════════════════════════════════════════════ SALES BY CHANNEL (<days_back> days) Total revenue: $<amount> Total orders: <n>
Channel Orders Revenue AOV Units Share ───────────────────────────────────────────────────────────── Online Store <n> $<n> $<n> <n> <pct>% POS <n> $<n> $<n> <n> <pct>% Draft Orders <n> $<n> $<n> <n> <pct>% Output: sales_by_channel_<date>.csv ══════════════════════════════════════════════
对于 format: json,输出:
{ "skill": "sales-by-channel-report", "store": "<domain>", "period_days": 30, "total_revenue": 0, "total_orders": 0, "currency": "USD", "by_channel": [], "output_file": "sales_by_channel_<date>.csv" }
输出格式
CSV 文件 sales_by_channel_<YYYY-MM-DD>.csv,包含列: channel_handle, channel_name, order_count, total_revenue, aov, total_units, revenue_share_pct, currency
错误处理
错误:THROTTLED 原因:API 速率限制超出 恢复:等待 2 秒,最多重试 3 次
错误:渠道信息为空 原因:来自已删除/未知渠道的订单 恢复:归入 "Unknown" 分组
错误:窗口内无订单 原因:静默期 恢复:以 0 收入退出
最佳实践
与在线商店相比,POS 订单的 AOV 异常低可能表明员工折扣滥用或结账错误——值得交叉核对。
草稿订单渠道代表 B2B/批发订单——如果增长,可能需要专门的 B2B 报告工作流。
渠道组合随时间的变化表明营销支出在哪里起作用——结合平均订单价值趋势可获得完整视图。