用途
该技能按订单来源渠道分析订单,生成每个渠道的收入、销量和客单价(AOV)拆分报告。它帮助多渠道商家理解收入来源,包括 Online Store、POS、Draft Orders(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 操作
以下查询已针对 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 次。
Null channel info:来自已删除或未知渠道的订单,归入 “Unknown” 分组。
No orders in window:窗口期内无订单,以 0 收入退出。
最佳实践
与 Online Store 相比,POS 订单客单价异常偏低时,可能提示员工折扣滥用或结账错误,值得交叉核对。
Draft Orders 渠道代表 B2B/批发订单;如果该渠道增长,可能值得建立专门的 B2B 报告工作流。
渠道组合随时间的变化可反映营销支出的效果,结合 average-order-value-trends 可获得完整视图。