Structured data
HIGHOffer `availability` is a Schema.org URL
Each Offer's `availability` is a canonical Schema.org IRI (InStock / OutOfStock / PreOrder / BackOrder). Agents suppress out-of-stock or ambiguous items; a valid availability URL keeps you eligible.
What this check looks for
Agents read availability from JSON-LD to decide whether to surface a product in shopping flows. Free-text values like `"in stock"` aren't recognized — Google and ChatGPT require one of the canonical Schema.org IRIs. We accept http or https with or without trailing slash. Coverage ≥ 90% across PDPs with Offers passes; ≥ 50% partial; otherwise fail.
Which AI surfaces it affects
- Google AI Mode (UCP)100
- ChatGPT (ACP)90
- Microsoft Copilot70
- Meta AI70
- Perplexity60
Weighted against the live specs — ACP 2026-04-17, UCP 2026-04-08.
How to fix it
Use a canonical Schema.org availability IRI on every Offer
Shopify
Developer- In your Product JSON-LD template, render `availability` as `"https://schema.org/{% if product.available %}InStock{% else %}OutOfStock{% endif %}"`.
- For pre-orders, conditionally render `PreOrder` based on a product tag.
BigCommerce
Developer- In `templates/components/products/product-view.html`, render `availability` as `"https://schema.org/{{#if product.stock_level}}InStock{{else}}OutOfStock{{/if}}"`.
WooCommerce
A few minutes- Yoast / RankMath emit the correct IRI when WooCommerce stock management is enabled.
- Settings → Products → Inventory: enable `Manage stock`; per-product Stock status drives the emitted IRI.
Custom / headless
Developer- Map your stock state to the four canonical Schema.org IRIs.
- Render the URL exactly — extra whitespace or trailing characters break the match.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Example Hat",
"offers": {
"@type": "Offer",
"price": "49.99",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock"
}
}
</script>The spec it's pinned to
schema.org/ItemAvailability
schema.org defines `availability` as an ItemAvailability IRI — one of InStock, OutOfStock, PreOrder, BackOrder. Free-text values are not recognized.
Google merchant listing — Offer availability
Google's merchant listing rich result requires an `availability` value on the Offer, expressed as a canonical Schema.org ItemAvailability IRI.
Does your store pass this check?
Run the full audit — 82 checks across five AI shopping surfaces. Most tools only check whether you get mentioned; we check whether an agent can buy from you.