SKUPrep

Documentation

Everything SKUPrep does, and why it does it that way.

Getting started

  1. Install. SKUPrep asks for read_products and write_products, and nothing else.
  2. Initial sync. On install it reads your whole catalog through Shopify's bulk operations API. A few hundred products take seconds; ten thousand take a few minutes. Progress is on the dashboard.
  3. First audit. When the sync finishes, run the audit. You get a score, a grade and a list of findings grouped by rule.
  4. First fix. Open Fixes. The GTIN grid is usually the quickest place to start.

The ACR score

ACR stands for Agent Commerce Readiness. Each product is scored 0–100: every rule carries a weight, and a product loses that weight in proportion to how much of it fails. Your store score is the average across active products.

GradeScoreWhat it means
A90–100Agent-ready. Identifiers, categories and attributes are in place.
B75–89Good. Some attributes or alt texts missing.
C60–74Gaps that will cost you visibility.
D40–59Missing identifiers or categories on many products.
E< 40Largely invisible to agent-mediated shopping.

The score only moves when your data moves. Resolving a finding can never lower a product's score, and adding one can never raise it.

Rules

Identifiers

Missing GTIN — a variant with no barcode. GTIN is the strongest signal an agent has for matching your product to a shopper's intent. Invalid GTIN — a barcode that is present but fails: it must be 8, 12, 13 or 14 digits, digits only, not a single repeated digit, and must pass the GS1 mod-10 check digit.

SKUPrep never invents a GTIN. It is only ever written from a value you typed into the GTIN grid, which validates the checksum as you type.

Brand and category

Missing brand — an empty vendor, your own shop name, or a placeholder like "default", "vendor", "n/a", "-" or "none". Missing category — no category from the Shopify Standard Product Taxonomy. Incomplete category attributes — the taxonomy defines required and recommended attributes per category (fabric, size type, power source, and so on); this rule finds the ones that are absent or empty.

Content

Missing alt text — an image with no alt text, which is both an accessibility problem and a lost signal. Weak description — under 200 characters of plain text, or mostly markup, or containing no concrete facts at all. Low extractability — a description an AI cannot pull the category's attributes out of, even though it reads well to a human.

Operations

Inconsistent variant options, missing or duplicate SKU and missing weight are reported so you can fix them, but SKUPrep will not generate values for them — a machine-invented SKU or shipping weight is worse than a missing one.

How fixes are applied

A proposal is a single concrete change to a single field. Every proposal shows its source:

You approve what you want and press Apply. SKUPrep groups the approved changes into the smallest number of Shopify API calls, applies them, then re-reads the affected fields from Shopify and compares them against what it expected. A mismatch is reported rather than retried blindly.

Conflicts and rollback

Before writing, SKUPrep re-reads the current value. If it differs from what the proposal was based on — because you or another app changed it in the meantime — that change is marked as a conflict and skipped. Your edit always wins.

Every applied change records its exact previous value. On the History page you can roll back an entire batch or a single change. Rollback follows the same conflict rule: if a value changed after SKUPrep wrote it, the rollback skips that field instead of overwriting the newer value.

Plans and limits

The Free Audit plan runs the audit and shows your score on up to 250 products. Applying fixes requires a paid plan. If your catalog is larger than your plan's SKU limit, the audit still covers everything; the most recently created products over the limit are excluded from fixes, and the app tells you exactly how many.

AI operations are counted per product per task. Cached results are free: re-running a task on a product that has not changed costs nothing.

Support

Write to [email protected]. Include your shop domain and, if it is about a specific change, the batch id from the History page.