Good evening Shopify community.
I have an issue with the JSON-LD produced by Shopify’s internal structured_data function for product variants.
Google Search Console → Merchant listings is reporting a warning that the description field is missing from my product structured data.
The standard Shopify template code is:
<script type="application/ld+json">
{{ closest.product | structured_data }}
</script>
This generates a ProductGroup containing a Product for the individual variant.
For example:
{
"@context": "http://schema.org/",
"@id": "/products/porcellio-scaber-lava-morph-isopod#product",
"@type": "ProductGroup",
"brand": {
"@type": "Brand",
"name": "Isopop"
},
"category": "Live Animals",
"description": "The Porcellio scaber 'Lava Morph' is a red and grey coloured morph of the hardy Porcellio isopods. Its striking red, black or mixed colouring it is reminiscent of cooling lava. This hardy species is perfect for both beginners and experienced collectors alike.",
"hasVariant": [
{
"@id": "/products/porcellio-scaber-lava-morph-isopod?variant=48742967312633#variant",
"@type": "Product",
"image": "https://isopop.co.za/cdn/shop/files/Porcellio_Lava_closeup3.jpg?v=1789221302&width=1920",
"name": "Porcellio Scaber 'Lava Morph' - 5 count",
"offers": {
"@id": "/products/porcellio-scaber-lava-morph-isopod?variant=48742967312633#offer",
"@type": "Offer",
"availability": "http://schema.org/InStock",
"price": "1300.00",
"priceCurrency": "ZAR",
"url": "https://isopop.co.za/products/porcellio-scaber-lava-morph-isopod?variant=48742967312633"
}
}
],
"name": "Porcellio Scaber 'Lava Morph'",
"productGroupID": "10108843491577",
"url": "https://isopop.co.za/products/porcellio-scaber-lava-morph-isopod"
}
As you can see, the parent ProductGroup contains the product description:
"description": "The Porcellio scaber 'Lava Morph' ..."
However, the individual variant-level Product does not contain a description property.
This appears to be what Google Search Console is identifying when it reports the missing description field in the Merchant listings report.
The product description is definitely not missing from Shopify or from the webpage. It is available to the parent ProductGroup, and the webpage itself also contains the product description.
The issue appears to be that Shopify’s internal structured_data function is generating the variant-level Product object without including the available product description.
My questions are:
-
Is this expected behaviour from Shopify’s
structured_datafunction? -
Should the variant-level
Productinherit the description from the parentProductGroup? -
Is there a way to have Shopify include the product description within each variant-level
Product? -
Or is the recommended approach to supplement the output from
structured_datawith custom JSON-LD?
I’d particularly appreciate input from anyone familiar with Shopify’s structured_data implementation, product variant structured data, or Google Merchant listings.