SuperAPI AI 工具集

shopify-admin-draft-order-cleanup

办公与效率

查看项目

更新于 10-15 09:35

技能介绍

用途

该技能查询超过可配置天数的开放草稿订单,并可选地删除它们。草稿订单会因被放弃的 B2B 报价、未完成的手动订单或旧集成而不断累积,造成后台杂乱。陈旧草稿还会虚增待处理收入指标。

前置条件

已认证的 Shopify CLI 会话:shopify store auth --store <domain> --scopes read_orders,write_orders

API 权限范围:read_orders、write_orders

参数

store:字符串,必填,无默认值,店铺域名(例如 mystore.myshopify.com)

older_than_days:整数,可选,默认 30,删除早于该天数的草稿

dry_run:布尔值,可选,默认 true,预览将要删除的草稿而不执行变更

format:字符串,可选,默认 human,输出格式:human 或 json

安全性

⚠️ draftOrderDelete 会永久删除草稿订单。已删除的草稿无法恢复。请以 dry_run: true 运行,在提交前审阅列表。删除前请确认没有陈旧草稿代表正在等待客户批准的活跃 B2B 报价。

工作流步骤

操作:draftOrders — 查询 输入:query: "status:open created_at:<='<NOW - older_than_days days>'", first: 250, 分页游标 预期输出:陈旧的开放草稿订单;分页直到 hasNextPage: false

操作:draftOrderDelete — 变更 输入:id: <draft_order_id> 预期输出:deletedId、userErrors

GraphQL 操作

draftOrders:query — 已针对 api_version 2025-01 验证

query StaleDraftOrders($query: String!, $after: String) { draftOrders(first: 250, after: $after, query: $query) { edges { node { id name status createdAt updatedAt totalPriceSet { shopMoney { amount currencyCode } } customer { id displayName defaultEmailAddress { emailAddress } } tags note } } pageInfo { hasNextPage endCursor } } }

draftOrderDelete:mutation — 已针对 api_version 2025-01 验证

mutation DraftOrderDelete($input: DraftOrderDeleteInput!) { draftOrderDelete(input: $input) { deletedId userErrors { field message } } }

会话跟踪

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

开始时输出:

╔══════════════════════════════════════════════╗ ║ SKILL: Draft Order Cleanup ║ ║ 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>

如果 dry_run: true,则为每个变更步骤添加 [DRY RUN] 前缀,并且不执行它。

完成时输出:

对于 format: human(默认):

══════════════════════════════════════════════ OUTCOME SUMMARY Stale drafts found: <n> Drafts deleted: <n> Total value cleared: $<amount> Errors: <n> Output: draft_cleanup_<date>.csv ══════════════════════════════════════════════

对于 format: json,输出:

{ "skill": "draft-order-cleanup", "store": "<domain>", "started_at": "<ISO8601>", "older_than_days": 30, "dry_run": true, "outcome": { "drafts_found": 0, "drafts_deleted": 0, "value_cleared": 0, "currency": "USD", "errors": 0, "output_file": "draft_cleanup_<date>.csv" } }

输出格式

CSV 文件 draft_cleanup_<YYYY-MM-DD>.csv,包含列: draft_id, draft_name, customer_name, customer_email, created_at, total_value, currency, action

错误处理

THROTTLED:API 速率限制超出,等待 2 秒,最多重试 3 次

删除时出现 userErrors:草稿已完成或已取消,记录为跳过,继续

无陈旧草稿:所有草稿都是近期的或不存在,以 0 结果退出

最佳实践

对于销售周期较长的 B2B 店铺,将 older_than_days 设置为 60 或更高。

删除前审阅 dry-run 列表中带有备注或高价值的草稿——这些可能是合法的待处理报价。

对于 B2B 场景,考虑在运行删除步骤前过滤掉带有 b2b-quote 或类似标签的草稿。

作为常规后台维护任务每月运行一次。