Re: Missing field "shippingDetails" (in "offers")

Missing field "shippingDetails" (in "offers")

PoojaHiwade
Excursionist
26 0 14

Any one help how to solve this issue from merchant center?

 

Capture-667.PNG

Replies 12 (12)

petecube
Tourist
4 0 3

I just got the same problem. I think it is to do with merchant centre?

JJL
Excursionist
37 0 29

Yes, same thing here too. Any ideas anyone?

brandwise--owl
Shopify Partner
36 0 31

You'll likely have to add or edit structured data in your product.liquid code. More information here - https://developers.google.com/search/docs/appearance/structured-data/product

 

This fixed the issue for me.

Store issues that directly affect your income are urgent and I've been there. I can help you with:
Google Merchant Center Errors
GA4 Migration
Technical SEO / On-page SEO
Website Performance, and more!
Skellytones
Tourist
7 0 0

Where did you put the code off the link you posted? I tried to add it to the product.json page, I even tried custom meta fields.

brandwise--owl
Shopify Partner
36 0 31

The place to add this will be in product.liquid under 'offers'. 

 

The liquid file outputs information about the product being viewed, no matter which product is being viewed. Google looks through this data to understand the variables about each product and if a variable is missing or doesn't translate exactly between Shopify and Google, you get the error.

 

The error message Missing Field "ShippingDetails" (In "Offers") is literally telling us that in the product.liquid file, under 'offers' there are no shipping details defined. 

 

Please send me a private message if you'd like more help.

Store issues that directly affect your income are urgent and I've been there. I can help you with:
Google Merchant Center Errors
GA4 Migration
Technical SEO / On-page SEO
Website Performance, and more!
Skellytones
Tourist
7 0 0

I don't seem to have a product.liquid but I do have a main-product.liquid so I assumed it was in there. 

 

I added the following code in the offers code and google is still saying there's a problem when I hit validate fix. 

 

<script type="application/ld+json">
{
  "@context": "http://schema.org/",
  "@type": "Product",
  "name": {{ product.title | json }},
  "url": {{ request.origin | append: product.url | json }},
  {% if seo_media -%}
    "image": [
      {{ seo_media | image_url: width: 1920 | prepend: "https:" | json }}
    ],
  {%- endif %}
  "description": {{ product.description | strip_html | json }},
  {% if product.selected_or_first_available_variant.sku != blank -%}
    "sku": {{ product.selected_or_first_available_variant.sku | json }},
  {%- endif %}
  "brand": {
    "@type": "Brand",
    "name": {{ product.vendor | json }}
  },
  "offers": [
    {%- for variant in product.variants -%}
      {
        "@type" : "Offer",
        {%- if variant.sku != blank -%}
          "sku": {{ variant.sku | json }},
        {%- endif -%}
        {%- if variant.barcode.size == 12 -%}
          "gtin12": {{ variant.barcode }},
        {%- endif -%}
        {%- if variant.barcode.size == 13 -%}
          "gtin13": {{ variant.barcode }},
        {%- endif -%}
        {%- if variant.barcode.size == 14 -%}
          "gtin14": {{ variant.barcode }},
        {%- endif -%}
        "availability" : "http://schema.org/{% if variant.available %}InStock{% else %}OutOfStock{% endif %}",
        "price" : {{ variant.price | divided_by: 100.00 | json }},
        "priceCurrency" : {{ cart.currency.iso_code | json }},
        "url" : {{ request.origin | append: variant.url | json }},
        "shippingDetails": {
          "@type": "OfferShippingDetails",
          "shippingRate": {
            "@type": "MonetaryAmount",
            "value": "0",
            "currency": "GBP"
          },
          "shippingDestination": [
            {
              "@type": "DefinedRegion",
              "addressCountry": "UK",
              "addressRegion": ["UK"]
            }
          ]
        },
        "hasMerchantReturnPolicy": {
          "@type": "MerchantReturnPolicy",
          "applicableCountry": "UK",
          "returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
          "merchantReturnDays": 14,
          "returnMethod": "https://schema.org/ReturnByMail",
          "returnFees": "https://schema.org/ReturnFeesCustomerResponsibility"
        }
      }{% unless forloop.last %},{% endunless %}
    {%- endfor -%}
  ]
}
</script>

The only thing I have changed is the Shipping details and returns policy. 

brandwise--owl
Shopify Partner
36 0 31

Anyone still needing help with this issue please private message me. Thanks!

Store issues that directly affect your income are urgent and I've been there. I can help you with:
Google Merchant Center Errors
GA4 Migration
Technical SEO / On-page SEO
Website Performance, and more!
Sereias
Visitor
1 0 0

