用途:计算重复购买率,即在定义的时间窗口内首次下单的客户中,在首次购买后设定天数内再次下单(至少 2 个订单)的客户所占百分比。同时按首次购买的商品或商品系列进行细分,识别哪些商品带来最高的复购行为。该技能为只读操作,不执行任何数据变更。
前提条件:需要已认证的 Shopify CLI 会话,命令为 shopify store auth --store <domain> --scopes read_customers,read_orders;API 权限范围为 read_customers、read_orders。
参数:store(字符串,必填,店铺域名,如 mystore.myshopify.com);days_back(整数,默认 90,获客窗口,即客户首次购买发生在此周期内);repeat_window(整数,默认 90,首次购买后用于查找重复订单的天数);segment_by(字符串,默认 none,可按 product 对复购率进行细分);format(字符串,默认 human,输出格式为 human 或 json)。
安全说明:只读技能,不执行任何变更,随时可安全运行。
工作流程:第一步查询 customers,筛选条件为 created_at 晚于当前时间减去 days_back 天,取前 250 条,选择 id、numberOfOrders、createdAt,得到窗口内获取的客户。第二步查询 orders,筛选条件为 created_at 晚于当前时间减去(days_back 加 repeat_window)天,取前 250 条,选择客户 id、createdAt、lineItems 中的商品 id 与标题及分页游标,用于构建每位客户的购买历史和首次商品映射。对每位已获取客户:若其在 repeat_window 天内拥有至少 2 个订单,则视为重复购买者。计算总体比率;若 segment_by 为 product,则按首次购买的商品分组统计。
GraphQL 操作:包含两个查询,均针对 api_version 2025-01 验证。AcquiredCustomers 查询接收 query 与 after 参数,返回 customers 连接,节点含 id、createdAt、numberOfOrders、defaultEmailAddress(emailAddress)以及 pageInfo(hasNextPage、endCursor)。CustomerOrderHistory 查询接收 query 与 after 参数,返回 orders 连接,节点含 id、createdAt、customer(id)、lineItems(前 5 条,含 product 的 id 与 title)以及 pageInfo。
会话跟踪:Claude 必须在每个阶段输出指定内容。开始时输出包含技能名、店铺域名和 UTC 启动时间的方框。每步之后输出 [N/TOTAL] <QUERY|MUTATION> <OperationName>,以及参数摘要和结果数量或结果。完成时,若 format 为 human(默认),输出复购率报告,含获客窗口、重复窗口、获客客户数、重复购买者数、重复率,以及按首次商品分组的明细,并指明输出文件 repeat_purchase_<date>.csv;若 format 为 json,则输出包含 skill、store、acquisition_days、repeat_window_days、customers_acquired、repeat_purchasers、repeat_rate_pct、by_product、output_file 的 JSON 对象。
输出格式:CSV 文件 repeat_purchase_<YYYY-MM-DD>.csv,列为 customer_id、first_order_date、first_product、total_orders、is_repeat、days_to_repeat、total_spent。
错误处理:THROTTLED 表示 API 速率超限,等待 2 秒后重试,最多 3 次;游客结账客户没有可关联订单的客户记录,应从分析中排除;历史数据不足(店铺比窗口更新)时,分析可用的时间段。
最佳实践:对于大多数非订阅制电商店铺,90 天内 25% 到 35% 的复购率是健康基线。高复购率的商品是“入口”商品,应在获客活动中优先推广。使用 segment_by: product 可识别哪些商品能创造忠诚客户、哪些只带来一次性买家。可与 customer-cohort-analysis 搭配,更深入查看长期留存趋势。