Public data index / Product Catalog Structured Data Pack
Product Catalog Structured Data Pack
A one-time, documented product markup package built from your own catalog export: a normalized snapshot, a platform-appropriate JSON-LD template with dynamic bindings, an installation map, and a dated validation of one concrete sample render.
$349 one-time, proposed price.
Who this is written for
This is written for an ecommerce operations or merchandising lead at a small online retailer — the person who already owns the catalog export, knows which fields are actually populated, and can hand a theme change to a developer or apply it themselves. It assumes you want product markup derived from your real catalog data rather than reverse-engineered from a rendered page, and that you would rather see gaps labeled than filled in with plausible guesses.
The name is deliberately narrow. It would be easy to describe this as making a catalog agent-readable, but that phrasing quietly promises an outcome in someone else's system — a crawler, a search product, or a shopping assistant — that no vendor controls or can verify from the outside. What is actually produced is a structured data pack: your fields, normalized and dated; a template that expresses them in schema.org terms; instructions for installing it; and evidence that one specific page renders it as expected. That is the whole of it, and the title says so.
The commercial facts
What complete intake means
Intake is complete only when all six of the following have been received. Anything missing pauses the five-business-day clock rather than shortening the work.
- Merchant authorization from someone entitled to share the catalog and request the work.
- One catalog export, in CSV or JSON.
- A SKU-to-current-public-product-URL mapping.
- Platform, theme, and version.
- The SEO plugins currently active on the storefront.
- One public product URL to use as the sample.
Preflight, and when this is declined
Before acceptance, the sample public URL is fetched and inspected. If that page already emits valid Product structured data, the request is declined rather than accepted and worked around. The reason is concrete: adding a second Product node to a page that already has one can produce conflicting descriptions of the same item, and resolving that conflict is a different job than the one described here. Declining costs you nothing, because nothing has been paid.
Requests involving regulated or prohibited goods are also declined.
What is delivered
- A dated, normalized JSON snapshot of the catalog fields supplied in your export — one canonical shape, with the date it was produced.
- A platform-appropriate schema.org JSON-LD template using Product and Offer, or ProductGroup where the variant structure calls for it, with dynamic bindings for price and availability rather than hardcoded values.
- An installation map written for a merchant or a developer: where the template goes, what it binds to, and what to check after it is placed.
- A dated validation of one concrete sample render — the single sample URL from intake, with the date it was checked and what was observed.
This pack documents a template and one sample render; it does not prove what a storefront, search engine, or shopping agent will do.
Platforms
Supported
Ordinary Shopify Liquid themes, WooCommerce or PHP theme hooks, and documented server-rendered custom storefronts after preflight.
Not supported
Headless and custom framework storefronts — Next.js, Nuxt, Remix, Astro, or a bespoke front end rendering product data client-side — are not supported here, and work on them is not folded into this $349 package. If that describes your store, say so at intake and we will tell you plainly that this pack is not a fit rather than quote around it.
Fields that are never invented
No value is manufactured to make a template look complete. Reviews, ratings, GTIN, MPN, brand, condition, price validity, shipping, return policy, price, currency, and availability are used only when your export supplies them. So is every other field.
Where an input is unknown, it is either omitted from the template or explicitly marked NEEDS DATA so you can decide whether to source it. Where a URL in your mapping cannot be resolved, it is marked UNVERIFIED rather than treated as good.
What this does not claim
Validation covers one sample render, not the catalog. There is no claim of catalog-wide validation, no certification by Google or anyone else, and no affiliation with any platform or search provider. Nothing here promises indexing, rich results, visibility or citations in AI systems, purchases made by shopping agents, ranking, traffic, or revenue.
Stated carefully: Google's documentation says structured data can make a page eligible for supported search experiences; appearance is not guaranteed.
Free catalog field checker
Paste a CSV or JSON catalog export below to see which product fields are present and whether their shapes look consistent. It is a rough self-check, useful before you decide whether this pack is worth requesting.
Accepts CSV or JSON.
Recognized column and key names:
name/title, sku/id,
url/link, description,
image/image_url, price,
currency/priceCurrency,
availability/in_stock, brand,
gtin/mpn, and parent/product_id.
Your data, and when it is deleted
The raw export you send is removed within 14 calendar days after final delivery. The final customer files — snapshot, template, installation map, and validation — are retained for 30 calendar days so corrections are possible, then removed. After that window, nothing is kept.
What stays with you
You install the template, review it, and test it. You own ongoing accuracy: catalogs change, prices move, variants are added and retired, and the bindings must keep matching the data behind them. Nothing in this pack monitors your storefront or updates itself, and no one else is watching it on your behalf.
Cancellation, and what a request actually is
You may cancel before implementation work begins, at no cost. Because nothing is charged on this page, cancelling is simply a message.
To be plain about what this page is: it is a demand test. Submitting the form stores a scope request and nothing else. A request is not an order, it schedules no work, it reserves no delivery date, and it creates no obligation on either side. If the scope is a fit, the next step is a conversation, not an invoice.
Sources reviewed 2026-08-09
The linked Schema.org and Google pages were fetched on 2026-08-09. These pages can change, and they will be checked again when a customer pack is prepared. If a required source is unavailable, the affected finding remains UNKNOWN.
Request the scope
Tell us your platform and theme, roughly how many parent products and variant rows you have, and one public product URL. The URL is inspected before anything is accepted, so a fast decline is a normal and expected outcome.