Google tells me Missing field "shippingDetails" (in "offers")

I got a message form google.

Top non-critical issues‡

Missing field “shippingDetails” (in “offers”)

Missing field “hasMerchantReturnPolicy” (in “offers”)

I looked at my policy.

  • Returns accepted for 14 days
  • Customer provides return shipping
  • No restocking fee
  • Final sale items: 2 collections can’t be returned

How can I fix this?

The issue you are highlighting seems to be Google Search Console. If you already have a Google Merchant Center account and have added your shipping and returns policy, then you do not need to add it again in your structured data. However, if you don’t like seeing optional warnings. Then update your structured data.

For example:


{%- assign fa_product_id_alpha2_code = 'US' -%}

{%- assign fa_product_id = 'default' -%}

{%- assign fa_return_days = 28 -%}

{% if cart.currency.iso_code == 'USD' %}
    {%- assign fa_shipping_currency = "USD" -%}
    {% if fa_product_price >= "75" %}
        {%- assign fa_shipping_price = 0.00 -%}
    {%- else -%}
        {%- assign fa_shipping_price = 4.50 -%}
    {%- endif -%}
{%- endif -%}
{%- assign fa_shipping_handling_time_min = 0 -%}
{%- assign fa_shipping_handling_time_max = 1 -%}
{%- assign fa_shipping_shipping_time_min = 2 -%}
{%- assign fa_shipping_shipping_time_max = 5 -%}

{%- assign fa_returns = 'false' -%}
{%- assign fa_shipping = 'false' -%}

{%- if template contains 'product' -%}

{%- assign fa_current_variant = product.selected_or_first_available_variant -%}

{%- if fa_product_id == 'default' -%}
{%- capture fa_product_id_value -%}shopify_{{ fa_product_id_alpha2_code }}_{{ product.id }}_{{ fa_current_variant.id }}{%- endcapture -%}
{%- elsif fa_product_id == 'product_id' -%}
{%- capture fa_product_id_value -%}{{ fa_current_variant.id }}{%- endcapture -%}
{%- elsif fa_product_id == 'parent_id' -%}
{%- capture fa_product_id_value -%}{{product.id }}{%- endcapture -%}
{%- elsif fa_product_id == 'sku' -%}
{%- capture fa_product_id_value -%}{{ fa_current_variant.sku | escape }}{%- endcapture -%}
{%- endif -%}

{%- if cart.currency.iso_code == 'GBP' or cart.currency.iso_code == 'USD' or cart.currency.iso_code == 'JPY' or cart.currency.iso_code == 'AUD' or cart.currency.iso_code == 'AED' or cart.currency.iso_code == 'CAD' or cart.currency.iso_code == 'BWP' or cart.currency.iso_code == 'BND' or cart.currency.iso_code == 'DOP' or cart.currency.iso_code == 'GTQ' or cart.currency.iso_code == 'HKD' or cart.currency.iso_code == 'INR' or cart.currency.iso_code == 'ILS' or cart.currency.iso_code == 'YEN' or cart.currency.iso_code == 'KES' or cart.currency.iso_code == 'KOR' or cart.currency.iso_code == 'LBP' or cart.currency.iso_code == 'MYR' or cart.currency.iso_code == 'MXN' or cart.currency.iso_code == 'NPR' or cart.currency.iso_code == 'NZD' or cart.currency.iso_code == 'NIO' or cart.currency.iso_code == 'NGN' or cart.currency.iso_code == 'PKR' or cart.currency.iso_code == 'CNY' or cart.currency.iso_code == 'PHP' or cart.currency.iso_code == 'SGD' or cart.currency.iso_code == 'LKR' or cart.currency.iso_code == 'CHF' or cart.currency.iso_code == 'TWD' or cart.currency.iso_code == 'TSH' or cart.currency.iso_code == 'THB' or cart.currency.iso_code == 'UGX' or cart.currency.iso_code == 'KWD' or cart.currency.iso_code == 'CLP' or cart.currency.iso_code == 'BHD' -%}
{%- assign fa_product_price = fa_current_variant.price | money_without_currency | remove:',' -%}
{%- else -%}
{%- assign fa_product_price = fa_current_variant.price | money_without_currency | remove:'.' | replace: ',', '.' -%}
{%- endif -%}

{%- endif -%}

You see these non-critical issues in Search Console because there isn’t a way in Shopify for your shipping and returns information to be automatically included in the structured data.

Google will automatically pull the shipping and returns information from Merchant Center.

Search Console however doesn’t talk to Merchant Center so you end up receiving emails saying the fields are missing.

So if you have these set up in Merchant Center, you can ignore the non-critical issues in Search Console.

You can configure the delivery information in Merchant Center using this doc or there is a setting in the Google Sales channel to automatically pull it from Shopify.
You can configure the returns information in Merchant Center using this doc.

Hello!

You can add shippingDetails and Return Policy using the “SA SEO JSON‑LD Schema markup” easilly

Hi there! :waving_hand:

I’ve encountered and resolved these exact issues before. The errors you’re seeing in Google Search Console, “Missing field ‘hasMerchantReturnPolicy’” and “Missing field ‘shippingDetails’”, usually happen when these fields aren’t properly defined in the structured data (schema) on your product pages.

To fix this, you need to add the corresponding structured data code to your product JSON file.

If you’d like more detailed guidance or step-by-step instructions, feel free to check out the articles I’ve written on these topics:

These articles should provide all the information you need to fix these issues and ensure your product pages are fully optimized for Google.

Here are some screenshots showing this issue fixed.