Policy
HIGHMerchantReturnPolicy satisfies Option A (country+category) or B (returnLink)
Every MerchantReturnPolicy node satisfies Option A (country + category) or Option B (returnLink URL). A policy node missing both shapes is invisible to agents — they can't render it, link to it, or quote your return terms.
What this check looks for
Google's return-policy structured-data spec recognizes two valid shapes for `hasMerchantReturnPolicy`. Option A is the fully-detailed form: `applicableCountry` (ISO alpha-2) plus `returnPolicyCategory`. Option B is the lightweight form: a `merchantReturnLink` URL pointing at your returns page. Nodes with neither shape can't render and are dropped from agent-facing rich results.
Which AI surfaces it affects
- Google AI Mode (UCP)90
- Microsoft Copilot60
- Meta AI50
- ChatGPT (ACP)40
- Perplexity30
Weighted against the live specs — ACP 2026-04-17, UCP 2026-04-08.
How to fix it
Make every MerchantReturnPolicy node satisfy Option A or Option B
Shopify
Developer- Settings → Markets → policies: configure a returns policy per market. Shopify Markets emits Option A automatically on themes that support MerchantReturnPolicy.
- If Shopify can only resolve a returns URL (no per-market category), confirm your theme injects `merchantReturnLink` as a fallback.
BigCommerce
Developer- Edit your product template to emit at least `applicableCountry` and `returnPolicyCategory` on every MerchantReturnPolicy block.
- Alternatively emit `merchantReturnLink` pointing at `/returns/` if you can't enumerate countries per product.
WooCommerce
Developer- Configure your SEO plugin's MerchantReturnPolicy add-on (Yoast or AIOSEO) to emit Option A — set country and category in the plugin's policy settings.
- Or hook `woocommerce_structured_data_product` and emit `merchantReturnLink` pointing at your returns page URL.
Custom / headless
Developer- Pick Option A or Option B per policy node and emit both required fields.
- Option A: `applicableCountry` MUST be a 2-letter ISO code (or array of codes); `returnPolicyCategory` MUST be a Schema.org enum URL.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Example Hat",
"offers": {
"@type": "Offer",
"hasMerchantReturnPolicy": {
"@type": "MerchantReturnPolicy",
"applicableCountry": [
"US",
"CA"
],
"returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
"merchantReturnDays": 30
}
}
}
</script>The spec it's pinned to
Google return-policy SD — required-shape MUSTs
Google's return-policy structured-data spec requires every MerchantReturnPolicy node to satisfy Option A (`applicableCountry` + `returnPolicyCategory`) or Option B (`merchantReturnLink`). Nodes without either shape don't render and are dropped from rich results.
schema.org/MerchantReturnPolicy
schema.org/MerchantReturnPolicy expresses the same two configurations: a fully-detailed policy (Option A) or a pointer to the policy page (Option B).
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.