Structured data
LOWOffer `itemCondition` is canonical when present
Each Offer either omits `itemCondition` (defaults to NewCondition) or sets it to a canonical Schema.org IRI. When you declare itemCondition, agents and Google require a canonical Schema.org IRI; free-text values get ignored.
What this check looks for
Google merchant listing treats an undeclared `itemCondition` as NewCondition, so omitting the field on a new-goods catalog is legitimate. v2 counts both omitted and validly-set Offers as passing, and flags only Offers where `itemCondition` is present but isn't one of the four canonical Schema.org ItemCondition IRIs (New / Used / Refurbished / DamagedCondition, http or https, trailing slash optional). Coverage ≥ 95% across sampled Offers passes; ≥ 70% partial; otherwise fail.
Which AI surfaces it affects
- Google AI Mode (UCP)50
- ChatGPT (ACP)30
- Microsoft Copilot30
- Perplexity20
- Meta AI20
Weighted against the live specs — ACP 2026-04-17, UCP 2026-04-08.
How to fix it
Either omit `itemCondition` (defaults to NewCondition) or set it to a canonical IRI
Shopify
Developer- If you're a new-goods catalog, you can simply not emit `itemCondition` — that's fine.
- If you sell refurbished/used goods, conditionally render the appropriate IRI based on a product tag.
BigCommerce
Developer- In `templates/components/products/product-view.html`, only emit `itemCondition` if you have non-new goods.
- For mixed catalogs, conditionally render the IRI per product.
WooCommerce
A few minutes- Yoast / RankMath default to omitting `itemCondition` (Google then treats as NewCondition).
- Use a plugin like "WooCommerce Used Products" if you sell mixed conditions.
Custom / headless
Developer- Decide whether to emit `itemCondition` at all.
- If you do, use one of the four canonical IRIs verbatim.
<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",
"itemCondition": "https://schema.org/NewCondition"
}
}
</script>The spec it's pinned to
schema.org/OfferItemCondition
schema.org/OfferItemCondition defines New/Used/Refurbished/DamagedCondition IRIs. Google treats undeclared itemCondition as NewCondition.
Google merchant listing — condition required only for non-new
Google's merchant listing recommends `condition`; new-goods catalogs may omit it (defaulted to `new`).
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.