Skip to content
Menu
VARAi

Store analysis that maps a catalogue before it syncs

Sync Settings reads a sample of a client's store, measures which fields carry colour and size, and proposes mappings for a person to confirm before any sync uses them.

Catalogue sync · Data mapping · Shopify · Magento · Human approval

product
Store analysis and catalogue sync
platform
VARAi
role
CTO & forward-deployed AI engineer

Results

Live run on a heritage British eyewear store; 6 accessories excluded and named
43 products · 1,605 variants
Frame, lens and generic colour; lens, bridge, temple and frame width, each with its own coverage
7 targets
Same store, two live runs: unsafe proposals refused instead of shown
6 → 2 proposals
Test cases across the Sync Settings analyser, queue, routes and UI
~680 tests

Problems solved

8 problems
  1. 01One product per SKU couldn't hold variants

    broke
    Variants sat in a side table, so each colourway had nowhere to keep its own images, 3D model or try-on state.
    changed
    I rebuilt sync so every variant is a full internal product under one public parent, keyed by product and variant id.
    proof
    Duplicate SKUs are split by variant id and logged, never merged onto one row.
  2. 02A fully synced store showed zero coverage

    broke
    Coverage filtered on a store-id column that older products never had, so every product synced before it was invisible.
    changed
    Scope by tenant and source platform, and drop the filter instead of writing a backfill.
    proof
    Recorded as the root cause in the sample-first ADR.
  3. 03Reference ids proposed as colours

    broke
    A standard Shopify metafield holds pointers, not colours, and it ranked as the top proposal at 47% coverage.
    changed
    Reference-shaped values are now refused in the extractor sync itself uses, not just in the report.
    proof
    The second live run marked it Ambiguous and caught seven more fields of the same kind.
  4. 04Accessories skewed the numbers

    broke
    Sun-clips sat in the same store category as sunglasses, so category data could not exclude them.
    changed
    A word-boundary name rule excludes clips, and every exclusion is reported by name.
    proof
    A frame called Eclipse is kept while Sun Clips is excluded.
  5. 05The first 100 products aren't the catalogue

    broke
    Stores return oldest products first, so a head-of-list sample misses newer field naming.
    changed
    A deterministic sample takes the rarest product shapes first and flags shapes resting on a single product.
    proof
    The same store always yields the same sample, and tests assert the exact selection.
  6. 06Guessed confidence was wrong

    broke
    Scoring a field by its source type disagreed with what the extractor actually returned.
    changed
    Each field is probed through the real extractor and the lowest score across the sample is reported.
    proof
    The same colour field scores 0.8 on a single-variant product and 0.3 on a multi-variant one.
  7. 07Large catalogues broke paged queries

    broke
    Products × variants × metafields exceeded Shopify's 1,000-point query cost limit.
    changed
    A bulk-operation index polled by its own id, checkpointed so a crash never orphans it, and failed on any incomplete row.
    proof
    Byte caps, timeouts, retry limits and per-product caps (250 variants, 250 metafields) are enforced and tested.
  8. 08Magento sync, hardened end to end

    broke
    The Magento connector wasn't ready for real stores: authentication, large payloads, image galleries and 3D links all needed work.
    changed
    Seven fixes across key handling, tenant auth, byte-based batching, full image galleries and 3D model linking.
    proof
    Each fix ships with a test that fails if it is reverted.

Analyse the client's real data before acting on it, show the evidence and its measured confidence, and let a person approve the mapping.

stack · Node.js / Express · PostgreSQL · Shopify Admin GraphQL · Shopify Bulk Operations · Magento (PHP) · WooCommerce · React · TypeScript · Jest

More from VARAi

Need a senior AI engineer who can own delivery?

Tell me what you're building and where it breaks. I reply to every message myself.

Contract CTO · Principal AI engineering · Forward-deployed AI engineering · Enterprise AI architecture