Merchant product without a Shopify counterpart
Folding Picnic TableVerify that the product was actually removed from Shopify and why it remains in Merchant Center.
EVIDENCEMerchant file · catalog_presence: merchant_only
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
Filled mark: read · open mark: absent or not run · unknown is not a verdict
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 fixtureFile scope, product language and Shopify connection are visible before the report runs.
The user declared the Merchant list complete for the selected scope.
The Merchant input can be compared with 26 Shopify variants.
English · ENEvery number carries what was read and what was not run.
Coverage: 26 Shopify variants · 8 Merchant products · 0 matched · Merchant list complete · live-page evidence not run.
Verdict, product, evidence and the next check remain in one record.
Folding Picnic TableVerify that the product was actually removed from Shopify and why it remains in Merchant Center.
EVIDENCEMerchant file · catalog_presence: merchant_only
Merchant review codes were not carried by this file, so that family is not counted as clear.
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.
An anonymous first diagnosis with no account connection.
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.
read_products + Merchant file + public product pageEncrypted 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.
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.
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.
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.
These are evidence groups within one audit, not separate products.
A product exists in Shopify but not in Merchant after the selected Merchant scope is proven complete.
At least two Shopify, Merchant or first-HTML prices differ for the same product and context.
Source availability answers differ for the same product and context.
A Merchant product is absent from Shopify; this is stated only when both catalogue scopes are known to be complete.
Comparable source timestamps prove that an older product record trails the current source.
GTIN, MPN or brand differs across sources for the same product; no value is invented.
Variant identity, option context or item grouping prevents a safe one-product decision.
Merchant-reported product or account review state is carried with its source code and severity.
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.
Price and currency
Compares the amount you send against what the page shows, currency included.
Availability
Matches the feed's availability value against the page's structured data.
GTIN / barcode
Validates format, length and check digit. It never invents a value.
Brand
Checks whether the brand field was submitted empty.
Product page reachability
If the link does not open, price and availability are not compared.
Page contradicts itself
If the page disagrees with itself about availability there is no single answer to compare.
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 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.
We do not promise Merchant approval, reinstatement, ranking, sales or revenue. Evidence and Google's decision remain separate.
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.