Map Shopify warranty data to JSON-LD to win AI recommendations
Claude

When buyers ask AI search assistants for a reliable product recommendation, the engine does not read your beautifully designed warranty landing page—it reads your site's JSON-LD. Pendium's visibility data shows that standard Shopify themes fail to output warranty and return policy schema by default, leaving your products entirely out of the AI's answer. To win reliability queries in 2026, you must bypass the default Liquid filter and manually map the hasMerchantReturnPolicy and warranty properties directly into your product schema snippet. By ensuring your guarantees are baked into the raw data AI crawlers consume, you allow models like ChatGPT and Gemini to confidently cite your brand when buyers search for durable options.
Why AI ignores your shipping and warranty pages
AI-driven traffic to Shopify stores grew eight times year-over-year in 2025, and AI-driven orders grew 15 times, according to Shopify's 2026 data on ecommerce schema. This explosive growth makes machine-readability a primary commercial requirement. However, most merchants remain invisible when a buyer asks ChatGPT, "which heavy-duty blender has the best warranty?"
The disconnect lies in how large language models gather information. Humans browse a webpage by scanning headings, looking at icons, and reading accordion tabs. AI agents like GPTBot do not interact with your page. They fetch raw HTML, search for structured data, and parse the text present in the initial server-rendered response.
If your warranty details live inside a graphic, a collapsed tab populated by client-side JavaScript, or an isolated shipping information page, the AI agent will miss it. Many merchants spend weeks writing specific terms in the admin area, but up to 73% of custom product metadata never renders in the public Document Object Model (DOM) or the JSON-LD graph. When an AI crawler cannot locate these guarantees in your product's structured data, it assumes they do not exist and recommends a competitor instead.
To secure these high-intent recommendations, you must structure your catalog for machine consumption. You can learn more about how LLMs evaluate Shopify stores by reading our guide on how to structure your Shopify catalog for ChatGPT and Gemini recommendations. For Pendium users, tracking these crawlability issues is the first step toward reclaiming visibility across search platforms.

The schema fields AI actually parses for reliability
When optimizing a product detail page for search engine evaluation, we must follow the vocabulary defined by Schema.org v30.0. Traditional search engines used structured data to display simple rich snippets like star ratings and prices. Modern conversational engines use these exact same fields to filter and rank products based on user-defined constraints.
hasMerchantReturnPolicy for risk reversal
If a user asks Perplexity for "running shoes with a free 60-day return policy," the engine searches for the hasMerchantReturnPolicy attribute within the product's JSON-LD. Missing this field is enough to suppress the "Free returns" annotation in Google Shopping results and disqualify your product from conversational search queries.
A fully structured return policy must specify:
- The return window in days (
merchantReturnDays) - The fees associated with the return (
returnFees) - The return method (
returnMethod) - The applicable countries (
applicableCountry)
Without these explicit declarations, AI agents cannot verify your return terms and will exclude your store from risk-free buyer recommendations.
warranty and itemCondition for durability proof
To answer durability questions, AI assistants look for the warranty property nested inside your product schema. This property tells the model that the manufacturer guarantees the product for a specific timeframe.
Similarly, the itemCondition property must be declared. Default themes like the Dawn theme omit condition data, making it difficult for AI engines to determine whether your product is new, refurbished, or used. If your schema does not explicitly state that your product is new and backed by a 5-year manufacturer warranty, the model has no reliable data to support recommending you over other brands.
Through the Pendium dashboard, we monitor how major platforms perceive these trust signals, helping you identify where missing fields are costing you organic recommendations.
| Schema Field | Technical Purpose | Impact on AI Search |
|---|---|---|
hasMerchantReturnPolicy | Defines return window, fees, and country eligibility | Prevents exclusion from "risk-free" queries |
warranty | Declares manufacturer warranty length and scope | Wins "reliable" and "best warranty" comparison queries |
itemCondition | Explicitly states if the item is new, used, or refurbished | Ensures eligibility for standard product filters |
gtin | Provides global trade item numbers (GTIN-13/12) | Verifies product authenticity across retail databases |
Overriding the default Liquid schema filter
Most standard Shopify themes use a native Liquid filter to output structured data. This is typically written as {{ product | structured_data }} in the theme files.
While this filter works for basic Google search, it is highly limited. It outputs only basic fields like name, description, image, and a simple Offer block. It entirely omits SKUs, GTINs, return policies, and warranties. Additionally, the default filter is static—it does not update dynamically when a customer changes variants, and it frequently fails to integrate third-party review data.
To solve this, you must bypass the default filter and write your own JSON-LD block. For a deeper understanding of why native Shopify tags fall short in AI search, see our analysis on why AI search engines ignore Shopify product tags (and how to fix it).

