Google’s Merchant Listing results check two Product schema fields before they’ll show your shipping cost or return window next to a search result — and neither one comes from your Shopify theme.

By Florencia
July 15, 2026
6 min read

If you’ve read our guide to Shopify structured data or our Shopify product schema guide, you already know the basics: Shopify’s native Product schema is thin, and reviews, FAQPage, and Organization markup all have to be added separately. This post is about a narrower gap inside that same Product schema — one neither of those guides covers, because it isn’t about star ratings or the general schema list. It’s about two specific properties: shippingDetails and hasMerchantReturnPolicy.

Those are the fields Google’s Merchant Listing rich results and AI shopping answers actually check before they’ll display your shipping cost or return window next to a search result. If you’ve seen a “Missing field” warning in Search Console’s Merchant listings report, or you’re chasing Google Merchant Center visibility, these two properties are almost always why.

If you want shippingDetails and hasMerchantReturnPolicy added to your Product schema automatically — using your store’s actual shipping and return settings — Plug In SEO handles it as part of the full schema set.

Install Plug In SEO →

What Google’s Merchant Listing rich results actually check

Merchant Listing structured data requires the basics first: name, image, and an offers object with price, priceCurrency, and availability. Most Shopify themes generate that much on their own.

shippingDetails and hasMerchantReturnPolicy sit one level further in. Google’s own documentation technically lists both as recommended rather than required. But “recommended” undersells what they do: they’re the properties that unlock the actual shipping cost and return window shown in the rich result, and their absence is exactly what triggers the “Missing field ‘shippingDetails’ (in ‘offers’)” and “Missing field ‘hasMerchantReturnPolicy’ (in ‘offers’)” warnings merchants see in Search Console’s Merchant listings report.

hasMerchantReturnPolicy

Your return window, conditions, and fees — built from applicableCountry, returnPolicyCategory (or a merchantReturnLink), merchantReturnDays, returnMethod, returnFees, and itemCondition.

shippingDetails

Your shipping cost, destination, and delivery time — built from shippingRate, shippingDestination, and deliveryTime (handling plus transit time).

Why Shopify’s native schema doesn’t include them

Shopify 2.0 themes (Dawn and its derivatives) generate Product JSON-LD automatically — name, image, description, and an offers block with price, currency, availability, and URL, plus brand and SKU on most themes. That schema never includes shippingDetails or hasMerchantReturnPolicy, because Shopify has no reliable way to auto-generate them: your shipping rates and return window live in your store settings and Shopify Shipping/Merchant Center configuration, not in the theme’s product template.

Not included in Shopify’s native Product schema:

  • shippingDetails (OfferShippingDetails) — shipping cost, destination, delivery time
  • hasMerchantReturnPolicy (MerchantReturnPolicy) — return window, fees, conditions

This isn’t a hypothetical gap. One Shopify merchant asked exactly this question in the Shopify Community forum: how do I add hasMerchantReturnPolicy and shippingDetails to my structured data? It’s a common enough question that it comes up repeatedly across Shopify’s own support forums, usually prompted by a fresh batch of Search Console warnings.

93% of consumers review a retailer’s return policy at least occasionally before making an online purchase.
Route survey of 1,000 U.S. shoppers, via CX Dive, March 2026

That stat is about human shoppers, not search engines — but it explains why Google bothers checking these fields at all. The same information that reassures a person deciding whether to buy is exactly what a rich result (or an AI shopping answer) needs in machine-readable form to display it up front.

How to add hasMerchantReturnPolicy and shippingDetails without hand-coding Liquid

There are two situations, and they call for different fixes.

  1. One policy, storewide. If your shipping rates and return window are the same across your whole catalogue, Google explicitly recommends setting this once at the account level — in Google Merchant Center or Search Console’s dedicated shipping and returns settings — rather than repeating it in per-product JSON-LD. No schema, no code. Google applies it across every listing tied to that account.
  2. Per-product exceptions. Final-sale items, oversized-item shipping surcharges, or a different return window on a specific collection need the override written into that product’s offers object — the shippingDetails and hasMerchantReturnPolicy properties nested inside it. That requires either editing your theme’s product JSON-LD snippet directly (you can ask ChatGPT to draft the JSON-LD block for a specific policy and paste it in yourself), or using an SEO app that builds it from your actual settings and keeps it in sync as those settings change.

Whichever route you take, re-test the page afterward — adding schema that doesn’t validate is worse than not adding it at all.

How to check whether you’re affected

Two free tools show you exactly where you stand:

  • Google’s Rich Results Test — enter a product URL and it lists every schema property it detects, including whether shippingDetails or hasMerchantReturnPolicy are present and valid.
  • Search Console’s Merchant listings and Product snippets reports — these are the reports where the “Missing field” warnings show up. They’re flagged as non-critical issues, not errors: your product schema is still valid without them, but Google can’t show the richer shipping/return details until they’re filled in.
A 2026 audit of 5,000 production sites found that missing required schema properties account for 38% of all product-page structured data errors — the same broad category of gap that produces “Missing field” warnings for properties like shippingDetails and hasMerchantReturnPolicy.
Digital Applied — Schema Markup Adoption: 5,000-Site Audit, April 2026

One rule that matters more here than usual

Your return and shipping schema has to match your actual policy. Google’s guidelines treat this the same way they treat fabricated review ratings: structured data that overstates or misstates a real policy — a shorter return window than schema claims, a shipping cost that doesn’t match checkout — is a data-quality problem that can get a listing suppressed, not just a missed opportunity. Whatever method you use to add these fields, keep them pointed at your real, current settings.

Frequently asked questions

What is hasMerchantReturnPolicy schema on Shopify?

hasMerchantReturnPolicy is a Product schema property that tells Google your return window, conditions, and fees in machine-readable form. It’s what allows Google to show return policy details directly in Merchant Listing rich results and Google Shopping — Shopify doesn’t add it automatically.

Does Shopify automatically add shipping and return policy schema?

No. Shopify 2.0 themes generate basic Product schema — name, image, description, price, availability — but not shippingDetails or hasMerchantReturnPolicy. Those need to be added separately: through Merchant Center or Search Console settings for one storewide policy, per-offer JSON-LD for exceptions, or an SEO app like Plug In SEO.

Is hasMerchantReturnPolicy required for Google Merchant Center?

Google’s documentation lists it as recommended, not required, for basic Merchant Listing eligibility. But without it (or an equivalent policy set at the account level in Merchant Center or Search Console), Google can’t display your return window in the rich result — and it’s the property behind the “Missing field ‘hasMerchantReturnPolicy’” warning many merchants see in Search Console.

How do I fix the “Missing field shippingDetails” warning in Search Console?

First check whether you already have a shipping policy configured in Google Merchant Center or Search Console’s shipping settings — if you do, Google may already have the data from your account, and the page-level warning is often non-critical. If not, you’ll need to add shippingDetails to your Product schema, either in your theme’s product JSON-LD or through an SEO app.

What’s the difference between this and Shopify’s general structured data guide?

Our Shopify structured data guide covers the full schema picture — Product, FAQPage, Organization, WebSite, BreadcrumbList. Our Shopify product schema guide covers aggregateRating specifically, for star ratings. This guide is narrower still: the shippingDetails and hasMerchantReturnPolicy properties inside Product schema that control whether your shipping cost and return window show up in Merchant Listing results.

Get the fields Google’s Merchant Listings actually check

Plug In SEO adds shippingDetails and hasMerchantReturnPolicy as part of the full Product schema set — built from your store’s real shipping and return settings, kept in sync as they change.

Install Plug In SEO →