用途
该技能用于扫描 Shopify 店铺中的全部商品变体,找出两个或更多变体共享同一 SKU 或同一条形码的情况。重复的 SKU 会引发库存同步失败、订单路由错误以及账务不匹配等问题,因此适合在批量导入商品后进行检查。该技能为只读操作,不会执行任何数据修改。
主要能力
- 检查所有商品变体的重复 SKU。
- 检查所有商品变体的重复条形码。
- 可选标记 SKU 为空或 null 的变体。
- 支持 human(人类可读)或 json 两种输出格式。
- 扫描完成后生成 CSV 文件,默认文件名为 duplicates_<YYYY-MM-DD>.csv,包含 issue_type、duplicate_value、variant_id、product_title、variant_title、sku、barcode 等列。
- 分页查询变体,每页 250 条,直到 hasNextPage 为 false。
使用方式
前置条件:
- 已认证的 Shopify CLI 会话,命令为 shopify store auth --store <domain> --scopes read_products。
- API 权限范围:read_products。
参数说明:
- store:必填,店铺域名,例如 mystore.myshopify.com。
- check_skus:可选,默认 true,是否检查重复 SKU。
- check_barcodes:可选,默认 true,是否检查重复条形码。
- include_blank:可选,默认 false,是否标记 SKU 为空白或 null 的变体。
- format:可选,默认 human,输出格式为 human 或 json。
执行流程:
- 通过 productVariants 查询拉取所有变体,选择 sku、barcode、product { title } 等字段,并使用分页游标持续获取直到没有下一页。
- 在内存中构建 sku → [variants] 与 barcode → [variants] 的映射。
- 报告所有对应多个变体的键,即重复项。
- 若 include_blank 为 true,则额外标记 sku 为 null 或空字符串的变体。
查询操作使用 GraphQL,已在 api_version 2025-01 下验证。示例查询如下:
query VariantIdentifiers($after: String) { productVariants(first: 250, after: $after) { edges { node { id sku barcode title product { id title handle status } } } pageInfo { hasNextPage endCursor } } }
输出与安全
安全说明:该技能为只读技能,不执行任何修改操作,任何时间均可安全运行。
会话跟踪:运行过程中会输出技能横幅、每一步的查询或变更状态,以及完成后的汇总报告。human 格式会显示扫描的变体数量、重复 SKU 组数、重复条形码组数、空白 SKU 数量以及具体重复组,并提示输出 CSV 文件名。json 格式会输出包含 skill、store、variants_scanned、duplicate_sku_groups、duplicate_barcode_groups、blank_skus、output_file 等字段的对象。
错误处理:
- 若遇到 THROTTLED(API 速率限制),等待 2 秒后重试,最多重试 3 次。
- 若未发现重复项,则退出并提示 ✅ no issues found。
适用场景与限制
适用场景:建议在每次批量导入商品后运行,因为导入是重复 SKU 最常见来源。若确实有意在再版或变体间使用同一 SKU,则共享 SKU 可能有效,但多数情况属于数据错误。空白 SKU 本身不算重复,但可能影响要求每个变体都有 SKU 的 3PL 与履约系统,可用 include_blank: true 发现它们。找到重复项后,可使用 Shopify 后台界面或 productVariantsBulkUpdate 变更来修正 SKU 值。
限制:该技能仅针对 Shopify 平台,且需要相应的 CLI 认证与读取权限;它只做检测和报告,不自动修复重复数据。其他未在资料中说明的限制暂未提供。