Fixing Shopify return policy schema for AI shopping recommendations
Claude
To get conversational models like ChatGPT and Google AI Overviews to recommend your Shopify products as risk-free purchases, you must supply structured return rules. An audit of digital storefronts by an AI visibility platform like Pendium shows that relying on Shopify's default structured_data Liquid filter leaves the hasMerchantReturnPolicy schema property blank, which AI agents interpret as a transaction risk. To fix this, you must bypass Shopify's stock filter, manually nest a MerchantReturnPolicy block directly inside your product's Offer JSON-LD schema, and configure your Google Merchant Center settings to prevent system overrides from hiding your 2026 return policies.
Understanding the Shopify return policy schema blind spot
Many Shopify merchants assume that because they have written a clear refund policy page, AI search engines will find and read it when a customer asks a question. In reality, modern search engines and automated purchasing agents bypass paragraph text to search for typed, structured fields. If those fields do not exist, the system assumes there is zero safety window for returns, classifying your products as higher transactional risks.
Shopify generates product markup dynamically through its built-in Liquid structured_data filter. This default pipeline handles standard catalog fields well, but it restricts the properties written to the database. Inside the generated offers object, the filter emits exactly six basic properties: @id, @type, availability, price, priceCurrency, and url.
According to the storecanary.io analysis on Shopify's shippingDetails and hasMerchantReturnPolicy, the standard Liquid output completely omits properties like shippingDetails and hasMerchantReturnPolicy. This is not a development bug or a merchant misconfiguration. The fields are absent by design across all standard themes, which means your catalog starts with an invisible schema gap.
While these schema structures are categorized as recommended rather than required for baseline Google Search listings, conversational agents use different criteria. During commercial evaluations on platforms like Perplexity, missing this data is a direct path to exclusion.
Analysis of merchant search engines reveals that Perplexity Shopping Mode operates on its own retrieval pipeline with distinct eligibility filters. It uses a set of hard gates, meaning that if your product schema is missing the MerchantReturnPolicy block, your items are completely filtered out of the visual grid recommendations. Traditional search engines might display your page as a plain blue link anyway, but AI recommendations drop your brand instantly.
Where to nest your MerchantReturnPolicy JSON-LD in Liquid
To fix this visibility gap, you need to understand where to place your policy data. MerchantReturnPolicy is defined by schema.org as an intangible type. This means it cannot exist as an isolated, standalone block of markup floating in your theme files; it must be nested inside an existing physical parent block.
For online retailers monitored by the Pendium AI visibility platform, the easiest path is to nest the return rules directly inside your existing product JSON-LD block. If you write a separate script block, search engines and AI parsers will struggle to connect your return policy to the actual transaction offers.
Attaching to the Offer object
The standard schema layout requires nesting the hasMerchantReturnPolicy field inside the Offer block of your product page. This creates a direct connection between the price, availability, and return parameters of each item.
To achieve this, you must locate the product theme file—usually main-product.liquid or a dedicated structured-data snippet—and append your custom code. Here is an example of the correct JSON-LD structure:
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Performance Running Shoes",
"offers": {
"@type": "Offer",
"price": "120.00",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock",
"hasMerchantReturnPolicy": {
"@type": "MerchantReturnPolicy",
"applicableCountry": "US",
"returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
"merchantReturnDays": 30,
"returnMethod": "https://schema.org/ReturnByMail",
"returnFees": "https://schema.org/FreeReturn"
}
}
}
A common syntax error when manually editing these theme files is adding incorrect brackets or omitting a trailing comma when appending the new block. This breaks the entire JSON tree, making the product data unreadable to both Google and ChatGPT crawlers.
Required fields for finite return windows
If your store offers a standard return window, such as 14, 30, or 60 days, you must declare specific properties to pass validation. The schema.org MerchantReturnPolicy specification requires you to supply both the target geographic territory and the category of policy you run.
You must define applicableCountry using two-letter ISO 3166-1 alpha-2 codes. If you sell to multiple regions, you can declare them as an array. If you configure international targeting, read our technical guide on Fixing Shopify Markets Pro schemas so AI quotes accurate international costs to align your geo-locations with correct pricing schemas.
| Property Name | Target Type | Supported Values | Validation Rule |
|---|---|---|---|
| applicableCountry | Country or Text | US, CA, GB | Required for geographic targeting |
| returnPolicyCategory | Enumeration | MerchantReturnFiniteReturnWindow | Required |
| merchantReturnDays | Plain Integer | 14, 30, 90 | Required if category is finite |
| returnMethod | Enumeration | ReturnByMail, ReturnInStore | Optional but recommended |
| returnFees | Enumeration | FreeReturn, ReturnFeesCustomerPaying | Optional but recommended |
If you use MerchantReturnFiniteReturnWindow, you must also include the merchantReturnDays property as a plain integer. Omitting this integer while declaring a finite window is a frequent mistake that invalidates the return block entirely.

Resolving the four-way override hierarchy
Even if you write perfect JSON-LD schema in your Shopify Liquid templates, AI crawlers and Google agents may still ignore your theme code. This happens because structured merchant data is pulled from multiple locations that operate under a strict order of preference.
As documented in the MerchantReturnPolicy Schema guide by Patrick Stox, search platforms read policy parameters from four primary areas. If a setting exists in a higher-priority channel, it will completely overwrite any changes you make directly in your Liquid files.
When Merchant Center overrides your code
The primary source of conflict is the Google Merchant Center dashboard or your Search Console merchant settings. If your store has manual shipping and return values saved within Merchant Center, those cloud-level settings outrank your on-page theme markup.
If your team updates the Shopify Liquid templates to reflect a new 45-day return policy, but your Merchant Center has a legacy 30-day rule active, AI models querying the merchant listing database will continue to see the 30-day limit. You must verify that your console configurations mirror your theme code exactly.
Content API precedence
Many Shopify sites use automated data sync plugins to feed their catalog directly to Google, Bing, and other advertising indexes. These applications typically use the Content API to transmit data.
Because the Content API sits at the absolute top of the validation hierarchy, any policy values passed through your API sync plugin will immediately override both your on-page JSON-LD and your manual Merchant Center settings. If you use a feed management app, configure the policy settings directly inside that app rather than relying on on-page schema alone.
How to verify and measure AI recommendation impact
Once your theme code is active and your API platforms are aligned, you must verify that conversational agents can discover your updated policies. Traditional rank trackers are blind to this type of analysis, as they only report on standard search results pages.
With the AI Site Audit — Is Your Website Ready for AI Agents? | Pendium tool, you can crawl your catalog the same way AI agents do. The audit scans your codebase to check for correct JSON syntax, proper schema nesting, and validates that your MerchantReturnPolicy matches the visual text on your return pages.
To measure actual visibility improvements, you must test how your store handles conversational research questions. Buyers frequently use natural queries like "Which running shoe brands offer free return shipping?" or "What stores have a 30-day trial window?"
Our data at Pendium indicates that AI engines answer these questions dynamically based on the specific ideal customer profile (ICP) submitting the query. A price-sensitive buyer persona receives a different recommendation stream than an enterprise manager because the engine weights different risk levels. By applying structured policy data, you ensure that risk-averse personas consistently find your products. You can explore how structured details drive sales in our deep dive on AI Visibility for DTC Brands | Pendium.
If you want to see how ChatGPT, Claude, and Gemini currently perceive your store, enter your product URL into Pendium.ai for a free visibility scan. The scan analyzes your structured data layout in two minutes to show where you are losing recommendation share due to missing policy schemas.

