Duplicate Sku Barcode Detector

Read-only: finds duplicate SKUs or barcodes across all product variants.

shopify-admin-duplicate-sku-barcode-detector


Purpose

Scans all product variants and identifies duplicate SKUs or barcodes — two or more variants sharing the same identifier. Duplicate SKUs cause inventory sync failures, incorrect order routing, and accounting mismatches. Read-only — no mutations.


Prerequisites

  • Authenticated Shopify CLI session: shopify store auth --store --scopes read_products
  • API scopes: read_products

  • Parameters


    ParameterTypeRequiredDefaultDescription
    storestringyesStore domain (e.g., mystore.myshopify.com)
    check_skusboolnotrueCheck for duplicate SKUs
    check_barcodesboolnotrueCheck for duplicate barcodes
    include_blankboolnofalseFlag variants with blank/null SKU
    formatstringnohumanOutput format: human or json

    Safety


    > ℹ️ Read-only skill — no mutations are executed. Safe to run at any time.


    Workflow Steps


  • OPERATION: productVariants — query
  • Inputs: first: 250, select sku, barcode, product { title }, pagination cursor

    Expected output: All variants with SKU and barcode values; paginate until hasNextPage: false


  • Build in-memory map of sku → [variants] and barcode → [variants]

  • Report all keys with more than one variant (duplicates)

  • If include_blank: additionally flag variants where sku is null or empty string

  • GraphQL Operations


    # productVariants:query — validated against 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
        }
      }
    }
    

    Session Tracking


    Claude MUST emit the following output at each stage. This is mandatory.


    On start, emit:

    ╔══════════════════════════════════════════════╗
    ║  SKILL: Duplicate SKU/Barcode Detector       ║
    ║  Store: <store domain>                       ║
    ║  Started: <YYYY-MM-DD HH:MM UTC>             ║
    ╚══════════════════════════════════════════════╝
    

    After each step, emit:

    [N/TOTAL] <QUERY|MUTATION>  <OperationName>
              → Params: <brief summary of key inputs>
              → Result: <count or outcome>
    

    On completion, emit:


    For format: human (default):

    ══════════════════════════════════════════════
    DUPLICATE SKU / BARCODE REPORT
      Variants scanned:      <n>
      Duplicate SKUs found:  <n> groups
      Duplicate barcodes:    <n> groups
      Blank SKUs:            <n>
    
      Duplicate SKU groups:
        SKU "ABC-123"  — used by 2 variants:
          Product A / Blue / L
          Product B / Navy / XL
      Output: duplicates_<date>.csv
    ══════════════════════════════════════════════
    

    For format: json, emit:

    {
      "skill": "duplicate-sku-barcode-detector",
      "store": "<domain>",
      "variants_scanned": 0,
      "duplicate_sku_groups": 0,
      "duplicate_barcode_groups": 0,
      "blank_skus": 0,
      "output_file": "duplicates_<date>.csv"
    }
    

    Output Format

    CSV file duplicates_.csv with columns:

    issue_type, duplicate_value, variant_id, product_title, variant_title, sku, barcode


    Error Handling

    ErrorCauseRecovery
    THROTTLEDAPI rate limit exceededWait 2 seconds, retry up to 3 times
    No duplicates foundClean catalogExit with ✅ no issues found

    Best Practices

  • Run this skill after every bulk product import — imports are the most common source of duplicate SKUs.
  • A shared SKU across products is only valid if you intentionally use the same SKU for reprints or variants — most cases are data errors.
  • Blank SKUs are not duplicates but can cause problems with 3PLs and fulfillment systems that require a SKU for every variant — use include_blank: true to surface them.
  • After identifying duplicates, use the Shopify Admin UI or the productVariantsBulkUpdate mutation to correct SKU values.