Publish schema.org ProductGroup structured data with variesBy and isVariantOf/hasVariant properties so shopping agents can correctly resolve size/color/material variants during agentic checkout
domain: schema.org · 6 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗
Steps
Model each variant-bearing item family as a ProductGroup with a stable productGroupID, and each individual purchasable variant as a Product
Set variesBy on the ProductGroup to the schema.org property URIs that differ across variants (e.g. https://schema.org/color, https://schema.org/size) rather than plain text labels
Choose the nested approach (hasVariant listing variant Products directly on the ProductGroup) for single-page variant selectors, or the separate-pages approach (isVariantOf or inProductGroupWithID on each variant's own page) when each variant has its own URL
Ensure every variant Product still carries its own price, availability, and SKU so an agent can select and add the exact correct variant to a cart, not just the parent group
Validate the markup against Google's Product Variant structured data guidance to confirm the nested vs. separate-page pattern is applied consistently across the catalog
Confirm your ACP/UCP feed pipeline reuses the same productGroupID/variant relationships rather than maintaining a second, inconsistent variant model for agent-specific feeds
Known gotchas
Mixing the nested (hasVariant) and separate-page (isVariantOf) patterns inconsistently across a catalog is a common implementation error that confuses both search engines and shopping agents about which Product is authoritative
variesBy must reference full schema.org property URIs, not arbitrary attribute names -- using an invented property name breaks an agent's ability to know which dimension actually varies
A ProductGroup is a template, not itself purchasable -- an agent (or your own checkout flow) must resolve down to a specific variant Product before checkout, not attempt to buy the group directly
Give your agent this knowledge — and 15,500+ more routes
One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp
Need this verified for your stack — or a route we don't have yet?