Hi,

 

I'm having the same issue for about a month now...cant fix it. 

Can you please help me?

Thanks in advance!

 

 

Sereias_0-1685140220292.png

 

Sherlock_
Visitor
1 0 0

I'm not really sure how to send this message to you privately, so I'm just gonna reply here and hope that you contact me directly if needed. 😅

 

I received these google errors and would love some assistance in fixing 2 of the 3 (Just waiting on validation for the "brand" fix):

  1. Missing field "hasMerchantReturnPolicy" (in "offers") - My return policy is 30 days from delivery
  2. Missing field "shippingDetails" (in "offers") - Free domestic shipping over $100USD & I ship M-F 8-3pm US pacific time
  3. Invalid object type for field "brand" - I've already updated this line of code from the word "Organization" to "Brand" and I'm waiting on validation.

As I mentioned, I updated the brand to "Brand", however I'm not 100% sure on what code and where I'm supposed to insert the additional code. Would you be able to help me out? Thank you in advance

<script type="application/ld+json">
  {
    "@context": "http://schema.org/",
    "@type": "Product",
    "name": {{ product.title | json }},
    "url": {{ request.origin | append: product.url | json }},
    {% if seo_media -%}
      "image": [
        {{ seo_media | image_url: width: 1920 | prepend: "https:" | json }}
      ],
    {%- endif %}
    "description": {{ product.description | strip_html | json }},
    {%- if current_variant.sku != blank -%}
      "sku": {{ current_variant.sku | json }},
    {%- endif -%}
    "brand": {
      "@type": "Brand",
      "name": {{ product.vendor | json }}
    },
    "offers": [
      {%- for variant in product.variants -%}
        {
          "@type" : "Offer",
          {%- if variant.sku != blank -%}
            "sku": {{ variant.sku | json }},
          {%- endif -%}
          {%- if variant.barcode.size == 12 -%}
            "gtin12": {{ variant.barcode }},
          {%- endif -%}
          {%- if variant.barcode.size == 13 -%}
            "gtin13": {{ variant.barcode }},
          {%- endif -%}
          {%- if variant.barcode.size == 14 -%}
            "gtin14": {{ variant.barcode }},
          {%- endif -%}
          "availability" : "http://schema.org/{% if variant.available %}InStock{% else %}OutOfStock{% endif %}",
          "price" : {{ variant.price | divided_by: 100.00 | json }},
          "priceCurrency" : {{ cart.currency.iso_code | json }},
          "priceValidUntil": "{{ 'now' | date: '%s' | plus: seconds_price_valid | date: '%Y-%m-%d' }}",
          "url" : {{ request.origin | append: variant.url | json }}
        }{% unless forloop.last %},{% endunless %}
      {%- endfor -%}
    ]
  }
  </script>

 

 

DutchRuler
Visitor
1 0 0

It was a bit of a search for me, but for my template the json-ld was specified in

microdata-schema.liquid

 

I ended up adding the following to the script

 

"shippingDetails": {
"@type": "ShippingDetails",
"shippingRate": {
"@type": "MonetaryAmount",
"value": "{% if cart.total_price < 2000 %}3.99{% else %}0{% endif %}", // 2000 is in cents, which is equivalent to 20 euros
"currency": "{{ cart.currency.iso_code }}"
},
"deliveryTime": {
"@type": "ShippingDeliveryTime",
"businessDays": {
"@type": "BusinessDays",
"dayOfWeek": [
"http://schema.org/Monday",
"http://schema.org/Tuesday",
"http://schema.org/Wednesday",
"http://schema.org/Thursday",
"http://schema.org/Friday"
// Add or remove days as per your shipping days
],
"cutoffTime": "15:00:00Z" // Adjust based on your operations
}
}

oContis_Studio
Shopify Partner
9 0 2

Sorry, but how it this supposed to work on the product page? 

As far as the crawler is concerned - the cart.total_price will always be 0

Am i missing something?

London based, creative studio, dedicated to delivering exceptional E-commerce solutions for Shopify Plus merchants and brand owners
https://ocontis.studio/

TechSEOSolution
Shopify Partner
8 0 0

Hi there! 👋

I've dealt with the "Missing field 'shippingDetails'" issue before, and I can help you resolve it. This error typically occurs when the shippingDetails field isn't properly included in your product's structured data.

To fix this, you'll need to add the structured data code to your product JSON file where your schema.org data is located:

 

I've written an article that provides more details on how to address this specific problem. If you'd like to check it out, you can find it here:

shiipingdetails issue solved.png

 

missing field shipping details has been solved.jpeg

 

Missing field shipping details.jpg

 

Tech SEO Solutions