Locating the JSON-LD block in your theme
To replace the default schema with a customized block, you must locate where your theme processes structured data:
- Log in to your Shopify Admin and navigate to Online Store > Themes.
- Click the three dots next to your active theme and select Edit Code.
- Search for
main-product.liquidor look for a snippet namedmetadata.liquidorstructured-data.liquid. - Find the line containing
{{ product | structured_data }}and comment it out or delete it.
Extending the Offer entity
To map your warranty and return data dynamically, you should use Shopify metafields. Create two product metafields in your Shopify Admin under Settings > Custom Data:
custom.warranty_years(Integer)custom.return_days(Integer)
Once populated, use the following production-tested Liquid template snippet from StoreBuilt's schema guide to map these variables directly into your theme's JSON-LD script:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": {{ product.title | json }},
"image": {{ product.featured_image | image_url: width: 1024 | json }},
"description": {{ product.description | strip_html | escape | json }},
"brand": {
"@type": "Brand",
"name": {{ product.vendor | json }}
},
"sku": {{ product.selected_or_first_available_variant.sku | json }},
"offers": {
"@type": "Offer",
"price": "{{ product.selected_or_first_available_variant.price | money_without_currency | remove: ',' }}",
"priceCurrency": "{{ shop.currency }}",
"availability": "https://schema.org/{% if product.available %}InStock{% else %}OutOfStock{% endif %}",
"url": "{{ shop.url }}{{ product.url }}",
"itemCondition": "https://schema.org/NewCondition",
"hasMerchantReturnPolicy": {
"@type": "MerchantReturnPolicy",
"applicableCountry": "US",
"returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnPeriod",
"merchantReturnDays": {{ product.metafields.custom.return_days | default: 30 }},
"returnMethod": "https://schema.org/ReturnByMail",
"returnFees": "https://schema.org/FreeReturn"
},
"warranty": {
"@type": "WarrantyPromise",
"durationOfWarranty": {
"@type": "QuantitativeValue",
"value": {{ product.metafields.custom.warranty_years | default: 1 }},
"unitCode": "ANN"
}
}
}
}
</script>
This snippet ensures your return policies and warranty promises are explicitly grouped inside the Offer block. When AI engines crawl your PDP, they immediately find the machine-readable values they need to qualify your product for high-intent, filter-heavy customer queries.
Using this custom approach avoids the common pitfall of injecting a second Product block at the bottom of the template. Standard themes that use apps to add schema often output two competing blocks, which confuses crawlers. Replacing the native filter entirely with a single, highly detailed schema block is the cleanest way to maintain data integrity.
Validating the output for AI agents
Once your custom Liquid snippet is saved, you must verify that the rendered output is clean, valid, and easily readable by AI search bots. Errors in your JSON-LD syntax—such as a misplaced comma or a unclosed bracket—will cause crawlers to reject the entire schema block.
Step-by-step schema verification
The validation process requires checking the raw, server-rendered source code rather than relying entirely on browser-based developer tools:
- Open your product page in an incognito window.
- Right-click the page and select View Page Source (do not use "Inspect Element", as this shows the DOM after JavaScript execution, which many AI bots do not run).
- Press
Ctrl+F(orCmd+Fon Mac) and search forapplication/ld+json. - Copy the entire block of code contained between the
<script>tags. - Paste the code into the Schema Markup Validator to check for syntax errors or missing required fields.
Additionally, you must ensure that your data stays synchronized. If you update a product's price or change a variant's availability, your JSON-LD must reflect that change instantly. Hardcoded values or out-of-sync data will flag your site as unreliable to search algorithms.
To verify that your newly implemented structured data is fully optimized for conversational AI, you can run your product URLs through the Pendium AI Site Audit. Our technical audit mimics how search engines and LLM crawlers read your pages, checking your robots.txt, rendering speed, and JSON-LD composition to ensure that nothing blocks your brand from receiving organic AI recommendations.

