SuperAPI AI 工具集

duplicate-sku-barcode-detector

数据与分析

查看项目

更新于 10-15 11:08

技能介绍

用途

该技能用于扫描 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。

执行流程:

  1. 通过 productVariants 查询拉取所有变体,选择 sku、barcode、product { title } 等字段,并使用分页游标持续获取直到没有下一页。
  2. 在内存中构建 sku → [variants] 与 barcode → [variants] 的映射。
  3. 报告所有对应多个变体的键,即重复项。
  4. 若 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 认证与读取权限;它只做检测和报告,不自动修复重复数据。其他未在资料中说明的限制暂未提供。