Quick Scan · no sign-up · Shopify × Merchant Center

One product. Three statements.

Your Merchant file, Shopify catalogue and storefront can say different things about the same product. Storefront Drift places each source statement side by side with read-only evidence.

No sign-upRead-onlyUnknown stays separate

READ-ONLY DIAGNOSTIC

Three sources, one record.

M · MERCHANT FILE Recorded in the file.
S · SHOPIFY No catalogue counterpart.
V · STOREFRONT Live-page evidence was not run.

Filled mark: read · open mark: absent or not run · unknown is not a verdict

Two-minute demo · real surfaces, measured values

The homepage is the product.

Three steps describe the production app's acceptance run in product language. Values are not invented; anything unread stays unverified.

Controlled production audit · 24 Aug 2026 · development store + fictional Merchant fixture
  1. Data ready — boundaries visible

    File scope, product language and Shopify connection are visible before the report runs.

    DATA READY8 products found

    The user declared the Merchant list complete for the selected scope.

    CONNECTED AUDITConnection ready

    The Merchant input can be compared with 26 Shopify variants.

    Product data languageEnglish · EN
  2. Report summary — numbers with scope

    Every number carries what was read and what was not run.

    SHOPIFY VARIANTS26
    MERCHANT PRODUCTS8
    EVIDENCE-BACKED FINDINGS8
    UNVERIFIED1

    Coverage: 26 Shopify variants · 8 Merchant products · 0 matched · Merchant list complete · live-page evidence not run.

    Merchant product without a Shopify counterpart 8Price mismatch 0Availability mismatch 0
  3. Evidence row — a safe next action

    Verdict, product, evidence and the next check remain in one record.

    FINDING

    Merchant product without a Shopify counterpart

    PRODUCT / VARIANTFolding Picnic Table
    NEXT ACTION

    Verify that the product was actually removed from Shopify and why it remains in Merchant Center.

    EVIDENCEMerchant file · catalog_presence: merchant_only

    UNVERIFIED

    Merchant review codes were not carried by this file, so that family is not counted as clear.

Four modes, four explicit states

Quick Scan is the mode available without OAuth or an account connection. Connected Audit is access-controlled on the production OAuth path; general App Store distribution is not complete. Monitoring depends on that connection, while Expert Review requires an explicit user request.

Quick Scan

Live · free

An anonymous first diagnosis with no account connection.

ACCESS
Merchant file or a public feed that requires no password
RESULT
Record → first-HTML evidence for a fixed sample of up to 10 products; rescan the same sample after 24 hours

Connected Audit

Access-controlled

Production OAuth and encrypted tenant state are verified, and the connection path is open in the app. Shopify App Store review and general distribution are not complete.

ACCESS
Shopify read_products + Merchant file + public product page
RESULT
Eight discrepancy families, source evidence and a safe next action

Continuous Monitoring

Delivery proven · no active store

Encrypted history, scheduling and the outbox were verified on the production path; a real Resend inbox delivery was observed. The temporary monitoring record was removed and public access remains closed.

ACCESS
Encrypted snapshots and scheduled configuration on the same connection; public access is closed
RESULT
New, resolved and verification-state changes; a measured-change email if monitoring is enabled

Expert Review

Early-access request

A structured review package can be downloaded from a Quick Scan or Connected Audit report, and a user-controlled email request can be prepared. There is no automatic purchase or delivery promise.

ACCESS
A local JSON package after a report + an explicit request from the user's own email app
RESULT
A reviewed, shareable result and prioritised action order

When we cannot tell, we say so

Most tools force every check into pass or fail. A comparison has three answers: same, different, and unknown. Collapsing the third into the second is how a tool tells you to fix something that was never broken.

View evidence details — source comparison layer
City Crescent 12L — Stone RECORD → PAGE
unknown currency USD → EUR
unknown target country not declared in feed
unknown price not compared
UNVERIFIED

A currency difference alone is not a mismatch: two currencies are not compared without knowing which country the feed targets. We saw the difference and refused to call it a mismatch — this product stays in the denominator of the health rate.

Eight discrepancy families inside Connected Audit

These are evidence groups within one audit, not separate products.

Missing from Google

A product exists in Shopify but not in Merchant after the selected Merchant scope is proven complete.

Price mismatch

At least two Shopify, Merchant or first-HTML prices differ for the same product and context.

Availability mismatch

Source availability answers differ for the same product and context.

Ghost product

A Merchant product is absent from Shopify; this is stated only when both catalogue scopes are known to be complete.

Stale data

Comparable source timestamps prove that an older product record trails the current source.

Identifier drift

GTIN, MPN or brand differs across sources for the same product; no value is invented.

Variant inconsistency

Variant identity, option context or item grouping prevents a safe one-product decision.

Merchant review issues

Merchant-reported product or account review state is carried with its source code and severity.

What first-HTML evidence means

We read schema.org JSON-LD and product meta tags from the first server response at the product URL. It is reproducible evidence of published data Google may meet when it first reaches the page.

A price or availability value created on screen after JavaScript runs is outside that evidence. If it is absent from the initial response, we do not pretend it was present; we bound the result as unknown.

What we check

01

Price and currency

Compares the amount you send against what the page shows, currency included.

record → page 518.00 → 440.30
02

Availability

Matches the feed's availability value against the page's structured data.

record → page in_stock → out_of_stock
03

GTIN / barcode

Validates format, length and check digit. It never invents a value.

check digit invalid
04

Brand

Checks whether the brand field was submitted empty.

brand field empty
05

Product page reachability

If the link does not open, price and availability are not compared.

http status 404
06

Page contradicts itself

If the page disagrees with itself about availability there is no single answer to compare.

page's answer two different values

All six checks and what each one means →

What we do and do not do

Official and read-only

We use the file supplied by the user, the public page and, in the access-controlled audit, official Shopify OAuth with only the read_products scope. There is no path that writes Shopify or Merchant data.

Google's scope looks broad

Google's content OAuth scope technically covers reading and writing. Product behaviour is locked to allowed read endpoints; where possible the Merchant role should also be Read-only.

No outcome guarantee

We do not promise Merchant approval, reinstatement, ranking, sales or revenue. Evidence and Google's decision remain separate.

No competitor-data resale

We do not crawl competing stores and resell their data. Scope is limited to catalogues you are authorised to inspect and your own public product pages.