The merchant-facing view
What WANDRD knows vs. what Shopify exposes
42 semantic fields traced across the merchant page, structured metadata, public Shopify JSON, Storefront Catalog and Global Catalog. Cells are observed statuses, never predictions.
| Field | Merchant PDP | JSON-LD | Shopify JSON | Storefront Catalog | Global Catalog |
|---|---|---|---|---|---|
Global title follows the resolved colour variant on a clustered UPID. | |||||
JSON-LD colour only via product name and offer URLs. | |||||
Global has no Size option; size is encoded in the UPID/title only. | |||||
Global options are inferred and include a phantom label 'PRVKE 31L V4 | Photography Bundle' (exists=false). | |||||
PDP: bundle prices are not in the static card markup; they arrive via variant data / JSON-LD. | |||||
Out-of-stock bundle: excluded from default catalog responses; appears only with filters.available=false. | |||||
PDP: bundle card data-inventory-state='in-stock'; embedded inventory_quantity=36. | |||||
PDP: data-inventory-state='low-stock' (threshold 30, inventory 13). | |||||
PDP: data-inventory-state='oos'; excludes the variant from default catalog results. | |||||
PDP: SKU is in embedded data, not rendered as a visible field. | |||||
Barcodes are not in JSON-LD as gtin; Global Catalog drops SKU and barcode entirely. | |||||
/products.json exposes grams; .json exposes lb; embedded exposes grams. | |||||
Global tech_specs are Shopify-inferred ('Capacity: 31 liters'). | |||||
Only the merchant compare table states the 16-inch limit. | |||||
Global phrasing is inferred; search snippet echoes merchant description. | |||||
Global inferred material line is 'Mesh, polyester, color-matched interior' — a lossy transformation. | |||||
Support column: FAQ page names 'Essential Plus or Pro Plus'. Global only infers 'dedicated camera ... compartments'. | |||||
Tagged 'tripod carry' across Shopify surfaces; not in Global inferred fields. | |||||
Global top_features include 'Integrated AirTag sleeve' (inferred). | |||||
Shopify tag 'airline personal item'; Global does not carry the claim. | |||||
Global infers 'Weatherproof materials'; the 'not submersible' nuance is lost. | |||||
Global seller.links includes policy URLs but no warranty text. | |||||
Global seller.links includes a refund_policy URL only. | |||||
Other surfaces keep only the bundle option label; Global's label is inferred. | |||||
Storefront 1206 chars vs merchant 1220 HTML chars; Global is a generated summary. | |||||
Global has inferred top_features/USP, not the merchant list. | |||||
No FAQPage structured data emitted; support FAQ has a different Q/A set. | |||||
Rendered by Okendo on the PDP; no rating in Storefront Catalog. | |||||
PDP/JSON-LD/embedded: 3,068 (this product). Global: 21,472 (clustered UPID) — conflict. | |||||
16 merchant/Shopify media; JSON-LD 1; Storefront 1; Global 10. | |||||
/products.json alt text contains 'variant_ids:' but the variant_ids array is empty; .js media populates variant_ids; Global media has no alt or association. | |||||
Exposed only in embedded theme JSON (36/13/0) and PDP data attributes; Global exposes availability only. | |||||
Storefront returns 10 merchant collections; PDP breadcrumb links one types collection. | |||||
Storefront exposes tags only on search_catalog results, not lookup/get_product. | |||||
.js prices are minor units without a currency field; .json adds price_currency. | |||||
JSON-LD ProductGroup has no variesBy/hasVariant; Global clusters all eight colour products under one UPID. | |||||
Global get_product returns no product URL; checkout_url is offer-level. | |||||
No selling plans exist; Storefront variant requires only shipping; Global omits requires. |
Statuses come from analysis/source_matrix.csv; click a cell or field name for the fact rows behind it. ABSENT means the source does not represent the field at all — it is not an error.